异构数据源数据同步方法及装置与流程

文档序号:31656690发布日期:2022-09-27 22:23阅读:78来源:国知局
异构数据源数据同步方法及装置与流程

1.本发明涉及大数据技术领域,尤其涉及一种异构数据源数据同步方法及装置。


背景技术:

2.随着大数据处理技术在银行业的应用,银行客户数量的不断增加,业务需求的复杂化等,传统关系性数据库逐渐变成联机查询库,只进行实时的数据访问,而数据加工多在分布式数据库,如hive,其支持大数据量的数据存储加工,数据存储在hdfs(分布式文件系统)上,即一个个文件。因此异构数据源之间大量数据准确同步功能是目前系统功能必不可少的一部分。
3.对于异构数据库之间的数据同步目前大多会采用数据同步工具,如datax、sqoop等,但是这些同步工具在数据同步时仅支持表的列之间采用单分隔符分割,但是诸如地址、姓名、描述等中会存在各种各样的字符,这些字符不可避免的会与分隔符重复,这样就会误判断为脏数据,导致某些数据记录同步不成功。


技术实现要素:

4.本发明实施例提出一种异构数据源数据同步方法,用以对异构数据源的数据进行同步,成功率高,该方法包括:
5.获得异构数据源的多个数据文件;
6.对每个数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项;
7.对每个数据文件的每行数据,基于该行数据的目标数据项数和每个数据项的类型,对该行数据的多个数据项进行校验;
8.在校验不通过时,对该行数据的多个数据项进行修正处理;
9.在校验通过时或修正处理后,对每个数据文件的每行数据,根据数据项数和预设分隔符,将多个数据项拼接为目标文件的一行数据,生成多个目标文件;
10.将多个目标文件输出至目的端。
11.本发明实施例提出一种异构数据源数据同步装置,用以对异构数据源的数据进行同步,成功率高,该装置包括:
12.数据文件获取模块,用于获得异构数据源的多个数据文件;
13.数据项分割模块,用于对每个数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项;
14.校验模块,用于对每个数据文件的每行数据,基于该行数据的目标数据项数和每个数据项的类型,对该行数据的多个数据项进行校验;
15.修正模块,用于在校验不通过时,对该行数据的多个数据项进行修正处理;
16.数据项拼接模块,用于在校验通过时或修正处理后,对每个数据文件的每行数据,根据数据项数和预设分隔符,将多个数据项拼接为目标文件的一行数据,生成多个目标文件;
17.传输模块,用于将多个目标文件输出至目的端。
18.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述异构数据源数据同步方法。
19.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述异构数据源数据同步方法。
20.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述异构数据源数据同步方法。
21.在本发明实施例中,获得异构数据源的多个数据文件;对每个数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项;对每个数据文件的每行数据,基于该行数据的目标数据项数和每个数据项的类型,对该行数据的多个数据项进行校验;在校验不通过时,对该行数据的多个数据项进行修正处理;在校验通过时或修正处理后,对每个数据文件的每行数据,根据数据项数和预设分隔符,将多个数据项拼接为目标文件的一行数据,生成多个目标文件;将多个目标文件输出至目的端。与现有技术通过数据同步工具进行同步的方法相比,在进行数据项分割后,对数据项进行了校验,且在校验不通过时,进行了修正处理,极大降低了数据项分割的脏数据的概率,从而提高了数据同步的成功率。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
23.图1为本发明实施例中异构数据源数据同步方法的流程图一;
24.图2为本发明实施例中异构数据源数据同步方法的流程图二;
25.图3为本发明实施例中进行数据项修正处理的流程图;
26.图4为本发明实施例中异构数据源数据同步装置的示意图一;
27.图5为本发明实施例中异构数据源数据同步装置的示意图二;
28.图6为本发明实施例中计算机设备的示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
30.在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本技术的实施,其中
的步骤顺序不作限定,可根据需要作适当调整。
31.图1为本发明实施例中异构数据源数据同步方法的流程图一,如图1所示,包括:
32.步骤101,获得异构数据源的多个数据文件;
33.步骤102,对每个数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项;
34.步骤103,对每个数据文件的每行数据,基于该行数据的目标数据项数和每个数据项的类型,对该行数据的多个数据项进行校验;
35.步骤104,在校验不通过时,对该行数据的多个数据项进行修正处理;
36.步骤105,在校验通过时或修正处理后,对每个数据文件的每行数据,根据数据项数和预设分隔符,将多个数据项拼接为目标文件的一行数据,生成多个目标文件;
37.步骤106,将多个目标文件输出至目的端。
38.在本发明实施例中,与现有技术通过数据同步工具进行同步的方法相比,在进行数据项分割后,对数据项进行了校验,且在校验不通过时,进行了修正处理,极大降低了数据项分割的脏数据的概率,从而提高了数据同步的成功率。
39.在步骤101中,获得异构数据源的多个数据文件,可以是hdfs(hadoop分布式文件系统)等上的数据文件以及gbase数据库等数据导出文件,这些数据文件一般需要导入到关系型数据库,诸如oracle、mysql等,或者导入到其他分布式数据库,如gbase等,实现数据同步,数据文件可以是数据库表的形式,也可以是文本形式,其经常含有大量的特殊字符,而按照分隔符导入数据库时,有时候存在特殊字符为分隔符,导致整条数据记录被判为脏数据而丢失的情况。本发明实施例提出的犯法支持多分隔符的异构数据源间数据同步方法,以hadoop的mapreduce为基础,实现了支持多分隔符(大于等于一个分隔符)的不同数据源之间的同步。
40.图2为本发明实施例中异构数据源数据同步方法的流程图二,在一实施例中,在获得异构数据源的多个数据文件之后,还包括:
41.步骤201,根据并行度要求、传输文件大小要求,对每个数据文件进行格式转换,获得符合预设大小要求的数据文件;
42.步骤102,包括:
43.对每个符合预设大小要求的数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项。
44.上述实施例中,主要依据大数据的mapreduce功能,依据配置的并行度可实现并行数据同步功能,从而提高数据同步速度。
45.在步骤102中,对每个数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项;
46.在一实施例中,对每个数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项,包括:
47.对每个数据文件的每行数据,根据该数据文件的分隔符,用正则表达式将其分为多个数据项。
48.例如,某数据文件的某行,分隔符为逗号,用正则表达式将其分为4个数据项。正则表达式实现支持多分割符分割数据项,但还会存在出现脏数据的概率,为进一步提升数据
传输的正确率,本发明实施例提出进一步校验和修正。
49.在步骤103中,对每个数据文件的每行数据,基于该行数据的目标数据项数和每个数据项的类型,对该行数据的多个数据项进行校验,例如,某数据文件的某行数据,木箱数据项数为4,第一个数据项为string型,第二个数据项为int型,最后得到的实际的该行数据的数据项为6,且第一个数据项的数据类型包括string型和int型,那么存在错误,校验结果为不通过。
50.在步骤104中,在校验不通过时,对该行数据的多个数据项进行修正处理。
51.图3为本发明实施例中进行数据项修正处理的流程图,在一实施例中,对该行数据的多个数据项进行修正处理,包括:
52.步骤301,对每个数据文件的每行数据,计算该行数据的多个数据项的总数和目标数据项数据的差值;
53.步骤302,在该行数据的多个数据项的总数小于目标数据项数时,对每个数据项进行语义分析,根据语义分析结果,对差值个数据项进行拆分;
54.例如,总数为4,目标数据项数为6,也就是有的数据项未分割完成,那么对每个数据项进行语义分析,找出语义分析结果中需要分割且包含分隔符的数据项,对其进行分割,最后达到总数为6的目的。其中,语义分析方法这里不做限制,目前的文本分析均可实用。
55.步骤303,在该行数据的多个数据项的总数大于目标数据项数时,对相邻数据项进行相似性分析,根据相似性分析结果,对差值个数据项对进行合并。
56.例如,总数为8,目标数据项数为6,也就是有的数据项进行了多余的分割,那么对相邻数据项进行相似性分析,主要找到相似性最高的数据项对,对其进行合并,其中,相似性最高的数据项对的数量为所述差值,最后达到总数为6的目的。
57.关于相似度分析方法这里不做限制,现有的相似度分析方法包括余弦相似度法均可适用。
58.在步骤105中,在校验通过时或修正处理后,对每个数据文件的每行数据,根据数据项数和预设分隔符,将多个数据项拼接为目标文件的一行数据。
59.例如,数据项数为6,预设分隔符为分号,那么直接将多个数据项拼接为目标文件的一行数据即可。
60.在步骤106中,将多个目标文件输出至目的端。
61.在本发明实施例中,多个数据文件的多个行可以并行进行以上处理,以提高数据同步效率,具体实现语言可以有多种,例如可以通过python实现正则表达式。最后,可将易购数据源的数据文件同步至目的端,目的端可以是数据库,也可是其他数据接收的服务端,利用hadoop的mapreduce原理实现并行传输。
62.本发明实施例提出的方法具有以下有益效果:
63.1.数据同步速度快:利用hadoop的mapreduce实现并行传输,能够有效的提高数据传输性能。
64.2.提高数据同步的准确性:支持多分隔符,能够防止数据因分隔符问题被误判为脏数据。
65.3.维护成本低:相关信息均可通过参数设置,例如,数据项的总数和数据类型等,无需版本开发。
66.本发明实施例还提出一种异构数据源数据同步装置,其原理与异构数据源数据同步类似,这里不再赘述。
67.图4为本发明实施例中异构数据源数据同步装置的示意图一,包括:
68.数据文件获取模块401,用于获得异构数据源的多个数据文件;
69.数据项分割模块402,用于对每个数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项;
70.校验模块403,用于对每个数据文件的每行数据,基于该行数据的目标数据项数和每个数据项的类型,对该行数据的多个数据项进行校验;
71.修正模块404,用于在校验不通过时,对该行数据的多个数据项进行修正处理;
72.数据项拼接模块405,用于在校验通过时或修正处理后,对每个数据文件的每行数据,根据数据项数和预设分隔符,将多个数据项拼接为目标文件的一行数据,生成多个目标文件;
73.传输模块406,用于将多个目标文件输出至目的端。
74.图5为本发明实施例中异构数据源数据同步装置的示意图二,在一实施例中,所述装置还包括标准化转换模块501,用于:在获得异构数据源的多个数据文件之后,根据并行度要求、传输文件大小要求,对每个数据文件进行标准化转换,获得符合预设大小要求的数据文件;
75.数据项分割模块具体用于:
76.对每个符合预设大小要求的数据文件的每行数据,根据该数据文件的分隔符,获得多个数据项。
77.在一实施例中,数据项分割模块具体用于:
78.对每个数据文件的每行数据,根据该数据文件的分隔符,用正则表达式将其分为多个数据项。
79.在一实施例中,修正模块具体用于:
80.在校验不通过时,对每个数据文件的每行数据,计算该行数据的多个数据项的总数和目标数据项数据的差值;
81.在该行数据的多个数据项的总数小于目标数据项数时,对每个数据项进行语义分析,根据语义分析结果,对差值个数据项进行拆分;
82.在该行数据的多个数据项的总数大于目标数据项数时,对相邻数据项进行相似性分析,根据相似性分析结果,对差值个数据项对进行合并。
83.综上所述,本发明实施例提出的装置具有以下有益效果:
84.1.数据同步速度快:利用hadoop的mapreduce实现并行传输,能够有效的提高数据传输性能。
85.2.提高数据同步的准确性:支持多分隔符,能够防止数据因分隔符问题被误判为脏数据。
86.3.维护成本低:相关信息均可通过参数设置,例如,数据项的总数和数据类型等,无需版本开发。
87.本发明实施例还提供一种计算机设备,图6为本发明实施例中计算机设备的示意图,所述计算机设备600包括存储器610、处理器620及存储在存储器610上并可在处理器620
上运行的计算机程序630,所述处理器620执行所述计算机程序630时实现上述异构数据源数据同步方法。
88.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述异构数据源数据同步方法。
89.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述异构数据源数据同步方法。
90.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序业务系统。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序业务系统的形式。
91.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序业务系统的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
92.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
93.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
94.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1