System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机领域,更具体地,涉及一种数据同步方法、装置、电子设备及存储介质。
技术介绍
1、随着信息化水平的不断提高,数据的爆发性增长导致了大量数据存储在各种不同类型的数据库中。为了实现信息的共享,数据库之间的数据同步成为了目前的主流方法。数据同步分为全量同步和增量同步两种方式。全量同步指一次性读取源表的所有数据,而增量同步则是周期性地同步源表中发生变化的数据。目前,数据增量同步主要采用触发器增量、md5增量、影子表增量、cdc增量以及时间戳增量等方法。然而,由于触发器、md5、影子表和cdc等增量实现方式要求对业务方源表或源数据库进行调整,或需要配置复杂的同步流程,因此目前主要采用时间戳的方式进行数据同步。
2、基于时间戳的数据增量同步实现相对简单,只需要对数据读取sql进行调整,添加时间戳筛选条件即可。而且,这种方法无需对业务方源数据库进行诸如开启归档日志、添加触发器等侵入性操作。
3、然而,现有技术中的基于时间戳的数据增量同步仍存在以下几个不足之处:
4、(1)当增量数据同步的时间范围较长时,容易出现数据库快照过旧的错误造成同步中断。这意味着在进行同步时,快照所包含的数据可能已经过时,无法反映最新的变化。
5、(2)时间戳同步需要获取源表时间戳字段的最大值来确定数据同步的结束时间点。然而,对大多数数据库进行max()聚合函数的计算会导致效率低下的问题。
技术实现思路
1、本专利技术提供一种数据同步方法、装置、电子设备及存
2、为实现上述目的,第一方面,本专利技术提供一种数据同步方法,包括:
3、获取同步频率和最后一次同步记录时刻,所述同步频率用于指示时间戳增量同步操作的查询时间跨度;
4、基于所述同步频率和所述最后一次同步记录时刻,循环执行所述时间戳增量同步操作,直至同步截止时刻大于或等于当前时刻;
5、其中,在循环过程中所述同步截止时刻是基于所述同步频率和动态更新后的所述最后一次同步记录时刻确定的,所述时间戳增量同步操作的数据查询时间范围是基于所述最后一次同步记录时刻和所述同步截止时刻确定的。
6、可选地,所述时间戳增量同步操作,包括:
7、判断所述同步截止时刻是否小于当前时刻;
8、若确定所述同步截止时刻小于当前时刻,则基于所述最后一次同步记录时刻和所述同步截止时刻,按照时间戳增量方式将源数据库中待同步的目标数据同步至目标数据库;
9、若确定所述目标数据成功同步至所述目标数据库,更新所述最后一次同步记录时刻;
10、基于所述同步频率和所述最后一次同步记录时刻,更新所述同步截止时刻。
11、可选地,所述最后一次同步记录时刻存放在同步记录表,所述基于所述最后一次同步记录时刻和所述同步截止时刻,按照时间戳增量方式将源数据库中待同步的目标数据同步至目标数据库,包括:
12、通过查询同步记录表所存放的最后一次同步记录时刻,确定同步起始时刻;
13、基于所述同步起始时刻和所述同步截止时刻,查询所述源数据库,获取所述目标数据;
14、同步所述目标数据至所述目标数据库。
15、可选地,所述基于所述同步起始时刻和所述同步截止时刻,查询所述源数据库,获取所述目标数据,包括:
16、判断所述同步起始时刻是否为空值;
17、若所述同步起始时刻不为空值,则基于所述同步起始时刻和所述同步截止时刻,发送第一查询指令至所述源数据库,所述第一查询指令用于指示按所述最后一次同步记录时刻和所述同步截止时刻确定第一数据查询时间范围并读取所述第一数据查询时间范围内的数据;
18、获取所述源数据库输出的所述目标数据。
19、可选地,在判断所述同步起始时刻是否为空值之后,还包括:
20、若所述同步起始时刻为空值,则基于所述同步截止时刻,发送第二查询指令至所述源数据库,所述第二查询指令用于指示按所述同步截止时刻确定第二数据查询时间范围并读取所述第二数据查询时间范围内的数据;
21、获取所述源数据库输出的所述目标数据。
22、可选地,所述获取同步频率和最后一次同步记录时刻,包括:
23、基于调度频率,判断是否执行数据同步流程,所述调度频率用于指示周期性执行所述数据同步流程,所述数据同步流程为循环执行所述时间戳增量同步操作的流程;
24、通过读取同步频率表获取所述同步频率;
25、通过读取同步记录表获取所述最后一次同步记录时刻。
26、可选地,在循环执行所述时间戳增量同步操作之前,还包括:
27、判断所述最后一次同步记录时刻是否为空值;
28、若所述最后一次同步记录时刻为空值,则确定预设截止时刻作为初始同步截止时刻;或,若所述最后一次同步记录时刻不为空值,则基于所述同步频率和所述最后一次同步记录时刻,确定初始同步截止时刻;
29、确定所述初始同步截止时刻作为循环过程中首次执行所述时间戳增量同步操作所采用的同步截止时刻。
30、第二方面,本专利技术还提供一种数据同步装置,包括:
31、同步参数获取模块,用于获取同步频率和最后一次同步记录时刻,所述同步频率用于指示时间戳增量同步操作的查询时间跨度;
32、循环增量同步模块,用于基于所述同步频率和所述最后一次同步记录时刻,循环执行所述时间戳增量同步操作,直至同步截止时刻大于或等于当前时刻;
33、其中,在循环过程中所述同步截止时刻是基于所述同步频率和动态更新后的所述最后一次同步记录时刻确定的,所述时间戳增量同步操作的数据查询时间范围是基于所述最后一次同步记录时刻和所述同步截止时刻确定的。
34、第三方面,本专利技术提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
35、第四方面,本专利技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
36、可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
37、总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:
38、对于循环过程中每一次执行时间戳增量同步操作,可以基于同步频率和最后一次同步记录时本文档来自技高网...
【技术保护点】
1.一种数据同步方法,其特征在于,包括:
2.根据权利要求1所述数据同步方法,其特征在于,所述时间戳增量同步操作,包括:
3.根据权利要求2所述数据同步方法,其特征在于,所述最后一次同步记录时刻存放在同步记录表,所述基于所述最后一次同步记录时刻和所述同步截止时刻,按照时间戳增量方式将源数据库中待同步的目标数据同步至目标数据库,包括:
4.根据权利要求3所述数据同步方法,其特征在于,所述基于所述同步起始时刻和所述同步截止时刻,查询所述源数据库,获取所述目标数据,包括:
5.根据权利要求4所述数据同步方法,其特征在于,在判断所述同步起始时刻是否为空值之后,还包括:
6.根据权利要求1-5任一项所述数据同步方法,其特征在于,所述获取同步频率和最后一次同步记录时刻,包括:
7.根据权利要求6所述数据同步方法,其特征在于,在循环执行所述时间戳增量同步操作之前,还包括:
8.一种数据同步装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种非暂态计算机可读存储介质,
...【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:
2.根据权利要求1所述数据同步方法,其特征在于,所述时间戳增量同步操作,包括:
3.根据权利要求2所述数据同步方法,其特征在于,所述最后一次同步记录时刻存放在同步记录表,所述基于所述最后一次同步记录时刻和所述同步截止时刻,按照时间戳增量方式将源数据库中待同步的目标数据同步至目标数据库,包括:
4.根据权利要求3所述数据同步方法,其特征在于,所述基于所述同步起始时刻和所述同步截止时刻,查询所述源数据库,获取所述目标数据,包括:
5.根据权利要求4所述数据同步方法,其特征在于...
【专利技术属性】
技术研发人员:张雄彪,李显锋,熊纯,余毅,张永强,
申请(专利权)人:武汉达梦数据库股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。