一种解决数据延迟到达的增量数据同步方法及装置与流程



1.本发明属于数据同步方法技术领域,尤其涉及一种解决数据延迟到达的增量数据同步方法及装置。


背景技术:



2.在增量数据同步过程中,对于源端数据,可能存在延迟到达的情况。根据图4所示,传统的数据同步方案一般是根据一个源端的增量时间字段来构造一个筛选范围进行源端增量数据获取,然而,利用此类方案来处理源端数据延迟到达的情况,经常会造成数据丢失等问题。
3.针对上述问题,目前尚未提出理想的解决方案。


技术实现要素:



4.为了解决传统数据同步方案处理源端数据延迟到达时造成的数据丢失问题,我们提供了一种解决方案。
5.本发明旨在解决源端数据延迟到达的场景下,增量数据同步过程中数据丢失的问题。本发明方法有别于传统的etl时间戳方式,传统的etl时间戳方式主要通过记录上一次的最后同步值,并利用该值依据源端表来构建增量数据,而本方案则是在集成任务配置时选定目标端某一个字段作为业务增量字段,在每次同步任务运行前,根据业务增量字段获取该字段的最大值,在下一次任务运行前,以该最大值通过源端表构建增量数据筛选范围,从而实现了在源端数据延迟到达的场景下,避免数据丢失的目的。
6.具体而言,第一方面,本发明提供了一种解决数据延迟到达的增量数据同步方法,所述方法包括:
7.s1.在进行任务配置时,预先选定目标端表中某一字段作为业务增量字段;
8.s2.将上步选定的业务增量字段与源端表中某一时间类型字段(假设为:updatetime)建立映射关系;
9.s3.针对全量初始化同步任务设定初始时间值;
10.s4.针对全量初始化同步任务,根据设定的初始时间值构造全量初始化查询语句,并执行该查询语句获取本次需要同步的全量数据;
11.s5.在第一次增量数据同步任务运行前,依据目标端业务增量字段,构造目标端查询语句,并执行该查询语句获取此时该业务增量字段在目标端表中的最大值;
12.s6.以上步获取的业务增量字段在目标端表中的最大值作为第一次源端增量数据筛选的起点值,构造源端增量数据查询语句,并执行该查询语句获取本次需要同步的源端增量数据;
13.s7.后续增量数据同步过程重复s5及s6的步骤,即可进行增量数据同步采集。
14.进一步地,根据本发明的一些实施例,本发明解决数据延迟到达的增量数据同步方法步骤s3中所述针对全量初始化同步任务设定初始时间值,当未设定初始时间值时,系
统默认初始时间值为当前时间。
15.进一步地,根据本发明的一些实施例,本发明解决数据延迟到达的增量数据同步方法步骤s4中所述针对全量初始化同步任务,根据设定的初始时间值构造全量初始化查询语句,并执行该查询语句获取本次需要同步的全量数据,包括根据源端字段以及初始时间值构造查询sql,并执行该查询sql将源端表中updatetime字段中大于和等于初始时间值的数据全量同步到目标端表中。
16.进一步地,根据本发明的一些实施例,本发明解决数据延迟到达的增量数据同步方法中还包括任务运行失败后的自动补偿步骤,包括当增量数据同步任务运行中发生故障导致同步任务运行失败,当次增量数据未正常写入目标端,在下一次增量数据同步任务运行时,依旧从上一次增量数据同步任务的增量起点开始读取源端数据,以实现任务运行失败后的自动补偿。
17.进一步地,根据本发明的一些实施例,本发明解决数据延迟到达的增量数据同步方法中还包括周期触发步骤,包括在任务配置阶段预设任务周期运行的频次和时间点,并将配置参数提交给任务调度系统,增量数据同步任务正式运行后自动按照预设的频次和时间点周期性运行。
18.第二方面,本发明还提供了一种解决数据延迟到达的增量数据同步装置,所述装置包括:
19.增量字段预设模块:用于预先选定目标端表中某一字段作为业务增量字段;
20.映射关系模块:用于将业务增量字段与源端表中某一时间类型字段建立映射关系;
21.时间值设定模块:用于设定初始时间值;
22.查询条件设置模块:用于构造数据全量初始化查询条件;
23.目标端查询模块:用于构造目标端业务增量字段最大值查询语句并执行该数据查询语句;
24.源端查询模块:用于构造源端全量数据查询语句并执行该数据查询语句;
25.增量数据筛选模块:用于筛选同步任务源端的增量数据。
26.进一步地,根据本发明的一些实施例,本发明解决数据延迟到达的增量数据同步装置中还包括:
27.自动补偿模块:用于当同步任务运行失败后,在下一次增量数据同步任务运行时,依旧从上一次增量数据同步任务的增量起点开始读取源端数据,以实现任务运行失败后的自动补偿。
28.进一步地,根据本发明的一些实施例,本发明解决数据延迟到达的增量数据同步装置中还包括:
29.周期触发模块:用于预设任务周期运行的频次和时间点,并将配置参数提交给任务调度系统,增量数据同步任务正式运行后自动按照预设的频次和时间点周期性运行。
30.第三方面,本发明还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述的解决数据延迟到达的增量数据同步方法的步骤。
31.综上,本发明解决数据延迟到达的增量数据同步方法具有以下特点:
32.(1)本方法以目标端的业务增量字段的最大值作为源端增量数据筛选的增量起点,可有效解决源端数据延迟到达的场景下,增量数据同步过程中的数据丢失问题。
33.(2)通过本发明方法,不需要借助其他数据采集组件,即可实现自动化的异构数据源之间的数据初始化及数据增量采集,减少了人工操作,提升了数据采集效率和准确性。
34.(3)本方法架构简单、简便易行、可靠性高。
35.(4)本方法中引入了任务失败后的自动补偿机制,当任务运行失败后,在下一次任务运行时自动进行补偿,全程不需要人工介入,也不用保存任务过程中的相关状态,提高了任务运行的准确性。
附图说明
36.为了更清楚地说明本发明实施例技术方案,下面对实施例描述中需要使用的附图作简要介绍。显而易见,下面描述中的附图仅是本发明中记载的一些实施例,而不是全部实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本发明解决数据延迟到达的增量数据同步方法实施流程示意图。
38.图2为本发明解决数据延迟到达的增量数据同步方法设计架构示意图。
39.图3为本发明解决数据延迟到达的增量数据同步装置组成结构示意图。
40.图4为数据正常入库和数据延迟入库的对比示意图,
41.说明:数据正常入库:要是想获取12:00之前的所有数据,正常情况下,数据在12:00之前都是已经入库的,这种情况数据不会丢失;
42.数据延迟入库:要是想获取12:00之前的所有数据,数据延迟的情况下,12:00之后还会有一部分数据延迟入库,导致根据查询条件获取到的数据会存在丢失的情况。
具体实施方式
43.为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例,本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
44.需要说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
45.需要说明的是,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上,举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。
46.以下结合附图所示实施方式对本发明进行详细说明。
47.根据图1和图2所示,本发明解决数据延迟到达的增量数据同步方法包括:
48.(一)任务配置过程
49.在进行任务配置时,首先选定目标端表中某一字段作为业务增量字段,然后将该字段与源端表中某一时间类型字段(假设为:updatetime)建立映射关系,指定好业务增量字段后,需要针对全量初始化同步任务设定初始时间值,若不设定初始时间值,则系统默认赋初始时间值为当前时间。
50.(二)任务运行的详细过程
51.我们用一个具体的任务详细介绍一下整个增量过程,任务详情如下:
52.源端表mysql表,假设表名mysql_src目标端表hive表,假设表名hive_dest业务增量字段increment源端字段updatetime源端字类型日期型
53.(1)构造数据初始化查询条件
54.如果是第一次运行任务,根据源端字段以及初始时间值构造查询sql(全量初始化查询语句),sql模板如下:
55.select*from mysql_src where updatetime》=${initial_value};
56.(2)构造数据增量查询条件
57.如果是第一次增量运行,在任务运行前,根据目标端的业务增量字段,在目标端构造并执行sql(目标端查询语句):
58.select max(业务增量字段的最大值)from hive_dest;
59.以执行结果max(业务增量字段的最大值)作为第一次增量运行的增量起点,在源端构造并执行sql(源端增量数据查询语句):
60.select*from mysql_src where updatetime》max(业务增量字段的最大值);
61.以此sql来筛选出本次同步任务源端的增量数据,在下一次同步任务运行前,以业务增量字段的最大值通过源端表构建出增量数据筛选范围。
62.第二次增量运行,重复第一次增量的操作即可。
63.(3)任务运行失败后的自动补偿
64.当增量数据同步任务运行中发生故障(如数据源连接不上或遇到其他问题)导致同步任务运行失败,当次增量数据未正常写入目标端,在下一次增量数据同步任务运行时,依旧从上一次增量数据同步任务的增量起点开始读取源端数据,以实现任务运行失败后的自动补偿,采用这种方式全程不需要人工介入,也不用保存任务过程中的相关状态,架构简单,可靠性高。
65.(4)周期触发
66.为了实现周期增量,在任务配置阶段预设任务周期运行的频次和时间点,并将配置参数提交给任务调度系统,任务正式运行后便可按照设置的频次和时间点自动周期性运行。
67.根据图3所示,本发明解决数据延迟到达的增量数据同步装置包括:
68.增量字段预设模块:用于预先选定目标端表中某一字段作为业务增量字段;
69.映射关系模块:用于将业务增量字段与源端表中某一时间类型字段建立映射关
系;
70.时间值设定模块:用于设定初始时间值;
71.查询条件设置模块:用于构造数据全量初始化查询条件;
72.目标端查询模块:用于构造目标端业务增量字段最大值查询语句并执行该数据查询语句;
73.源端查询模块:用于构造源端全量数据查询语句并执行该数据查询语句;
74.增量数据筛选模块:用于筛选同步任务源端的增量数据;
75.自动补偿模块:用于当同步任务运行失败后,在下一次增量数据同步任务运行时,依旧从上一次增量数据同步任务的增量起点开始读取源端数据,以实现任务运行失败后的自动补偿;
76.周期触发模块:用于预设任务周期运行的频次和时间点,并将配置参数提交给任务调度系统,增量数据同步任务正式运行后自动按照预设的频次和时间点周期性运行;
77.各模块按照上述解决数据延迟到达的增量数据同步方法实施运行。
78.本发明中各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分相互参见即可。
79.以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、替换等,均应包含在本发明的权利要求保护范围之内。

