一种基于内存数据比对的改进方法技术

技术编号:35775848 阅读:17 留言:0更新日期:2022-12-01 14:19
本发明专利技术涉及一种基于内存数据比对的改进方法,所述方法包括以下步骤:步骤1:预设数据读取脚本、指定比对索引列、预设数据读取阈值;步骤2:配置hash分片参数、配置数据存储阈值;步骤3:内存中创建目标数据临时存储单元,读取目标数据;步骤4:目标数据hash计算分片存储到内存对应存储单元中;步骤5:目标数据消费、存储到本地文件数据库rocksdb中;步骤6:内存中创建源数据临时存储单元,步骤7:内存源数据监控,步骤8:使用动态代理技术动态创建结果表实例,并将数据比对明细写入;该技术方案采用多线程、基于高效内存队列将数据按批装入内存多次进行对比,同时利用数据分页、分片等技术,从而达到数据的高效比对,有效避免服务宕机现象。象。象。

【技术实现步骤摘要】
一种基于内存数据比对的改进方法


[0001]本专利技术涉及一种改进方法,具体涉及一种基于HASH计算配合文件数据库完成海量数据比对的方法,属于计算机


技术介绍

[0002]在信息化高速发展的时代背景下,各行各业都将面临海量数据席卷而来,这样海量的大数据,给各行业带来了压力的同时,也同样带来了机遇。如何利用数据这一重要的资产来开展有效的数据分析,在深入了解和把握自身乃至市场状况的基础上,更加科学地评价企业经营业绩、评估业务风险,是目前大多数企业所面临的重要挑战之一,而海量数据比对是数据分析中的重要一环。
[0003]对于海量数据的比对,通用技术如下:
[0004]1、通过数据库dblink进行表关联查询,速度慢;
[0005]2、通过数据文件分片进行处理,物理硬件CPU、内存要求较高,经常导致系统崩溃且无法满足大数据量高性能要求;
[0006]3、通过计算表中每行数据的md5值进行数据比对处理,时间较长;
[0007]4、面对异构数据(不同类型数据库)无法实现数据比对。因此,迫切的需要一种新的方案解决上述技术问题。

技术实现思路

[0008]本专利技术正是针对现有技术中存在的问题,提供一种基于内存数据比对的改进方法,该技术方案在有限资源(CPU、内存)的情况下,完成同构、异构数据海量数据比对的方法和系统,并在一定程度上解决上述技术问题。
[0009]为了实现上述目的,本专利技术的技术方案如下,一种基于内存数据比对的改进方法,其特征在于,所述方法包括以下步骤:
[0010]步骤1:预设数据读取脚本、指定比对索引列、预设数据读取阈值;
[0011]步骤2:配置hash分片参数、配置数据存储阈值;
[0012]步骤3:内存中创建目标数据临时存储单元,读取目标数据;
[0013]步骤4:目标数据hash计算分片存储到内存对应存储单元中;
[0014]步骤5:目标数据消费、存储到本地文件数据库rocksdb中;
[0015]步骤6:内存中创建源数据临时存储单元,读取源数据做hash计算并存储到相应存储单元中;
[0016]步骤7:内存源数据监控,当存储单元中数据量等于阈值则目标数据与源数据比对;
[0017]步骤8:使用动态代理技术动态创建结果表实例,并将数据比对明细写入。
[0018]其中,步骤1具体如下:预设目标数据源数据sql查询脚本、文件读取脚本并指定比对索引列(可以是一个列,也可以是多个列组合),预设数据读取阈值。通过步骤1预设数据
的读取脚本,可以支持异构数据的比对。
[0019]其中,步骤2具体如下:配置hash分片参数默认1000,配置数据存储阈值默认10000,配置数据读取阈值默认1000000,则程序启动会在内存中默认创建1000个存储单元,并且设置每个存储单元数据存储阈值为10000,每次读取1000000数据,同时以上3个参数可以根据服务器资源情况动态调整配置。通过步骤2动态配置hash分片参数、存储单元阈值、数据据读取阈值,可根据不同服务器资源灵活调整参数,可实现在有限的资源情况下完成海量数据的比对。
[0020]其中,步骤3具体如下:启动目标数据读取线程;在内存创建与步骤2分片参数对应个数的数据临时存储单元,通过步骤1中预设脚本读取目标数据,是数据库数据,或者是文件数据,数据库数据则采用流读取模式,根据服务器资源情况分批次读取数据,且每次读取的数据量不超过步骤2中的数据读取阈值,从而降低数据库数据读取压力;如果是文件数据,则采用IO缓冲区读取,根据资源情况调整读取缓冲区大小的配置。该方案可以根据服务器内存资源不同,动态配置不同参数,以降低因服务器内存不足导致程序崩溃的风险
[0021]其中,步骤4具体如下:对读取到的目标数据,按照步骤1中指定的比对索引列计算hash值,并通过该hash值进行分片,key

