一种数据集合比对方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:31618228 阅读:25 留言:0更新日期:2021-12-29 18:52
本发明专利技术涉及一种数据集合比对方法、装置、计算机设备和存储介质,所述方法包括:获取排序后的集合A和集合B,再从集合A中划分出若干个顺序批次;基于集合A和集合B中的每一行数据已预先设定有标识字段,利用当前顺序批次和上一个顺序批次的最大标识字段从集合B中提取出满足条件的当前查询批次;计算当前顺序批次和当前查询批次的哈希特征值分别为BatHash和BatHash';在判断BatHash=BatHash'后,确定当前顺序批次和当前查询批次的内容一致;或在判断BatHash≠BatHash'后,对当前顺序批次和当前查询批次进行对应行列数据的比对。上述方法能够快速验证排序后的数据集合在发生迁移后的准确性。的准确性。的准确性。

【技术实现步骤摘要】
一种数据集合比对方法、装置、计算机设备和存储介质


[0001]本专利技术涉及数据应用
,特别是涉及一种数据集合比对方法、装置、计算机设备和存储介质。

技术介绍

[0002]目前已广泛存在应用于文本文件上的比对技术,然而随着大数据的兴起,针对私有环境数据库的迁移或者升级、数据上云或者下云、网络报文核实、交易日志验证等应用领域,其交互的基本是由复杂数据结构所形成的有序集合,该比对技术显然无法进一步解决数据集合的比对难题。

技术实现思路