技术特征:


1.一种解决数据延迟到达的增量数据同步方法,其特征在于,所述方法包括:s1.在进行任务配置时,预先选定目标端表中某一字段作为业务增量字段;s2.将上步选定的业务增量字段与源端表中某一时间类型字段建立映射关系;s3.针对全量初始化同步任务设定初始时间值;s4.针对全量初始化同步任务,根据设定的初始时间值构造全量初始化查询语句,并执行该查询语句获取本次需要同步的全量数据;s5.在第一次增量数据同步任务运行前,根据目标端业务增量字段构造目标端查询语句,并执行该查询语句获取此时该业务增量字段在目标端表中的最大值;s6.以上步获取的业务增量字段在目标端表中的最大值作为第一次源端增量数据筛选的起点值,构造源端增量数据查询语句,并执行该查询语句获取本次需要同步的源端增量数据;s7.后续增量数据同步过程重复s5及s6的步骤,即可进行增量数据同步采集。2.根据权利要求1所述的解决数据延迟到达的增量数据同步方法,其特征在于,步骤s3中所述针对全量初始化同步任务设定初始时间值,当未设定初始时间值时,系统默认初始时间值为当前时间。3.根据权利要求1所述的解决数据延迟到达的增量数据同步方法,其特征在于,步骤s4中所述针对全量初始化同步任务,根据设定的初始时间值构造全量初始化查询语句,并执行该查询语句获取本次需要同步的全量数据,包括根据源端字段以及初始时间值构造查询sql,并执行该查询sql将源端表中相应的时间类型字段中大于和等于初始时间值的数据全量同步到目标端表中。4.根据权利要求1所述的解决数据延迟到达的增量数据同步方法,其特征在于,所述增量数据同步方法中还包括任务运行失败后的自动补偿步骤,包括当增量数据同步任务运行中发生故障导致同步任务运行失败,当次增量数据未正常写入目标端,在下一次增量数据同步任务运行时,依旧从上一次增量数据同步任务的增量起点开始读取源端数据,以实现任务运行失败后的自动补偿。5.根据权利要求1所述的解决数据延迟到达的增量数据同步方法,其特征在于,所述增量数据同步方法中还包括周期触发步骤,包括在任务配置阶段预设任务周期运行的频次和时间点,并将配置参数提交给任务调度系统,增量数据同步任务正式运行后自动按照预设的频次和时间点周期性运行。6.一种解决数据延迟到达的增量数据同步装置,其特征在于,所述装置包括:增量字段预设模块:用于预先选定目标端表中某一字段作为业务增量字段;映射关系模块:用于将业务增量字段与源端表中某一时间类型字段建立映射关系;时间值设定模块:用于设定初始时间值;查询条件设置模块:用于构造数据全量初始化查询条件;目标端查询模块:用于构造目标端业务增量字段最大值查询语句并执行该数据查询语句;源端查询模块:用于构造源端全量数据查询语句并执行该数据查询语句;增量数据筛选模块:用于筛选同步任务源端的增量数据。7.根据权利要求6所述的解决数据延迟到达的增量数据同步装置,其特征在于,所述同
步装置中还包括:自动补偿模块:用于当同步任务运行失败后,在下一次增量数据同步任务运行时,依旧从上一次增量数据同步任务的增量起点开始读取源端数据,以实现任务运行失败后的自动补偿。8.根据权利要求6所述的解决数据延迟到达的增量数据同步装置,其特征在于,所述同步装置中还包括:周期触发模块:用于预设任务周期运行的频次和时间点,并将配置参数提交给任务调度系统,增量数据同步任务正式运行后自动按照预设的频次和时间点周期性运行。9.一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求1-5任一项所述的解决数据延迟到达的增量数据同步方法的步骤。

技术总结


本发明涉及一种解决数据延迟到达的增量数据同步方法及装置。本方法包括在进行任务配置时预先选定目标端表中某一字段作为业务增量字段、将业务增量字段与源端表中某一时间类型字段建立映射关系、设定初始时间值、构造目标端业务增量字段最大值查询条件、以目标端业务增量字段的最大值作为增量起点构造源端数据初始化查询条件、筛选出本次同步任务源端的增量数据。本方法简便易行、可靠性高,可有效解决源端数据延迟到达的场景下,增量数据同步过程中的数据丢失问题,利用本方法可实现自动化的异构数据源之间的数据初始化及数据增量采集,减少了人工操作,提升了数据采集效率和准确性。确性。确性。


技术研发人员:

彭壮 戴博文 吴梦佳

受保护的技术使用者:

中电云数智科技有限公司

技术研发日:

2022.11.29

技术公布日:

2023/2/23

本文发布于:2024-09-23 16:25:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/60717.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:增量   字段   数据   数据同步
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议