System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书一个或多个实施例涉及数据同步,尤其涉及一种基于时间戳的数据增量同步方法、装置、电子设备及存储介质。
技术介绍
1、增量同步是指在数据同步过程中,只传输和同步已更改或新增的数据部分。为了实现增量数据识别,通常可以基于时间戳的增量识别技术实现数据增量同步,也就是要求业务方每批次写入的数据,数据业务时间需要参考数据入库时间逐渐递增。
2、例如,在基于时间戳的数据增量同步任务运行时,仅更新时间戳在上次同步结束时刻与此次同步结束时刻之间的数据。由于无法判断一批数据是否写完,所以时间戳在上次同步结束时刻(也即此次同步开始时刻)的数据在两次数据同步任务中都会进行同步。为避免数据重复同步,通常在缓存中记录已同步数据。源数据库数据在进行数据同步前,先与缓存的已同步数据进行比较,得出不同数据后,再将不同数据同步到目的数据库。
3、由此可见,在基于时间戳的数据增量同步技术中,若具有同一时间戳数据的数据量巨大时,存储已同步到目的数据库的数据会占用较大缓存,降低数据同步性能。
技术实现思路
1、本申请提供一种基于时间戳的数据增量同步方法,所述方法包括:
2、响应于已执行的第一增量同步任务,对数据更新时刻为第一时刻的数据的主键进行缓存;其中,所述第一增量同步任务用于将源数据库中数据更新时刻在第二时刻与所述第一时刻之间的数据同步至目的数据库;
3、响应于待执行的第二增量同步任务,从所述源数据库中获取数据更新时刻为所述第一时刻的数据的主键;其中,所述第二增量
4、对已缓存的主键与获取到的主键进行比较;
5、如果所述已缓存的主键与所述获取到的主键不一致,则将所述获取到的主键所标识的数据同步至所述目的数据库。
6、可选的,所述对数据更新时刻为第一时刻的数据的主键进行缓存,包括:
7、按照预设顺序对已缓存的主键进行排序;
8、将排序后的主键分为多个分段,并根据每个所述分段所包含的多个主键计算每个所述分段的第一hash值;
9、将每个所述分段的段起始主键、段结束主键和第一hash值进行关联缓存。
10、可选的,将排序后的主键分为多个分段,包括:
11、根据缓存大小确定分段数量,对排序后的主键进行分段。
12、可选的,从所述源数据库中获取数据更新时刻为所述第一时刻的数据的主键,包括:
13、从所述源数据库中按预设顺序获取数据更新时刻为所述第一时刻的数据的主键;
14、根据已缓存各所述分段的段起始主键和段结束主键,将获取到的所述第一时刻的数据的主键按预设顺序划分至各个所述分段。
15、可选的,对已缓存的主键与获取到的主键进行比较,包括:
16、根据各所述分段内获取到的所述第一时刻的数据的主键,计算各所述分段的第二hash值;
17、确定计算出的各个分段的第二hash值与已缓存的各个分段的第一hash值是否相等;
18、将所述第二hash值与所述第一hash值不相同的分段确定为目标分段;所述目标分段中已缓存的主键与获取到的主键不一致;
19、将所述获取到的主键所标识的数据同步至所述目的数据库,包括:
20、将所述目标分段内获取到所述第一时刻的数据同步至所述目的数据库。
21、可选的,所述对数据更新时刻为第一时刻的数据的主键进行缓存,包括:
22、确定待缓存的主键的数量是否达到缓存的缓存大小;
23、在所述待缓存的主键的数量未达到所述缓存大小的情形下,将所述待缓存的主键写入所述缓存;
24、在所述待缓存的主键的数量达到所述缓存大小的情形下,对所述待缓存的主键进行分段处理,并写入所述缓存。
25、可选的,在对已缓存的主键与获取到的主键进行比较之后,所述方法还包括:
26、将所述源数据库中数据更新时刻在所述第一时刻与第三时刻之间的数据同步至所述目的数据库;
27、将所述源数据库中数据更新时刻在所述第三时刻的数据的主键进行缓存。
28、本申请还提供一种数据同步装置,所述装置包括:
29、缓存单元,用于响应于已执行的第一增量同步任务,对数据更新时刻为第一时刻的数据的主键进行缓存;其中,所述第一增量同步任务用于将源数据库中数据更新时刻在第二时刻与所述第一时刻之间的数据同步至目的数据库;
30、获取单元,用于响应于待执行的第二增量同步任务,从所述源数据库中获取数据更新时刻为所述第一时刻的数据的主键;其中,所述第二增量同步任务用于将所述源数据库中数据更新时刻在所述第一时刻与第三时刻之间的数据同步至所述目的数据库;
31、比较单元,用于对已缓存的主键与获取到的主键进行比较;
32、确定单元,用于在所述已缓存的主键与所述获取到的主键不一致时,则将所述获取到的主键所标识的数据同步至所述目的数据库。
33、本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
34、所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
35、本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
36、通过以上方式,在第一增量同步任务执行完成后,即源数据库中数据更新时刻在第二时刻与第一时刻之间的数据同步至目的数据库后,对数据更新时刻为第一时刻的数据的主键进行缓存,在第二增量同步任务执行前,通过比较此时数据更新时刻为第一时刻的数据的主键与预先缓存的数据更新时刻为第一时刻的数据的主键是否相同,就可以确定此时数据更新时刻为第一时刻的数据是否需要同步,而无需存储数据和比较数据。据此,相较于直接缓存已同步数据再进行数据比较的方式,本说明书的技术方案在数据更新时刻为第一时刻的数据的数量巨大的情况下,在减少重复同步的同时,还能减少缓存占用,提高数据同步性能。
本文档来自技高网...【技术保护点】
1.一种基于时间戳的数据增量同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对数据更新时刻为第一时刻的数据的主键进行缓存,包括:
3.根据权利要求2所述的方法,其特征在于,将排序后的主键分为多个分段,包括:
4.根据权利要求2所述的方法,其特征在于,从所述源数据库中获取数据更新时刻为所述第一时刻的数据的主键,包括:
5.根据权利要求4所述的方法,其特征在于,对已缓存的主键与获取到的主键进行比较,包括:
6.根据权利要求1所述的方法,其特征在于,所述对数据更新时刻为第一时刻的数据的主键进行缓存,包括:
7.根据权利要求1所述的方法,其特征在于,在对已缓存的主键与获取到的主键进行比较之后,所述方法还包括:
8.一种基于时间戳的数据增量同步装置,其特征在于,所述装置包括:
9.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
10.一种机器可读存储介质,所述机器可读存储介质存储有机器可
...【技术特征摘要】
1.一种基于时间戳的数据增量同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对数据更新时刻为第一时刻的数据的主键进行缓存,包括:
3.根据权利要求2所述的方法,其特征在于,将排序后的主键分为多个分段,包括:
4.根据权利要求2所述的方法,其特征在于,从所述源数据库中获取数据更新时刻为所述第一时刻的数据的主键,包括:
5.根据权利要求4所述的方法,其特征在于,对已缓存的主键与获取到的主键进行比较,包括:
6.根据权利要求1所述的方法,其特征在...
【专利技术属性】
技术研发人员:褚占峰,王心怡,江峰,王安,
申请(专利权)人:杭州数梦工场科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。