[0003]本专利技术的目的在于克服现有技术的不足,提供了一种数据集合比对方法、装置、计算机设备和存储介质,能够快速验证排序后的数据集合在发生迁移后的准确性。
[0004]为了解决上述中至少一个技术问题,本专利技术实施例提供了一种数据集合比对方法,所述方法包括:
[0005]获取排序后的集合A和集合B,按照固定行读取标准从所述集合A中划分出若干个顺序批次;
[0006]基于所述集合A和所述集合B中的每一行数据已预先设定有标识字段,利用当前顺序批次和上一个顺序批次的最大标识字段从所述集合B中提取出满足条件的当前查询批次;
[0007]计算所述当前顺序批次的哈希特征值BatHash以及所述当前查询批次的哈希特征值BatHash';
[0008]在判断BatHash=BatHash'之后,直接确定所述当前顺序批次和所述当前查询批次的内容一致;或者,
[0009]在判断BatHash≠BatHash'之后,对所述当前顺序批次和所述当前查询批次进行对应行列数据的比对。
[0010]优选地,所述按照固定行读取标准从所述集合A中划分出若干个顺序批次包括:
[0011]从所述集合A的第一行数据开始,按序且不重复地读取K行数据构成一个顺序批次,以此类推直至读取完最后一行数据以得到若干个顺序批次。
[0012]优选地,所述利用当前顺序批次和上一个顺序批次的最大标识字段从所述集合B中提取出满足条件的当前查询批次包括:
[0013]获取当前顺序批次中的最大标识字段MaxKey以及上一个顺序批次中的最大标识字段PrevMaxKey,从所述集合B中筛选出满足对应标识字段落在(PrevMaxKey,MaxKey]范围内的若干行数据,构成当前查询批次。
[0014]优选地,所述计算所述当前顺序批次的哈希特征值BatHash以及所述当前查询批次的哈希特征值BatHash'包括:
[0015]计算所述当前顺序批次中每一行数据所对应的第一特征值,再将所有第一特征值进行求和,得到所述当前顺序批次的哈希特征值BatHash;
[0016]计算所述当前查询批次中每一行数据所对应的第二特征值,再将所有第二特征值进行求和,得到所述当前查询批次的哈希特征值BatHash'。
[0017]优选地,所述对所述当前顺序批次和所述当前查询批次进行对应行列数据的比对包括:
[0018]从i=1开始,选择所述当前顺序批次中的第i行数据;
[0019]从j=1开始,选择所述当前查询批次中的第j行数据;
[0020]当第i行数据内的标识字段小于第j行数据内的标识字段时,将第i行数据记录到系统设定的缺失集合中,随后将i+1赋值给i再返回执行下一行数据的选择;或者,
[0021]当第i行数据内的标识字段大于第j行数据内的标识字段时,将第j行数据记录到系统设定的幽灵集合中,随后将j+1赋值给j再返回执行下一行数据的选择;或者,
[0022]当第i行数据内的标识字段与第j行数据内的标识字段相同时,判断第i行数据所对应的第一特征值HRow
i
是否与第j行数据所对应的第二特征值HRow'
j
相同;
[0023]若是,则将i+1赋值给i以及将j+1赋值给j,再返回执行下一行数据的选择与特征值判断;
[0024](若是i先到达顺序批次结束,则将从当前第j行到查询批次结束的数据记录到幽灵集合中
[0025]若是j先到查询批次结束,则将从当前第i行到顺序批次结束的数据记录到缺失集合中)
[0026]若否,则对第i行数据和第j行数据进行列数据比对。
[0027]优选地,所述对第i行数据和第j行数据进行列数据比对包括:
[0028]基于所述当前顺序批次中每一行数据的列数量和列排序均相同,从m=1开始,读取第i行数据中的第m列数据并记录为Col[m],以及读取第j行数据中的第m列数据并记录为Col[m]';
[0029]在识别到Col[m]≠Col[m]'之后,将Col[m]和Col[m]'记录到系统针对第i行数据所设定的列差异集合中,随后将m+1赋值给m再返回执行下一列数据的内容比对。
[0030]优选地,所述对第i行数据和第j行数据进行列数据比对还包括:
[0031]基于所述当前顺序批次中至少存在两行数据的列数量不相同或者列排序不相同,确定所述当前顺序批次中的所有列名称与列序号之间的对应关系并记录在系统设定的mapA中,以及确定所述当前查询批次中的所有列名称与列序号之间的对应关系并记录在系统设定的mapB中;
[0032]从k=1开始,读取mapA中的第k个列名称并获取其关联的列序号p,再从第i行数据中读取出列序号p所对应的列数据并记录为Col[p];
[0033]当从mapB中无法读取到与第k个列名称相同的一个列名称时,将Col[p]记录到系统针对第i行数据所设定的列丢失集合中,随后将k+1赋值给k再返回执行下一列数据的读取;或者,
[0034]当从mapB中读取到与第k个列名称相同的一个列名称时,获取该列名称所关联着的列序号q,再从第j行数据中读取出列序号q所对应的列数据并记录为Col[q];
[0035]在识别到Col[p]≠Col[q]之后,将Col[p]和Col[q]记录到系统针对第i行数据所设定的列差异集合中,随后将k+1赋值给k再返回执行下一列数据的读取与内容比对。
[0036]另外,本专利技术实施例还提供了一种数据集合比对装置,所述装置包括:
[0037]划分模块,用于获取排序后的集合A和集合B,按照固定行读取标准从所述集合A中划分出若干个顺序批次;
[0038]筛选模块,用于基于所述集合A和所述集合B中的每一行数据已预先设定有标识字段,利用当前顺序批次和上一个顺序批次的最大标识字段从所述集合B中提取出满足条件的当前查询批次;
[0039]计算模块,用于计算所述当前顺序批次的哈希特征值BatHash以及所述当前查询批次的哈希特征值BatHash';
[0040]确定模块,用于在判断BatHash=BatHash'之后,直接确定所述当前顺序批次和所述当前查询批次的内容一致;
[0041]再比对模块,用于在判断BatHash≠BatHash'之后,对所述当前顺序批次和所述当前查询批次进行对应行列数据的比对。
[0042]另外,本专利技术实施例还提供了一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据集合比对方法,其特征在于,所述方法包括:获取排序后的集合A和集合B,按照固定行读取标准从所述集合A中划分出若干个顺序批次;基于所述集合A和所述集合B中的每一行数据已预先设定有标识字段,利用当前顺序批次和上一个顺序批次的最大标识字段从所述集合B中提取出满足条件的当前查询批次;计算所述当前顺序批次的哈希特征值BatHash以及所述当前查询批次的哈希特征值BatHash';在判断BatHash=BatHash'之后,直接确定所述当前顺序批次和所述当前查询批次的内容一致;或者,在判断BatHash≠BatHash'之后,对所述当前顺序批次和所述当前查询批次进行对应行列数据的比对。2.根据权利要求1所述的数据集合比对方法,其特征在于,所述按照固定行读取标准从所述集合A中划分出若干个顺序批次包括:从所述集合A的第一行数据开始,按序且不重复地读取K行数据构成一个顺序批次,以此类推直至读取完最后一行数据以得到若干个顺序批次。3.根据权利要求1所述的数据集合比对方法,其特征在于,所述利用当前顺序批次和上一个顺序批次的最大标识字段从所述集合B中提取出满足条件的当前查询批次包括:获取当前顺序批次中的最大标识字段MaxKey以及上一个顺序批次中的最大标识字段PrevMaxKey,从所述集合B中筛选出满足对应标识字段落在(PrevMaxKey,MaxKey]范围内的若干行数据,构成当前查询批次。4.根据权利要求1所述的数据集合比对方法,其特征在于,所述计算所述当前顺序批次的哈希特征值BatHash以及所述当前查询批次的哈希特征值BatHash'包括:计算所述当前顺序批次中每一行数据所对应的第一特征值,再将所有第一特征值进行求和,得到所述当前顺序批次的哈希特征值BatHash;计算所述当前查询批次中每一行数据所对应的第二特征值,再将所有第二特征值进行求和,得到所述当前查询批次的哈希特征值BatHash'。5.根据权利要求1所述的数据集合比对方法,其特征在于,所述对所述当前顺序批次和所述当前查询批次进行对应行列数据的比对包括:从i=1开始,选择所述当前顺序批次中的第i行数据;从j=1开始,选择所述当前查询批次中的第j行数据;当第i行数据内的标识字段小于第j行数据内的标识字段时,将第i行数据记录到系统设定的缺失集合中,随后将i+1赋值给i再返回执行下一行数据的选择;或者,当第i行数据内的标识字段大于第j行数据内的标识字段时,将第j行数据记录到系统设定的幽灵集合中,随后将j+1赋值给j再返回执行下一行数据的选择;或者,当第i行数据内的标识字段与第j行数据内的标识字段相同时,判断第i行数据所对应的第一特征值HRow
i
是否与第j行数据所对应的第二特征值HRow'
j
相同;若是,则将i+1赋值给i以及将j+1赋值给j,再返回执行下一行数据的选择与特征值判断;若否,则对第i行数据和第j行数据进行列数据比对;
若是i先到达顺序批次结束,则将从当前...

【专利技术属性】
技术研发人员:金清德
申请(专利权)人:深圳市沃信科技有限公司
类型:发明
国别省市:

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

1