[发明专利]一种数据文件的比对方法有效
申请号: | 202010533593.3 | 申请日: | 2020-06-12 |
公开(公告)号: | CN111581942B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 熊志华 | 申请(专利权)人: | 上海通联金融服务有限公司 |
主分类号: | G06F40/194 | 分类号: | G06F40/194;G06F9/455 |
代理公司: | 上海翰信知识产权代理事务所(普通合伙) 31270 | 代理人: | 张维东 |
地址: | 200437 上海市虹口*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据文件 方法 | ||
本发明涉及一种数据文件的比对方法,文件每行为一条单独记录,所述数据文件的比对方法包括以下步骤:根据参与比对的文件的格式写好对应配置文件;将参与比对的文件进行预处理,将每行的key字段提取并添加到每条记录之前;合并所有参与比对的文件,形成合成文件;根据配置文件生成用于比对的awk脚本工具;使用awk脚本工具遍历合成文件得到比对结果。本发明实现了对比对差异的分析,还能够显著的缩短所有比对文件的比对用时,并减小了比对过程对系统资源的占用。
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据文件的比对方法。
背景技术
现有技术中,对于数据文件差异比对,主要的比对方法是将两个待比对的文件逐行进行比对,并标记出差异位置,此种比对方式主要适用于文件差异不大,且文件内容不多的比对场景。当文件差异较大时,会增加后续差异分析的难度,因此现有比对方式不适用于需要对每一处差异均要做分析处理的场景。
正常情况下,一个大的文件可能会产生几十万、上百万的记录。例如:假设文件A有n条记录,文件B有m条记录,若以一般的处理方法遍历文件A,然后对于每条文件A的记录都去文件B中查找对应key值的记录,则需要遍历文件B n次,同时还需要反向遍历文件B再去文件A中查找判断哪些是文件B中的记录。且在比对程序执行时需要实时根据配置文件去配置解析每行数值域,每行数据每个字段域的解析过程都需要经过:a-判断当前记录处理到哪个字段域-b-获取该字段长度信息、字段描述信息以及字段类型-c-根据获取到的长度信息截取出对应的值-d-查找此字段对应的另一文件的同一记录上这个字段的值-e-再进行比较-f-输出结果。由于比对格式是固定的,上面判断当前处理的字段并查找字段长度信息的过程以及整个运行期间得到的结果都是一样的,而每条记录都会重复执行这些动作。不难看出,当前文件比对的难点还包括当文件很大时,会导致比对程序非常耗时,且占用系统资源过多。
因此有必要提供一种数据文件的比对方法,实现对比对差异的分析,还能够显著的缩短所有比对文件的比对用时以及减小对系统资源的占用。
发明内容
本发明的目的在于提供一种数据文件的比对方法,实现对比对差异的分析,还能够显著的缩短所有比对文件的比对用时以及减小对系统资源的占用。
为了解决现有技术中存在的问题,本发明提供了一种数据文件的比对方法,文件每行为一条单独记录,所述数据文件的比对方法包括以下步骤:
根据参与比对的文件的格式写好对应配置文件;
将参与比对的文件进行预处理,将每行的key字段提取并添加到每条记录之前;
合并所有参与比对的文件,形成合成文件;
根据配置文件生成用于比对的awk脚本工具;
使用awk脚本工具遍历合成文件得到比对结果。
可选的,在所述数据文件的比对方法中,形成合成文件的步骤包括:
将所有参与比对的文件依次编号;
按照顺序排列各key字段;
在各key字段范围内按照参与比对的文件编号顺序依次罗列各文件的记录,使key字段相同的记录按照参与比对的文件编号顺序依次罗列在一起。
可选的,在所述数据文件的比对方法中,使用awk脚本工具遍历合成文件得到比对结果包括以下步骤:
将所述合成文件中相同key字段范围内所有参与比对的文件中的记录依次进行比对。
可选的,在所述数据文件的比对方法中,对于任一相同key字段范围内所有参与比对的文件中的记录依次进行比对的步骤如下:
逐行处理,若所有参与比对的文件中有一个或多个有数值域,则获取有数值域的文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海通联金融服务有限公司,未经上海通联金融服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010533593.3/2.html,转载请声明来源钻瓜专利网。