logo好方法网

一种数据文件的比对方法


技术摘要:
本发明涉及一种数据文件的比对方法,文件每行为一条单独记录,所述数据文件的比对方法包括以下步骤:根据参与比对的文件的格式写好对应配置文件;将参与比对的文件进行预处理,将每行的key字段提取并添加到每条记录之前;合并所有参与比对的文件,形成合成文件;根据配  全部
背景技术:
现有技术中,对于数据文件差异比对,主要的比对方法是将两个待比对的文件逐 行进行比对,并标记出差异位置,此种比对方式主要适用于文件差异不大,且文件内容不多 的比对场景。当文件差异较大时,会增加后续差异分析的难度,因此现有比对方式不适用于 需要对每一处差异均要做分析处理的场景。 正常情况下,一个大的文件可能会产生几十万、上百万的记录。例如:假设文件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 3 CN 111581942 A 说 明 书 2/5 页 字段相同的记录按照参与比对的文件编号顺序依次罗列在一起。 可选的,在所述数据文件的比对方法中,使用awk脚本工具遍历合成文件得到比对 结果包括以下步骤: 将所述合成文件中相同key字段范围内所有参与比对的文件中的记录依次进行比 对。 可选的,在所述数据文件的比对方法中,对于任一相同key字段范围内所有参与比 对的文件中的记录依次进行比对的步骤如下: 逐行处理,若所有参与比对的文件中有一个或多个有数值域,则获取有数值域的 文件; 若有多个文件有该key字段的数值域,则逐个域值进行对比。 可选的,在所述数据文件的比对方法中,所述配置文件用于描述每条记录中的字 段名称、字段顺序、字段长度、字段类型以及字段描述。 可选的,在所述数据文件的比对方法中,所述key字段为每条记录的唯一编号。 可选的,在所述数据文件的比对方法中,所述key字段的数值域由字段名称、字段 顺序、字段长度、字段类型以及字段描述组成。 可选的,在所述数据文件的比对方法中,所述域值为字段名称、字段顺序、字段长 度、字段类型或字段描述的值。 可选的,在所述数据文件的比对方法中,使用awk脚本工具遍历合成文件得到比对 结果还包括以下步骤: 纵向统计每个数值域差异的数量信息。 与现有技术相比,本发明的技术方案具有以下优点: (1)实现对比对差异的分析; (2)显著的缩短所有比对文件的比对用时; (3)减小了比对过程对系统资源的占用; (4)可以同时对多个文件进行比对。 附图说明 图1为本发明实施例提供的数据文件的比对方法的流程图。
下载此资料需消耗2积分,
分享到:
收藏