value方式存存储到步骤3对应的存储单元,当某个储存单元中数据量等于步骤2中的存储阈值,则等待步骤5线程启动进行数据消费,数据消费后继续步骤3,直至目标数据全部读取完毕,采用生产消费模式,提高数据比对效率。
[0022]其中,步骤5具体如下:启动目标数据存储线程,创建与步骤2配置的hash分片参数对应个数的rocksdb文件数据库实例,监听内存中各存储单元内目标数据量,如果等于阈值,则从内存中取出,并以key

value方式存储到与之对应的文件数据库中。将数据存储到本地文件数据库中,可以有效防止因数据量过大导致内存崩溃的问题,同时该文件数据库支持按key值批量查询,可以提高数据查询比对效率。
[0023]其中,步骤6具体如下:启动源数据读取线程,读取源数据流程与步骤3相同。
[0024]其中,步骤7具体如下:启动数据比对线程,监听内存中源数据的各存储单元内源数据量,如果等于阈值,则从内存中取出,对指定比对索引列进行hash计算并与对应rocksdb文件数据库中数据进行循环比对,比对逻辑优先按行进行数据比对,如果比对成功则记录数据,比对失败则将数据进行按列比对直至将所有列数据比对完成后记录数据。该方案通过步骤7,先将数据横向比对,对异常数据再次进行竖向比对,可以有效提高数据比对的效率,同时提高数据比对的精准度。
[0025]其中,步骤8具体如下:为解决海量数据比对结果明细存储问题。本专利技术会采用动态代理技术cglib按照预设脚本的案例ID动态创建mongodb实例,将比对结果写入到与之对应的mongodb数据库中。提高结果明细查询效率。
[0026]相对于现有技术,本专利技术具有如下优点,1)该技术方案采用多线程、基于高效内存队列将数据按批装入内存多次进行对比,同时利用数据分页、分片等技术,从而达到数据的高效比对,有效避免服务宕机现象;2)该方案通过步骤1预设数据的读取脚本,可以支持异构数据的比对,预设目标数据、源数据读取脚本,指定比对索引列;3)通过步骤2动态配置hash分片参数、存储单元阈值、据读取阈值,可根据不同服务器资源灵活调整参数,可实现在有限的资源情况下完成海量数据的比对;4)该方案通过步骤7,先将数据横向比对,对异常数据再次进行竖向比对,可以有效提高数据比对的效率,同时提高数据比对的精准度;5)
该方案支持同构(同类型数据库)、异构(不同类型数据库、数据库与文件)的数据读取比对;6)采用hash分片技术将源数据内容存入到高效内存队列中,同时采用hash分片技术将目标数据存入到本地文件数据库中,采用多线程技术对内存中的源数据与文件数据库中的目标数据进行比对,降低对内存资源的消耗;7)采用动态代理技术,动态生成mongodb实例,存储与之对应的案例比对明细数据。从而解决海量比对结果明细统一存储导致查询效率低下的问题。
附图说明
[0027]图1为本专利技术整体流程示意图。
具体实施方式
[0028]为了加深对本专利技术的理解,下面结合附图对本实施例做详细的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于内存数据比对的改进方法,其特征在于,所述方法包括以下步骤:步骤1:预设数据读取脚本、指定比对索引列、预设数据读取阈值;步骤2:配置hash分片参数、配置数据存储阈值;步骤3:内存中创建目标数据临时存储单元,读取目标数据;步骤4:目标数据hash计算分片存储到内存对应存储单元中;步骤5:目标数据消费、存储到本地文件数据库rocksdb中;步骤6:内存中创建源数据临时存储单元,读取源数据做hash计算并存储到相应存储单元中;步骤7:内存源数据监控,当存储单元中数据量等于阈值则目标数据与源数据比对;步骤8:使用动态代理技术动态创建结果表实例,并将数据比对明细写入。2.根据权利要求1所述的基于内存数据比对的改进方法,其特征在于,步骤1具体如下:预设目标数据源数据sql查询脚本、文件读取脚本并指定比对索引列,预设数据读取阈值。3.根据权利要求2所述的基于内存数据比对的改进方法,其特征在于,步骤2具体如下:配置hash分片参数默认1000,配置数据存储阈值默认10000,配置数据读取阈值默认1000000,则程序启动会在内存中默认创建1000个存储单元,并且设置每个存储单元数据存储阈值为10000,每次读取1000000数据,同时以上3个参数可以根据服务器资源情况动态调整配置。4.根据权利要求3所述的基于内存数据比对的改进方法,其特征在于,步骤3具体如下:启动目标数据读取线程;在内存创建与Step2分片参数对应个数的数据临时存储单元,通过步骤1中预设脚本读取目标数据,是数据库数据,或者是文件数据,数据库数据则采用流读取模式,根据服务器资源情况分批次读取数据,且每次读取的数据量不超过Step2中的数据读取阈值,从而降低数据库数据读取压力;如果是文件数据,则采用IO缓冲区读取,根据资源情况调整读取缓冲区大小的配...

【专利技术属性】
技术研发人员:赵小刚邵军谭新胜孟保旺
申请(专利权)人:江苏润和软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1