【技术实现步骤摘要】
一种外部数据集合运算方法及集合运算设备
一、
[0001]本专利技术涉及在银行系统的对账的数据处理过程中,对结构化存储的文件中的数据进行信息处理领域,特别涉及一种基于HASH算法的内存和文件系统的集合运算集合运算方法及其集合运算设备。
二、
技术介绍
[0002]随着银行行业业务量的急剧增加,在对账、数据处理过程中经常需要对一般结构化存储的文件,两个文件中的数据进行并集、交集操作,其运算性能的高低势必会影响整个银行系统的性能。如何才能最大限度的提高外部数据集合的性能,已经是迫不及待要解决的问题。
[0003]提高外部数据集合的效率目的,是在对账、数据处理过程中,对一般结构化存储的文件,两个文件中的数据进行并集、交集操作,并提高其效率。在以前的系统中,是将两个文件入库后,进行集合运算,主要是通过SQL处理数据。处理完毕后再导出文件。若入库计算,需要频繁装载文件,对数据库频繁的操作,效率上必然会受到数据库性能的影响。
[0004]在当下,银行在集中对账过程中,需要每天对自有账务文件和对方账务信息进行勾对。每天可以高达百万组,找出各方不一致或遗漏、多记的记录。如此大量的数据需要对比,如果使用数据库技术,需要占用大量的计算机资源,耗时较多。且SQL处理操作效率低,消耗大量数据库计算资源。
三、
技术实现思路
[0005]本专利技术目的:为了解决上述问题,以不占用数据资源、不采用其他商用软件的前提下,提供了一种普遍而高效的外部数据集合算法。解决以前两个文件中的数据进行并集、交集操作效率较低的问题。实现 ...
【技术保护点】
【技术特征摘要】
1.一种外部数据集合运算方法,其特征在于,应用于集合运算设备,所述集合运算设备的内存中设置有三个哈希映射区,每个哈希映射区包括多个链表,所述集合运算方法包括:逐行读取待运算的第一文件,并将各行数据的哈希值、主键和主键值信息存储于第一哈希映射区中与各行数据的哈希值对应的第一链表;逐行读取待运算的第二文件,并将各行数据的哈希值、主键和主键值信息存储于第二哈希映射区中与各行数据的哈希值对应的第二链表;基于各链表中存储的哈希值、主键和主键值信息,对各第一链表和各第二链表,进行交并集运算,并将运算结果存储于第三哈希映射区;基于所述第三哈希映射组,生成运算结果文件,实现外部数据的集合运算。2.根据权利要求1所述的外部数据集合运算方法,其特征在于,所述逐行读取待运算的第一文件,并将各行数据的哈希值、主键和主键值信息存储于第一哈希映射区中与各行数据的哈希值对应的第一链表,包括:对于第一文件中的任一行数据,读取该行数据,并提取该行数据的主键和主键值信息;基于散列算法,计算该行数据的哈希值;基于该行数据的哈希值,和第一哈希映射区中第一链表的数量,确定与该行数据的哈希值对应的第一链表;将该行数据的哈希值、主键和主键值信息,存储于与该行数据的哈希值对应的第一链表。3.根据权利要求2所述的外部数据集合运算方法,其特征在于,所述基于该行数据的哈希值,和第一哈希映射区中第一链表的数量,确定与该行数据的哈希值对应的第一链表,包括:基于所述第一链表的数量,对该行数据的哈希值,进行取余运算,得到余数S1;将第一哈希映射区中第S1个第一链表,确定为该行数据的哈希值对应的第一链表。4.根据权利要求1所述的外部数据集合运算方法,其特征在于,所述逐行读取待运算的第二文件,并将各行数据的哈希值、主键和主键值信息存储于第二哈希映射区中与各行数据的哈希值对应的第二链表,包括:对于第二文件中的任一行数据,读取该行数据,并提取该行数据的主键和主键值信息;基于散列算法,计算该行数据的哈希值;基于该行数据的哈希值,和第二哈希映射区中第二链表的数量,确定与该行数据的哈希值对应的第二链表;将该行数据的哈希值、主键和主键值信息,存储于与该行数据的哈希值对应的第二链表。5.根据权利要求4所述的外部数据集合运算方法,其特征在于,所述基于该行数据的哈希值,和第一哈希映射区中第一链表的数量,确定与该行数据的哈希值对应的第一链表,包括:基于所述第二链表的数量,对该行数据的哈希值,进行取余运算,得到余数S2;将第二哈希映射区中第S2个第二链表,确定为该行数据的哈希值对应的第二链表。6.根据权利要求1所述的外部数据集合运算方法,其特征在于,每个链表包括多个节点,一个节点存储第一文件或第二文件中一行数据的哈希值、主键和主键值信息;同一哈希
映射区的不同链表的哈希值不同,同一链表中不同节点的主键不同;所述基于各链表中存储的哈希值、主键和主键值信息,对各第一链表和各第二链表,进行交并集运算,并将运算结果存储于第三哈希映射区,包括:...
【专利技术属性】
技术研发人员:柴磊,
申请(专利权)人:河北银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。