一种合并关联记录的方法及装置.pdf

上传人:Y94****206 文档编号:4443465 上传时间:2018-10-02 格式:PDF 页数:17 大小:2.39MB
返回 下载 相关 举报
一种合并关联记录的方法及装置.pdf_第1页
第1页 / 共17页
一种合并关联记录的方法及装置.pdf_第2页
第2页 / 共17页
一种合并关联记录的方法及装置.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《一种合并关联记录的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种合并关联记录的方法及装置.pdf(17页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104021213 A (43)申请公布日 2014.09.03 C N 1 0 4 0 2 1 2 1 3 A (21)申请号 201410280927.5 (22)申请日 2014.06.20 G06F 17/30(2006.01) (71)申请人中国银行股份有限公司 地址 100818 北京市西城区复兴门内大街1 号 (72)发明人彭丰华 付昕 冯伟 李夏安 (74)专利代理机构北京集佳知识产权代理有限 公司 11227 代理人王宝筠 (54) 发明名称 一种合并关联记录的方法及装置 (57) 摘要 本发明公开了一种合并关联记录的方法及装 置,以实现高效率地合并。

2、关联记录的目的。例如, 该方法可以包括:为至少两个待处理文件分别设 置对应的数组,其中,每个待处理文件中包括若干 条记录,每条记录均具有主键值,每条记录包括多 个字段;将所述至少两个待处理文件中的记录, 存储到对应的数组中编号与所述记录主键值的预 设关键区别位数上的值相同的元素中;将所述至 少两个待处理文件对应的数组中的编号相同的元 素中的记录的主键值进行比较;将编号相同的元 素中主键值相同的记录中需要输出的字段输出到 结果文件。对于编号相同的元素中主键值相同的 记录来说,只进行一次主键值比较操作就能找到 主键值相同的记录,因此,处理效率较高。 (51)Int.Cl. 权利要求书3页 说明书8。

3、页 附图5页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书8页 附图5页 (10)申请公布号 CN 104021213 A CN 104021213 A 1/3页 2 1.一种合并关联记录的方法,其特征在于,包括: 为至少两个待处理文件分别设置对应的数组,其中,每个待处理文件中包括若干条记 录,每条记录均具有主键值,每条记录包括多个字段; 将所述至少两个待处理文件中的记录,存储到对应的数组中编号与所述记录主键值的 预设关键区别位数上的值相同的元素中; 将所述至少两个待处理文件对应的数组中的编号相同的元素中的记录的主键值进行 比较; 将编号相同的元素中主键值。

4、相同的记录中需要输出的字段输出到结果文件。 2.根据权利要求1所述的方法,其特征在于,所述数组为一维数组; 如果在一个待处理文件中存在两个或两个以上记录的主键值的预设关键区别位数上 的值相同,则仅将所述两个或两个以上记录中的一个存储到对应的数组中编号与所述记录 主键值的预设关键区别位数上的值相同的元素中,将所述两个或两个以上记录中其余的记 录存储到为该待处理文件配置的乱序文件中; 且还包括: 将编号相同的元素中主键值不同的记录存储到为该记录所在的待处理文件配置的乱 序文件中; 对每个待处理文件的乱序文件中的记录按主键值进行升序或降序排序,得到对应的有 序文件; 针对所述至少两个待处理文件对应的。

5、有序文件,利用有序双指针算法找出主键值相同 的记录; 将利用有序双指针算法找出的主键值相同的记录中需要输出的字段输出到结果文件。 3.根据权利要求2所述的方法,其特征在于,所述将至少两个待处理文件中的记录,存 储到对应的数组中编号与所述记录主键值的预设关键区别位数上的值相同的元素中的具 体实现为:从所述至少两个待处理文件中,根据为待处理文件设置的一维数组长度分别读 取出相应数量的尚未被读取的记录,将读取出的记录存储到对应的数组中编号与所述记录 主键值的预设关键区别位数上的值相同的元素中; 所述将编号相同的元素中主键值相同的记录中需要输出的字段输出到结果文件之后, 还包括:如果所述至少两个待处理。

6、文件中存在还未被读取的记录,重新进入所述从至少两 个待处理文件中,根据为待处理文件设置的一维数组长度分别读取出相应数量的尚未被读 取的记录的步骤;如果所述至少两个待处理文件中的所有记录均被读取完毕,进入所述对 每个待处理文件的乱序文件中的记录按主键值进行升序或降序排序的步骤。 4.根据权利要求3所述的方法,其特征在于,所述为至少两个待处理文件分别设置对 应的数组的具体实现为:为至少两个待处理文件分别设置对应的长度为N的一维数组,其 中,N为大于等于1的整数; 所述从所述至少两个待处理文件中,分别读取出尚未被读取的部分记录包括: 针对尚未被读取的记录的数量小于N条的待处理文件,从该待处理文件中读。

7、取出所有 尚未被读取的记录; 针对尚未被读取的记录的数量大于等于N条的待处理文件,从该待处理文件中读取出 尚未被读取的N条记录。 权 利 要 求 书CN 104021213 A 2/3页 3 5.根据权利要求1-4任一项所述的方法,其特征在于,所述将至少两个待处理文件中 的记录,存储到对应的数组中编号与所述记录主键值的预设关键区别位数上的值相同的元 素中包括: 根据至少两个待处理文件中的记录的主键值的末尾M位数的数值,将所述记录存储到 对应的数组中编号与所述记录的主键值的末尾M位数的数值相同的元素中,其中,M等于对 应的数组长度减1的得数的位数。 6.一种合并关联记录的装置,其特征在于,包括:。

8、 数组设置单元,用于为至少两个待处理文件分别设置对应的数组,其中,每个待处理文 件中包括若干条记录,每条记录均具有主键值,每条记录包括多个字段; 存储单元,用于将所述至少两个待处理文件中的记录,存储到对应的数组中编号与所 述记录主键值的预设关键区别位数上的值相同的元素中; 比较单元,用于将所述至少两个待处理文件对应的数组中的编号相同的元素中的记录 的主键值进行比较; 输出单元,用于将编号相同的元素中主键值相同的记录中需要输出的字段输出到结果 文件。 7.根据权利要求6所述的装置,其特征在于,所述数组为一维数组; 所述存储单元,具体用于如果在一个待处理文件中存在两个或两个以上记录的主键值 的预设。

9、关键区别位数上的值相同,则仅将所述两个或两个以上记录中的一个存储到对应的 数组中编号与所述记录主键值的预设关键区别位数上的值相同的元素中,将所述两个或两 个以上记录中其余的记录存储到为该待处理文件配置的乱序文件中; 且,所述存储单元,还用于将编号相同的元素中主键值不同的记录存储到为该记录所 在的待处理文件配置的乱序文件中; 还包括:排序单元,用于对每个待处理文件的乱序文件中的记录按主键值进行升序或 降序排序,得到对应的有序文件;双指针查找单元,用于针对所述至少两个待处理文件对应 的有序文件,利用有序双指针算法找出主键值相同的记录; 且,所述输出单元,还用于将利用有序双指针算法找出的主键值相同的。

10、记录中需要输 出的字段输出到结果文件。 8.根据权利要求7所述的装置,其特征在于,所述存储单元,用于从所述至少两个待处 理文件中,根据为待处理文件设置的一维数组长度分别读取出相应数量的尚未被读取的记 录,将读取出的记录存储到对应的数组中编号与所述记录主键值的预设关键区别位数上的 值相同的元素中; 所述存储单元,还用于在输出单元将编号相同的元素中主键值相同的记录中需要输出 的字段输出到结果文件之后,如果所述至少两个待处理文件中存在还未被读取的记录,重 新进入所述从至少两个待处理文件中,根据为待处理文件设置的一维数组长度分别读取出 相应数量的尚未被读取的记录的步骤;如果所述两个待处理文件中的所有记。

11、录均被读取完 毕,触发排序单元执行。 9.根据权利要求8所述的装置,其特征在于,所述数组设置单元,用于为至少两个待处 理文件分别设置对应的长度为N的一维数组,其中,N为大于等于1的整数; 其中,所述存储单元,具体用于针对尚未被读取的记录的数量小于N条的待处理文件, 权 利 要 求 书CN 104021213 A 3/3页 4 从该待处理文件中读取出所有尚未被读取的记录;针对尚未被读取的记录的数量大于等于 N条的待处理文件,从该待处理文件中读取出尚未被读取的N条记录。 10.根据权利要求6-9任一项所述的装置,其特征在于,所述存储单元,具体用于根据 至少两个待处理文件中的记录的主键值的末尾M位数。

12、的数值,将所述记录存储到对应的数 组中编号与所述记录的主键值的末尾M位数的数值相同的元素中,其中,M等于对应的数组 长度减1的得数的位数。 权 利 要 求 书CN 104021213 A 1/8页 5 一种合并关联记录的方法及装置 技术领域 0001 本发明涉及数据处理领域,特别涉及一种合并关联记录的方法及装置。 背景技术 0002 在数据表中,通常一行为一条记录,一条记录中包括多个字段。对数据表的操作有 很多种,其中,合并主键值相同的相互关联的记录的JOIN(合并)操作是常见的操作。 0003 例如,在银行业,通常采用有序双指针算法查找存款的主表和附表相关联的记录, 并将相互关联的记录某些字。

13、段合并形成利息文件。具体地,可以将从主数据表得到的文件 A中的记录、以及从附数据表得到的文件B中的记录,分别按主键升序排序;针对按升序排 序后的两个文件同时从主键最小的记录开始按主键从小到大的顺序读取记录;当从两个文 件分别读取到的两个记录的主键相同时,确定这两个记录相互关联,将需要输出的字段输 出到结果文件中;当从两个文件分别读取到的两个记录的主键不同时,针对读取到的主键 较小的文件A继续读取,且针对主键较大的文件B暂停读取;当从文件A读取到的记录的主 键大于或等于当前从文件B读取到的记录的主键时,继续读取文件A以及B中的记录,并将 主键相同的两个记录的需要输出的字段输出到结果文件中,如此循。

14、环,一直到两个文件中 的任一个读取完毕,得到结果文件。 0004 但是,该算法需要分别对两个文件所有记录按主键值进行排序,之后再同步读取 两个文件的记录并比较主键值,因此,针对每条记录,都会产生多次的比较主键值大小的操 作,运算量较大,导致合并关联记录的整个处理时间较长,效率较低,而且耗费了大量CPU 和内存资源。 发明内容 0005 有鉴于此,本发明的目的在于提供一种合并关联记录的方法及装置以实现高效率 地合并关联记录的目的。 0006 在本发明实施例的第一个方面,提供了一种合并关联记录的方法。例如,该方法 可以包括:为至少两个待处理文件分别设置对应的数组,其中,每个待处理文件中包括若干 条。

15、记录,每条记录均具有主键值,每条记录包括多个字段;将所述至少两个待处理文件中的 记录,存储到对应的数组中编号与所述记录主键值的预设关键区别位数上的值相同的元素 中;将所述至少两个待处理文件对应的数组中的编号相同的元素中的记录的主键值进行比 较;将编号相同的元素中主键值相同的记录中需要输出的字段输出到结果文件。 0007 在本发明实施例的第二个方面,提供了一种合并关联记录的装置。例如,该装置可 以包括:数组设置单元,用于为至少两个待处理文件分别设置对应的数组,其中,每个待处 理文件中包括若干条记录,每条记录均具有主键值,每条记录包括多个字段;存储单元,用 于将所述至少两个待处理文件中的记录,存储。

16、到对应的数组中编号与所述记录主键值的预 设关键区别位数上的值相同的元素中;比较单元,用于将所述至少两个待处理文件对应的 数组中的编号相同的元素中的记录的主键值进行比较;输出单元,用于将编号相同的元素 说 明 书CN 104021213 A 2/8页 6 中主键值相同的记录中需要输出的字段输出到结果文件。 0008 可见,本发明具有如下有益效果: 0009 由于本发明实施例将待处理文件中的记录存储到对应的数组中编号与主键值的 预设关键区别位数上的值相同的元素中,因此,如果两个文件中存在主键值相同的记录,则 主键值相同的记录将被分别存储对应的数组中相同编号的元素中,而数组具有直接利用编 号快速定位。

17、到元素的特点,无需通过其他操作,可直接将所述至少两个待处理文件对应的 数组中编号相同的元素中存储的记录的主键值进行比较,快速找出主键值相同的记录,进 而将主键值相同的记录中需要输出的字段输出到结果文件中,因此,对于编号相同的元素 中主键值相同的记录来说,只进行一次主键值比较操作就能找到主键值相同的记录,与现 有技术针对每条记录都要进行多次比较操作相比,运算量小,效率高,可节省大量的CPU和 内存资源。 附图说明 0010 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例。

18、,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提 下,还可以根据这些附图获得其他的附图。 0011 图1为本发明实施例提供的合并关联记录的方法的流程示意图之一; 0012 图2为本发明实施例提供的合并关联记录的方法的流程示意图之二; 0013 图3为本发明实施例提供的合并关联记录的方法的流程示意图之三; 0014 图4为本发明实施例提供的合并关联记录的装置的结构示意图之一; 0015 图5为本发明实施例提供的合并关联记录的装置的结构示意图之二。 具体实施方式 0016 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实 施例中的附图,对本申请实施例中的技术方案进行清。

19、楚、完整地描述,显然,所描述的实施 例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通 技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护 的范围。 0017 例如,参见图1,为本发明实施例提供的合并关联记录的方法流程示意图之一。如 图1所示,该实施例可以包括: 0018 S110、为至少两个待处理文件分别设置对应的数组,其中,每个待处理文件中包括 若干条记录,每条记录均具有主键值,每条记录包括多个字段; 0019 S120、将所述至少两个待处理文件中的记录,存储到对应的数组中编号与所述记 录主键值的预设关键区别位数上的值相同的元素中;。

20、 0020 需要说明的是,本发明实施例中对设置的数组具体为哪种数组不限。例如,可以为 固定长度的数组,也可以为长度可变的数组。可以为一维数组,也可以为二维数组,等等。例 如,在一维数组的实施方式中,一维数组中元素的编号可以为元素的下标。一维数组中的一 个元素可以只存储一条记录。再例如,在二维数组的实施方式中,二维数组中元素的编号可 说 明 书CN 104021213 A 3/8页 7 以指行编号或称下标,也可以指列编号或称上标。二维数组中的相同行编号不同列编号、或 者相同列编号不同行编号的若干个元素中可以分别存储对应的待处理文件中预设关键预 设区别位数上的值相同的若干条不同记录。更具体地,例如。

21、,如果将一个待处理文件中主键 值的预设关键预设区别位数上的值相同的若干条记录分别存储到对应的二维数组中行编 号相同的若干个元素中,则在下面提到的步骤S130将编号相同的元素中的记录的主键值 进行比较时,可以将不同待处理文件对应的二维数组之间行编号相同的若干个元素中的记 录的主键值进行比较。 0021 其中,所述预设关键区别位数为主键值的哪几位不限,具体可以根据实施需要设 置。例如,所述预设关键区别位数上的值可以取主键值最高位几位数上的值、中间几位数上 的值、最末尾几位数上的值、或者两段不同位数上的值的拼接,等等。 0022 在一种可能的实施方式中,例如,可以取主键值的末尾M位数的数值,其中,M。

22、等 于对应的数组长度减1的得数的位数。在该实施方式中,可以根据至少两个待处理文件 中的记录的主键值的末尾M位数的数值,将所述记录存储到对应的数组中编号与所述 记录的主键值的末尾M位数的数值相同的元素中。具体地,例如:待处理文件A主键值 为0030000000000000123的记录,存储到待处理文件A对应的一维数组A-array编号为 123的元素中,待处理文件A主键值为0040000000000000122的记录,存储到一维数组 A-array编号为122的元素中;待处理文件B主键值为0030000000000000123的记录,存 储到待处理文件B对应的一维数组B-array编号为123的。

23、元素中,待处理文件B主键值为 0030000000000000122的记录,存储到一维数组B-array编号为122的元素中。 0023 S130、将所述至少两个待处理文件对应的数组中编号相同的元素中存储的记录的 主键值进行比较; 0024 例如,如上述例子中,将A-array中编号为122的元素中记录的主 键值0040000000000000122与B-array中编号为122的元素中记录的主键 值0030000000000000122进行比较;将A-array中编号为123的元素中记录的 主键值0030000000000000123与B-array中编号为123的元素中记录的主键值 003。

24、0000000000000123进行比较,进而可以得到比较结果(如,相同或者不同)。 0025 S140、将编号相同的元素中主键值相同的记录中需要输出的字段输出到结果文 件。 0026 例如,可以将相同的记录中需要输出的字段合并为一条记录输出到结果文件中。 如上述例子,数组A-array以及数组B-array中编号为123的元素中的记录的主键值相同, 则可以将两条记录需要输出的字段合并为一条记录输出到结果文件。 0027 应用本发明实施例,对于编号相同的元素中主键值相同的记录来说,只进行一次 主键值比较操作就能找到主键值相同的记录,与现有技术针对每条记录都要进行多次比较 操作相比,运算量小,效。

25、率高,可节省大量的CPU和内存资源。 0028 根据本发明一种可能的实施方式,可以为至少两个待处理文件分别设置对应的一 维数组。然而,在实际应用中,一个待处理文件有可能存在主键值的预设关键区别位数上的 值相同的两条或两条以上记录,如果将两条或两条以上记录存储在一个元素中将不便于比 较主键值,如果一个元素只存储一个记录,又可能遗漏主键值相同的记录。为了便于主键值 的比较,以及输出全部的主键值相同的记录的字段,如图2所示,本发明实施例在一些可能 说 明 书CN 104021213 A 4/8页 8 的实施方式中可以包括以下步骤: 0029 S210、为至少两个待处理文件分别设置对应的一维数组,其中。

26、,每个待处理文件中 包括若干条记录,每条记录均具有主键值,每条记录包括多个字段; 0030 S220、将所述至少两个待处理文件中的记录,存储到对应的一维数组中编号与所 述记录主键值的预设关键区别位数上的值相同的元素中;其中,如果在一个待处理文件中 存在两个或两个以上记录的主键值的预设关键区别位数上的值相同,则仅将所述两个或两 个以上记录中的一个存储到对应的一维数组中编号与所述记录主键值的预设关键区别位 数上的值相同的元素中,将所述两个或两个以上记录中其余的记录存储到为该待处理文件 配置的乱序文件中; 0031 S230、将所述至少两个待处理文件对应的一维数组中的编号相同的元素中的记录 的主键值。

27、进行比较; 0032 S240、将编号相同的元素中主键值相同的记录中需要输出的字段输出到结果文 件; 0033 S250、将编号相同的元素中主键值不同的记录存储到为该记录所在的待处理文件 配置的乱序文件中; 0034 S260、对每个待处理文件的乱序文件中的记录按主键值进行升序或降序排序,得 到对应的有序文件; 0035 例如,在IBM大型机环境中,可以使用IMB大型机的SORT工具进行排序。 0036 S270、针对所述至少两个待处理文件对应的有序文件,利用有序双指针算法找出 主键值相同的记录; 0037 S280、将利用有序双指针算法找出的主键值相同的记录中需要输出的字段输出到 结果文件。。

28、 0038 例如,如果对待处理文件的乱序文件中的记录进行升序排序,则针对所述至少两 个待处理文件对应的有序文件,利用有序双指针算法找出主键值相同的记录可以包括:针 对至少两个有序文件,同步从主键值最小的记录开始按主键值从小到大的顺序读取记录, 每同步读取一条记录即进入判断步骤,所述判断步骤包括:当从两个有序文件分别读取到 的两个记录的主键值相同时,确定这两个记录相互关联,将需要输出的字段输出到结果文 件中;当从两个文件分别读取到的两个记录的主键值不同时,针对读取到的主键值较小的 文件继续读取,且针对主键较大的文件暂停读取;当继续读取到的记录的主键大于从暂停 读取的文件中最后读取到的记录的主键时。

29、,针对该暂停读取的文件继续同步读取记录;当 继续读取到的记录的主键等于从暂停读取的文件中最后读取到的记录的主键时,将主键相 同的两个记录的字段输出到结果文件中,针对该暂停读取的文件继续同步读取记录;其中, 在继续同步读取记录的过程中,每同步读取一条记录即进入判断步骤,当所有有序文件中 的记录都同时读取完毕、或者只剩一个有序文件中的记录未被读取完毕时,得到结果文件。 0039 再例如,如果对待处理文件的乱序文件中的记录进行降序排序,则针对所述至少 两个待处理文件对应的有序文件,利用有序双指针算法找出主键值相同的记录可以包括: 针对至少两个有序文件,同步从主键值最大的记录开始按主键值从大到小的顺序。

30、读取记 录,每同步读取一条记录即进入判断步骤,所述判断步骤包括:当从两个有序文件分别读取 到的两个记录的主键值相同时,确定这两个记录相互关联,将需要输出的字段输出到结果 说 明 书CN 104021213 A 5/8页 9 文件中;当从两个文件分别读取到的两个记录的主键值不同时,针对读取到的主键值较大 的文件继续读取,且针对主键较小的文件暂停读取;当继续读取到的记录的主键小于从暂 停读取的文件中最后读取到的记录的主键时,针对该暂停读取的文件继续同步读取记录; 当继续读取到的记录的主键等于从暂停读取的文件中最后读取到的记录的主键时,将主键 相同的两个记录的需要输出的字段输出到结果文件中,针对该暂。

31、停读取的文件继续同步读 取记录;其中,在继续同步读取记录的过程中,每同步读取一条记录即进入判断步骤,当所 有有序文件中的记录都同时读取完毕、或者只剩一个有序文件中的记录未被读取完毕时, 得到结果文件。 0040 可见,根据本发明该实施方式,由于仅将主键值中预设关键区别位数上的值相同 的两个或两个以上记录中的一个存储到对应的一维数组中编号与所述预设关键区别位数 上的值相同的元素中,因此,便于进行比较主键值;将该主键值中预设关键区别位数上的值 相同的两个或两个以上记录中的其余记录存储到乱序文件中,以及将编号相同的元素中主 键值不同的记录存储到为该记录所在的待处理文件配置的乱序文件中,针对乱序文件进。

32、行 排序得到有序文件,针对有序文件根据有序双指针算法输出主键值相同的记录的字段,因 此,可以把待处理文件中所有主键值相同的记录中需要输出的字段权输出到结果文件中。 在该实施方式中,当待处理文件之间主键值相同的记录越多时,通过比较编号相同的元素 的主键值输出需要输出的字段到结果文件的处理量越大,需要对乱序文件排序以及利用双 指针算法输出字段到结果文件的处理量越少,效率越高,因此,本发明实施例可以在待处理 文件之间关联的记录的主键值分布需要具有较大的相似度时应用。 0041 另外,受一维数组的存储空间的限制,当待处理文件中的记录数量较大时,可能无 法将待处理文件中的所有记录存储到数组中。为了解决这。

33、一问题,本发明实施例另一可能 的实施方式可以包括以下步骤: 0042 S310、为至少两个待处理文件分别设置对应的一维数组,其中,每个待处理文件中 包括若干条记录,每条记录均具有主键值,每条记录包括多个字段; 0043 例如,可以为至少两个待处理文件分别设置对应的同样的长度为N的一维数组, 其中,N为大于等于1的整数,例如,1000。 0044 S320、从所述至少两个待处理文件中,根据为待处理文件设置的一维数组长度分 别读取出相应数量的尚未被读取的记录,将读取出的记录存储到对应的数组中编号与所述 记录主键值的预设关键区别位数上的值相同的元素中;其中,如果在一个待处理文件中存 在两个或两个以上。

34、记录的主键值的预设关键区别位数上的值相同,则仅将所述两个或两个 以上记录中的一个存储到对应的一维数组中编号与所述记录主键值的预设关键区别位数 上的值相同的元素中,将所述两个或两个以上记录中其余的记录存储到为该待处理文件配 置的乱序文件中; 0045 例如,针对尚未被读取的记录的数量小于N条的待处理文件,可以从该待处理文 件中读取出所有尚未被读取的记录;针对尚未被读取的记录的数量大于等于N条的待处理 文件,可以从该待处理文件中读取出尚未被读取的N条记录。 0046 S330、将所述至少两个待处理文件对应的一维数组中的编号相同的元素中的记录 的主键值进行比较; 0047 S340、将编号相同的元素。

35、中主键值相同的记录中需要输出的字段输出到结果文 说 明 书CN 104021213 A 6/8页 10 件; 0048 例如,在将数组中编号相同的元素中主键值相同的记录中需要输出的字段全部输 出到结果文件之后,可以清空数组中存储的记录以便接受新写入的记录。 0049 S350、将编号相同的元素中主键值不同的记录存储到为该记录所在的待处理文件 配置的乱序文件中; 0050 S351、如果所述至少两个待处理文件中存在还未被读取的记录,返回到步骤 S320; 0051 S360、如果所述至少两个待处理文件中的所有记录均被读取完毕,对每个待处理 文件的乱序文件中的记录按主键值进行升序或降序排序,得到对。

36、应的有序文件; 0052 S370、针对所述至少两个待处理文件对应的有序文件,利用有序双指针算法找出 主键值相同的记录; 0053 S380、将利用有序双指针算法找出的主键值相同的记录中需要输出的字段输出到 结果文件。 0054 该实施方式与上一实施方式不同的是,针对待处理文件中的记录,一次只值读取 与一维数组长度相应数量的尚未读取的记录到数组,在将编号相同的元素中主键值相同的 记录中需要输出的字段输出到结果文件之后,再进行下一次读取以及比较,直到待处理文 件中的记录读取完毕,再针对乱序文件进行排序以及利用有序双指针算法输出字段到结果 文件,因此,该实施方式可以实现高效率地对海量记录的待处理文。

37、件的合并关联记录操作。 0055 与上述合并关联记录的方法相对应的,本发明实施例还提供了一种合并关联记录 的装置。例如,参见图4,为本发明实施例提供的一种合并关联记录的装置结构示意图。如 图4所示,该装置可以包括: 0056 数组设置单元410,可以用于为至少两个待处理文件分别设置对应的数组,其中, 每个待处理文件中包括若干条记录,每条记录均具有主键值,每条记录包括多个字段; 0057 存储单元420,可以用于将所述至少两个待处理文件中的记录,存储到对应的数组 中编号与所述记录主键值的预设关键区别位数上的值相同的元素中; 0058 其中,所述预设关键区别位数为主键值的哪几位不限,具体可以根据实。

38、施需要设 置。例如,所述预设关键区别位数上的值可以取主键值末尾几位数上的值,或者,可以取主 键值最高位几位数上的值、中间几位数上的值、以及最末尾几位数上的值这三段数值中至 少两段数值的拼接,或者,可以取主键值的末尾M位数的数值,其中,M等于对应的数组长度 减1的得数的位数。 0059 比较单元430,可以用于将所述至少两个待处理文件对应的数组中的编号相同的 元素中的记录的主键值进行比较; 0060 输出单元440,可以用于将编号相同的元素中主键值相同的记录中需要输出的字 段输出到结果文件。 0061 可见,由于本发明实施例提供的装置由存储单元420将待处理文件中的记录存储 到对应的数组中编号与。

39、主键值的预设关键区别位数上的值相同的元素中,因此,如果两个 文件中存在主键值相同的记录,则主键值相同的记录将被分别存储对应的数组中相同编号 的元素中,而数组具有直接利用编号快速定位到元素的特点,因此,无需通过其他操作,可 由比较单元430直接将所述至少两个待处理文件对应的数组中编号相同的元素中存储的 说 明 书CN 104021213 A 10 7/8页 11 记录的主键值进行比较,快速找出主键值相同的记录,进而由输出单元440将主键值相同 的记录中需要输出的字段输出到结果文件中,因此,对于编号相同的元素中主键值相同的 记录来说,只进行一次主键值比较操作就能找到主键值相同的记录,与现有技术针对。

40、每条 记录都要进行多次比较操作相比,运算量小,效率高,可节省大量的CPU和内存资源。 0062 根据本发明一种可能的实施方式,可以为至少两个待处理文件分别设置对应的一 维数组。在该实施方式中,所述存储单元420,具体可以用于如果在一个待处理文件中存在 两个或两个以上记录的主键值的预设关键区别位数上的值相同,则仅将所述两个或两个以 上记录中的一个存储到对应的数组中编号与所述记录主键值的预设关键区别位数上的值 相同的元素中,将所述两个或两个以上记录中其余的记录存储到为该待处理文件配置的乱 序文件中。且,所述存储单元420,还可以用于将编号相同的元素中主键值不同的记录存储 到为该记录所在的待处理文件。

41、配置的乱序文件中。如图5所示,本发明实施例提供的装置 在该实施方式中还可以包括:排序单元450,可以用于对每个待处理文件的乱序文件中的 记录按主键值进行升序或降序排序,得到对应的有序文件;双指针查找单元451,可以用于 针对所述至少两个待处理文件对应的有序文件,利用有序双指针算法找出主键值相同的记 录;且,所述输出单元440,还可以用于将利用有序双指针算法找出的主键值相同的记录中 需要输出的字段输出到结果文件。 0063 另外,受一维数组的存储空间的限制,当待处理文件中的记录数量较大时,可能无 法将待处理文件中的所有记录存储到数组中。为了解决这一问题,本发明实施例提供的装 置的存储单元420,。

42、可以用于从所述至少两个待处理文件中,根据为待处理文件设置的一维 数组长度分别读取出相应数量的尚未被读取的记录,将读取出的记录存储到对应的数组中 编号与所述记录主键值的预设关键区别位数上的值相同的元素中。所述存储单元420,还可 以用于在输出单元440将编号相同的元素中主键值相同的记录中需要输出的字段输出到 结果文件之后,如果所述至少两个待处理文件中存在还未被读取的记录,重新进入所述从 至少两个待处理文件中,根据为待处理文件设置的一维数组长度分别读取出相应数量的尚 未被读取的记录的步骤;如果所述两个待处理文件中的所有记录均被读取完毕,触发排序 单元450执行。 0064 例如,在该实施方式中,所。

43、述数组设置单元410,可以用于为至少两个待处理文件 分别设置对应的长度为N的一维数组,其中,N为大于等于1的整数。其中,所述存储单元 420,具体可以用于针对尚未被读取的记录的数量小于N条的待处理文件,从该待处理文件 中读取出所有尚未被读取的记录;针对尚未被读取的记录的数量大于等于N条的待处理文 件,从该待处理文件中读取出尚未被读取的N条记录。 0065 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本 发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。 0066 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可 借助软件加必需的通用硬件。

44、平台的方式来实现。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品 可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些 部分所述的方法。 说 明 书CN 104021213 A 11 8/8页 12 0067 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实 施例而言,由于其基本相似于方法实施例,所以描述的。

45、比较简单,相关之处参见方法实施例 的部分说明即可。 0068 本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务 器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶 盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的 分布式计算环境等等。 0069 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由 通过通信网络而被连接的远。

46、程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。 0070 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存 在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除 在包。

47、括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 0071 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。 说 明 书CN 104021213 A 12 1/5页 13 图1 说 明 书 附 图CN 104021213 A 13 2/5页 14 图2 说 明 书 附 图CN 104021213 A 14 3/5页 15 图3 说 明 书 附 图CN 104021213 A 15 4/5页 16 图4 说 明 书 附 图CN 104021213 A 16 5/5页 17 图5 说 明 书 附 图CN 104021213 A 17 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1