大数据时代档案信息资源共享平台数据处理的优化

    金秀凤

    

    

    

    摘 要:随着大数据时代档案信息资源的不断增加以及用户的不断积累,对于档案信息资源共享平台的数据处理提出了新的要求,即平台需要满足高并发数据请求服务,同时提供的档案信息资源共享平台服务能够稳定运行。文章在介绍档案信息资源共享平台数据处理性能需求的基础上,比较目前常用的前后端解决档案信息资源共享平台数据处理性能优化的办法,提出采用Redis缓存技术解决档案信息资源共享平台数据处理,详细地论证了档案信息资源共享平台数据处理优化的实现及效果分析。

    关键词:大数据;档案信息资源;共享平台;数据处理优化;Redis缓存技术

    Abstract:With the continuous increasing of archives information resources and the accumulation of users in the era of large data, new requirements have been put forward for the data processing of archives information resources sharing platform. The platform needs to satisfy the high concurrent data request service, and the archives information resources sharing platform service can run stably.Based on the data processing performance requirements of the file information resource sharing platform, this paper compares the commonly used methods for optimizing the data processing performance of the file information resource sharing platform. It proposes to use Redis cache technology to solve the data processing of the file information resource sharing platform. It demonstrates the realization and effect analysis of data processing optimization of archive information resource sharing platform.

    Keyword:Big Data;Archive information resource;Sharing Platform;Data processing optimization;Redis caching technology

    大数据时代是建立在互联网、物联网等现代网络渠道广泛收集大量数据资源基础上的数据存储、价值提炼、智能处理和展示的信息时代[1],大数据时代档案信息资源共享平台通过系统的接口开发技术将物联网、云计算技术融合其中,使平台对外服务具有感知与处置档案信息能力,并为外部提供档案信息服务的一种新模式。随着大数据技术与移动互联网技术的不断完善,档案信息资源数据规模不断扩大,档案信息资源共享平台的档案信息资源及用户都出现了急速增长,在平台的使用频度与日俱增的形势下,如何对海量的档案信息资源数据进行高效的管理成为当前档案信息化研究的热点[2]。要让档案信息资源共享平台快速响应用户请求并承受不断增加的负荷量,传统的技术方案已很难适应现行的高频度档案信息服务请求。现有的技术拟采用Redis缓存技术能较好地解决档案信息资源共享平台数据处理性能问题[3]。

    1 档案信息资源共享平台数据处理性能需求

    档案信息资源共享平台的构建需要根据平台自身的特点,即平台建成后同时满足包括PC、手机及平板等设备以及不同分辨率浏览器的使用[4]。因此,其数据处理的优化非常重要,在平台自身的实践应用方面,要有助于优化档案管理流程。档案信息资源共享平台的建设作为档案信息化的一部分,已被各级档案部门重视起来,物联网、云计算技术以及大数据技术的成熟,已为平台建设提供了技术保障,建成后的平台将为档案信息资源统一管理、档案管理工作顺利开展、档案部门对外服务提供体系框架;同时,档案信息资源能够实现高效互联,档案信息资源共享平台与其他业务协调发展与集成,平台性能优化实践将指导档案信息化业务流程优化、档案信息资源高效管理和档案信息服务实现多元化;此外,有助于優化档案信息资源共享平台的建设,提高档案信息资源共享平台建设质量。

    档案信息资源共享平台数据处理性能需求方面主要包括高性能、高可靠性及高稳定性方面[5]。在高性能方面,要支持档案信息的大数据量请求。档案信息资源共享平台面向的是互联网用户,平台在普及推广之后特别在移动互联网普及的今天,用户利用档案平台的场景也会越来越多。面对档案信息的大数据量请求,平台前期的数据处理性能指标至少要达到每秒一万次以上的请求吞吐量。在高可靠性方面,平台需要满足用户并发,在平台的新功能投入使用、档案检索开放等关键时间点,会有众多用户同时操作同一个功能,这就造成了一定的并发请求,在平台前期的并发性能指标上需要满足一百以上的并发数据处理请求。在高稳定性方面,平台持续稳定工作是档案信息资源共享平台用户所需的最基本的要求,平台数据处理稳定性方面需要小于万分之一的出错率。

    2 档案信息资源共享平台数据处理优化技术选择

    大数据时代档案信息资源共享平台数据处理优化主要从以下几个方面考虑:第一是对面向用户的前端页面进行优化,该部分的优化需要考虑平台现有的资源利用,最终达到使平台的功能页面加载得更快、对用户的档案信息检索操作响应得更及时,并能提供更为友好的用户体验;第二是对存储档案信息的数据进行优化,随着档案信息资源共享平台用户的增加及平台本身的信息量增加,仅仅对前端页面与数据库优化不能满足平台未来的性能要求,需从缓存技术入手,研究该技术在档案信息资源共享平台中的部署。

    2.1 档案信息资源共享平台缓存部署。档案信息服务平台在建设初期,由于档案信息化程度不高,自身的用户也有限,主要面向内部用户,因此对平台的性能要求不高。正常情况下应用服务器、数据库服务器和文件服务器等所有的资源都在一台服务器上。随着互联网技术的发展,平台面向的用户逐步由内部用户转向外部用户,用户的增加导致访问档案信息服务平台速度越来越慢,平台存储的档案信息资源变得越来越丰富,此时会将应用和数据分离,应用服务器、数据库服务器和文件服务器独立部署,平台的业务逻辑由专门的应用服务器负责,此时档案信息服务平台的处理能力得到了很大的提升。随着移动互联网、物联网技术的兴起,档案信息服务平臺的应用范围已不局限于传统的PC,用户对档案信息服务的要求越来越高,外部的用户量也有了量的突破,档案信息服务平台的性能问题直接影响平台对外服务的质量,此时缓存技术应运而生,缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。对于档案信息资源共享平台采用部署缓存的方式来解决平台的数据处理问题,初期可以将缓存部署在应用服务器上,该方式与应用服务共享资源,访问速度会很快,但是缺点显而易见,会出现和应用程序争用内存的情况,未来考虑采用远程分布式环境技术来解决平台的数据处理问题。档案信息资源共享平台缓存应用部署如图1所示:

    2.2 档案信息资源共享平台缓存技术选择。档案信息资源共享平台为了适应大数据应用,需要采用分布式缓存技术,需要将缓存部署在独立的服务器上,目前主流的分布式缓存有Memcached和Redis。Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载,但在缓存占用内存分配上采用预分配的内存池方式,带来一定程度上的内存浪费,对于复杂的数据类型以及持久化方面也不能够支持。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库(支持列表、集合、哈希等众多数据结构)[6],并提供多种语言的API。Redis只支持单线程读写复用网络模型,数据存储采用现场申请内存的方式进行,会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,Redis支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,Redis除了缓存之外,还提供了额外的聚合计算功能。

    因此,在Memcached、Redis两种缓存技术中,Redis更适合作为平台性能提升的缓存技术,主要原因如下:第一,Redis支持更丰富的Key-Value数据类型,档案信息资源共享平台需要缓存的档案信息类型比较丰富,简单字符串不能满足平台数据缓存需求;第二,在数据存储上,Memcached全部存储在内存上,服务重新启动会丢失缓存信息,做不到数据持久化,而Redis会将部分数据存储在硬盘上,这样就能做到持久化,该特性对平台非常重要,用户对平台的操作不会因为例外而发生信息丢失;第三,档案信息从传统的文字信息向图片、文件等多媒体信息转变,这对缓存存储信息的大小有一定的要求,Redis的Value存储最大可以达到1GB,而Memcached的Value存储最大只有1MB。

    3 档案信息资源共享平台数据处理优化实现及效果分析

    在技术选型确定之后,实现档案信息资源共享平台数据处理优化,要从以下几个方面实现平台的数据处理优化:硬件设备上,采用高速缓存技术;前端实现上,最大限度使用用户浏览器缓存,对于常用的资源访问采用CDN技术;后端实现上,一方面数据库中采用存储过程,数据库设计采用适当的冗余结构设计以便于档案信息统计,另一方面采用Redis缓存技术以确保档案信息资源共享平台的高并发请求。

    3.1 前端数据处理优化。档案信息资源共享平台的面向用户的前端主要包括档案信息检索页面、档案信息管理维护页面、用户管理页面,其中对于检索页面的使用最为频繁,该功能直接面向用户,这样就可以有针对性地对该功能数据处理进行优化,优化的方式将CSS、JavaScript进行压缩存储以及功能页面中的图片进行合并,这样用户一次请求就可以完成CSS、JavaScript以及页面样式图片的获取。对档案信息资源共享平台而言,像CSS、JS以及图标这些静态资源文件更新的频率都比较低,可以考虑将这些文件进行缓存在浏览器中,下次相同的页面在有资源请求时就可以直接读取浏览器缓存,这样就可以大大提升平台的访问效率。平台在前端技术使用了适应普通PC与移动设备的JS、CSS技术,相应的资源文件访问可以采用CDN技术[7],浏览器请求大文件资源时,将从CDN直接返回给用户设备,由于资源访问的路径采用最短路径,这样平台的访问速度将大大加快,同时减轻了档案信息资源共享平台的服务器负载压力。前端数据处理优化方式汇总如图2所示:

    3.2 后台数据库数据处理优化。档案信息资源共享平台对外服务使用最为频繁的是档案检索功能,在前端优化后需要对其中的涉及到的后端数据库检索模块进行优化。优化点主要采用以下方式:首先是减少档案检索功能中数据来回访问的数据量,尽量将档案检索的前置条件设置详细并一次性提交到后台进行数据检索,数据库检索成功后将用户需要的结果返回给用户,通过该方式可以极大提升系统检索的性能,最大限度减少数据访问量,同时因为返回的数据更加精准,网络的压力也会大大减轻。其次是采用存储过程技术,如果在档案检索过程中涉及到复杂的数据提取过程,将过程数据处理逻辑封装到存储过程里面,这样就能避免通过网络来回进行数据交互,档案数据通过存储过程处理后统一返回用户请求信息,由于存储过程采用参数的方式传入检索请求信息,在提升检索性能的同时还可以避免平台SQL依赖注入漏洞。最后是充分利用索引技术,在档案信息最频繁使用的检索点使用的相关列上创建索引,可以极大地提升检索性能[8],因为加索引在提升检索性能的同时会降低平台档案信息的修改、新增与删除功能的性能,这里可以采用将档案信息检索所需要的主体信息放在历史表中,这样可以满足由于信息变动带来的其他功能的性能问题。具体的后台数据库数据处理优化如图3所示:

    3.3 Redis缓存技术数据处理优化实现。档案信息资源共享平台面向用户的信息如果都从数据库中读取,平台使用量在达到一定的用户量级之后,就存在极大的性能的问题,为了缓解数据库的压力,可以将不经常变化并且访问频繁的用户请求档案信息放入Redis缓存,这样在档案信息检索请求发起后,首先判断Redis缓存中是否存在用户请求的档案信息,如果存在就直接从Redis缓存中读取档案信息,这种情况下会大幅提升平台检索性能;如果Redis缓存中不存在用户请求的档案信息,将从数据库中读取档案信息相关数据,同时需要将读取到的档案信息写入Redis缓存,这样在下次用户再发起同样的请求系统就直接讀取Redis缓存而不需要访问数据库。具体的档案信息资源共享平台Redis缓存请求实现流程如图4所示:

    Redis缓存请求实现流程Redis缓存可以在客户端使用,为了使该技术能够在档案信息资源共享平台项目中运用,需要在解决方案中加入Redis操作DLL,DLL文件同样可以从GitHub平台下载,DLL文件添加至引用后,需要将配置Redis操作参数写入配置文件,在配置中需要注意Redis的端口信息为Redis服务中显示的端口,默认端口号为6739,配置相关信息完成后需要写一个通用Redis缓存管理器来实现获取Redis客户端实例,添加档案信息实体集合到缓存中,添加字符文本类型档案信息,获取字符文本类型档案信息,根据键名获取档案信息列表,获取所有档案信息,获取指定条件类型档案信息列表,删除指定键缓存信息,清空缓存信息。在之后的实践中有需要使用缓存的地方直接调用通用Redis缓存管理器即可。

    3.4 档案信息资源共享平台数据处理缓存技术优化效果分析。准备1000万条档案信息数据,档案信息数据中包含基本数据类型,如字符类型、时间类型、GUID类型,文档信息单独存储,与专门存放文档信息的表关联,档案信息日志数据中同样包含1000条,用户信息准备100万条,平台操作请求采用10的N次方进行递增加压,请求的数据条数同样采用10的N次方进行递增加压,测试设备操作系统为Win10,CPU型号为英特尔酷睿i5-7200U,内存容量为8GB,硬盘为固态硬盘,测试结果如图5所示:

    通过测试结果不难发现,随着档案信息批量请求数量的增加,平台每秒钟可以支持的请求数也越来越高,同时Redis缓存技术对于并发连接的支持也很好,随着档案信息检索功能使用率与使用用户的不断增加,采用该技术后可以有效提升平台的数据处理效率。

    总之,档案信息资源共享平台不仅目前要适应档案服务综合管理平台、Web平台和移动平台,还要可扩展到移动平台大体系[9]。通过对档案信息资源共享平台的数据处理优化进行研究,最终通过用户使用的浏览器层面、CDN等相关前端技术,后端数据库检索充分利用存储过程、索引等技术,并在后端数据访问优化采用了Redis缓存技术,从而实现了档案信息资源共享平台的数据高效访问。本课题后期仍有地方值得改进与探讨,比如使用缓存技术可以显著提升系统的性能,但对于平台数据的实时性产生一定的影响,档案信息在缓存期间,原始数据库被修改了,这时终端用户读取到的信息实际上还是数据被修改前档案信息,这就需要对档案信息需要缓存的信息做出评估,进而确定缓存设置的过期时间问题,另外采用Redis缓存技术还需要考虑数据命中率问题,如何提升档案信息访问在Redis中命中的几率也将成为未来研究的方向[10]。

    *本文系2016年度教育部人文社会科学研究规划基金项目《大数据时代档案信息资源共享平台构建的研究》(项目编号:16YJA870001)资助。

    参考文献:

    [1]曹筠慧,管先海,孙洋洋.基于大数据时代的档案价值及其开发利用探究[J].档案管理,2017 (1):27-29.

    [2]卞咸杰.大数据时代档案信息资源共享平台性能优化的研究[J].档案管理,2016(6):17-20.

    [3]曾超宇,李金香. Redis在高速缓存系统中的应用[J].微型机与应用,2013,32(12):11-13.

    [4]卞咸杰.大数据时代档案信息资源共享平台前端框架的构建[J].档案与建设.2017(10):11-15.

    [5]闫中威,孙大嵬.B/S模式在线考试系统性能优化及实现[J].计算机系统应用,2016,25(10):81-85.

    [6]Robert Escriva, Bernard Wong, and Emin Gün Sirer. HyperDex: A Distributed, Searchable Key-Value Store[J].Acm Sigcomm Computer Communication Review.2012,42(4):25-36.

    [7]Hadrien Hours. A study of the impact of DNS resolvers on CDN performance using a causal approach[J].Computer Networks.2016, 109:200-210.

    [8]高玉平.海量图书检索信息的快速查询系统优化设计研究[J].现代电子技术,2017,40(6):5-9.

    [9]卞咸杰.基于WCF技术的跨平台档案信息资源共享平台建设的研究[J].档案管理,2016(4):37-41.

    [10]Prerna Rai. Google PageRank Algorithm: Markov Chain Model and Hidden Markov Model[J].International Journal of Computer Applications.2016,138(9):9-13.

    (作者单位:盐城工学院学生处 来稿日期:2018-08-20)