一种数据同步方法、装置、终端及存储介质制造方法及图纸

技术编号:30044110 阅读:17 留言:0更新日期:2021-09-15 10:44
本发明专利技术公开了一种数据同步方法、装置、终端及存储介质,方法包括:获取第一同步任务,对所述第一同步任务进行分片,得到至少一个分片任务,其中,所述第一同步任务中包括多条数据ID,各个所述分片任务分别包括若干个连续的数据ID;根据各个所述分片任务生成迁移计划,当所述至少一个分片任务中的目标分片任务被执行时,根据所述目标分片任务对应的迁移计划中的数据ID分别从第一数据源中读取对应的目标数据;将读取到的各个所述目标数据同步至第二数据源中。本发明专利技术的同步过程可使用通用的语言实现,不依赖于第一数据源或第二数据源的结构,可以实现异构数据源之间的数据同步。可以实现异构数据源之间的数据同步。可以实现异构数据源之间的数据同步。

【技术实现步骤摘要】
一种数据同步方法、装置、终端及存储介质


[0001]本专利技术涉及数据同步
,特别涉及一种数据同步方法、装置、终端及存储介质。

技术介绍

[0002]当前最常见的数据同步方案为Canal项目,具体通过订阅和消费Mysql数据库binlog来完成数据同步,因此,其面向的主体仅限于Mysql或者Mysql衍生产品,即同步双方均需为Mysql或其衍生产品方可使用,属于同构数据源的同步。而在实际中,由于信息系统开发时间和选用技术的不同,存在很多异构数据源之间进行数据同步的需要,目前的数据同步方案不能实现。
[0003]因此,现有技术还有待改进和提高。

技术实现思路

[0004]针对现有技术的上述缺陷,本专利技术提供一种数据同步方法、装置、终端及存储介质,旨在解决现有技术中的数据同步方案不能实现异构数据源之间的数据同步的问题。
[0005]为了解决上述技术问题,本专利技术所采用的技术方案如下:
[0006]本专利技术的第一方面,提供一种数据同步方法,所述方法包括:
[0007]获取第一同步任务,对所述第一同步任务进行分片,得到至少一个分片任务,其中,所述第一同步任务中包括多条数据ID,各个所述分片任务分别包括若干个连续的数据ID;
[0008]根据各个所述分片任务生成迁移计划,当所述至少一个分片任务中的目标分片任务被执行时,根据所述目标分片任务对应的迁移计划中的数据ID分别从第一数据源中读取对应的目标数据;
[0009]将读取到的各个所述目标数据同步至第二数据源中。
[0010]所述的数据同步方法,其中,所述根据各个所述分片任务生成迁移计划,包括:
[0011]当已生成的迁移计划的数量小于所述分片任务的数量时,检测分布式锁;
[0012]根据获得分布式锁的所述分片任务生成迁移计划并重复执行所述检测分布式锁的步骤直至已生成的迁移计划等于所述分片任务的数量。
[0013]所述的数据同步方法,其中,所述根据所述目标分片任务对应的迁移计划中的数据ID分别从第一数据源中读取对应的目标数据,包括:
[0014]根据所述目标分片任务对应的迁移计划的开始ID从所述第一数据源中读取预设数量条目标数据;
[0015]其中,所述目标分片任务对应的迁移计划的所述开始ID的初始值为所述目标分片任务中包括的若干个连续的数据ID中的第一个数据ID。
[0016]所述的数据同步方法,其中,所述将读取到的各个所述目标数据同步至第二数据源中,包括:
[0017]对读取到的各个所述目标数据进行第一预设处理后写入至所述第二数据源中;
[0018]对写入至所述第二数据源中的所述目标数据进行第二预设处理,并将各个所述目标数据中最后一条数据对应的ID更新所述目标分片任务中的所述开始ID;
[0019]重复执行所述根据所述目标分片任务对应的迁移计划中的数据ID分别从第一数据源中读取对应的目标数据的步骤,直至将所述目标分片任务对应的迁移计划中的结束ID对应的数据写入至所述第二数据源中。
[0020]所述的数据同步方法,其中,所述将读取到的各个所述目标数据同步至第二数据源中之后,还包括:
[0021]获取第二同步任务,所述第二同步任务中包括同步时间戳;
[0022]根据所述同步时间戳在所述第一数据源中查找各个第一目标数据ID,所述第一目标数据ID对应的数据的更新时间戳不早于所述同步时间戳;
[0023]分别获取各个所述第一目标数据ID对应的第一更新时刻和第二更新时刻,所述第一更新时刻为所述第一目标数据ID在所述第一数据源中对应的数据的更新时刻,所述第二更新时刻为所述第一目标数据ID在所述第二数据源中对应的数据的更新时刻;
[0024]当所述第一目标数据ID对应的所述第一更新时刻晚于所述第二更新时刻时,从所述第一数据源中读取所述第一目标数据ID对应的数据并进行第一预设处理,根据进行所述第一预设处理后的数据更新所述第二数据源中所述第一目标数据ID对应的数据。
[0025]所述的数据同步方法,其中,所述根据进行所述第一预设处理后的数据更新所述第二数据源中所述第一目标数据ID对应的数据之后,包括:
[0026]当所述第一数据源中更新时刻最晚的数据的更新时间戳与所述同步时间戳相同,对所述同步时间戳进行更新,更新后的所述同步时间戳对应的时刻晚于更新前的所述同步时间戳对应的时刻;
[0027]当所述第一数据源中更新时刻最晚的数据的更新时间戳晚于所述同步时间戳,将所述同步时间戳更新为所述第一数据源中更新时刻最晚的数据的更新时间戳。
[0028]所述的数据同步方法,其中,所述所述将读取到的各个所述目标数据同步至第二数据源中之后,还包括:
[0029]获取第三同步任务,所述第三同步任务中包括同步计划表;
[0030]当所述第一数据源中的数据发生变更时,将发生变更的数据的数据ID记录至所述同步计划表中并标记状态为处理成功;
[0031]从所述同步计划表中读取第二目标数据ID,所述第二目标数据ID为所述同步计划表中状态为处理成功的数据ID,若所述第二目标数据ID在所述第一数据源中对应的数据的更新时间戳晚于在所述第二数据源中对应的数据的更新时间戳,则从所述第一数据源中读取所述第二目标数据ID对应的数据并进行第一预设处理,根据进行所述第一预设处理后的数据更新所述第二数据源中所述第二目标数据ID对应的数据;
[0032]将所述第二目标数据ID在所述同步计划表中的状态修改为已处理;
[0033]清空所述同步计划表中状态为已处理的数据ID。
[0034]本专利技术的第二方面,提供一种数据同步装置,包括:
[0035]任务获取模块,所述任务获取模块用于获取第一同步任务,对所述第一同步任务进行分片,得到至少一个分片任务,其中,所述第一同步任务中包括多条数据ID,各个所述
分片任务分别包括若干个连续的数据ID;
[0036]数据读取模块,所述数据读取模块用于根据各个所述分片任务生成迁移计划,当所述至少一个分片任务中的目标分片任务对应的迁移计划被执行时,根据所述目标分片任务中的数据ID分别从第一数据源中读取对应的目标数据;
[0037]同步模块,所述同步模块用于将读取到的各个所述目标数据同步至第二数据源中。
[0038]本专利技术的第三方面,提供一种终端,所述终端包括处理器、与处理器通信连接的计算机可读存储介质,所述计算机可读存储介质适于存储多条指令,所述处理器适于调用所述计算机可读存储介质中的指令,以执行实现上述任一项所述的数据同步方法的步骤。
[0039]本专利技术的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一项所述的数据同步方法的步骤。
[0040]与现有技术相比,本专利技术提供了一种数据同步方法、装置、终端及存储介质,本专利技术提供的数据同步方法中,对于需要本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,其特征在于,所述方法包括:获取第一同步任务,对所述第一同步任务进行分片,得到至少一个分片任务,其中,所述第一同步任务中包括多条数据ID,各个所述分片任务分别包括若干个连续的数据ID;根据各个所述分片任务生成迁移计划,当所述至少一个分片任务中的目标分片任务被执行时,根据所述目标分片任务对应的迁移计划中的数据ID分别从第一数据源中读取对应的目标数据;将读取到的各个所述目标数据同步至第二数据源中。2.根据权利要求1所述的数据同步方法,其特征在于,所述根据各个所述分片任务生成迁移计划,包括:当已生成的迁移计划的数量小于所述分片任务的数量时,检测分布式锁;根据获得分布式锁的所述分片任务生成迁移计划并重复执行所述检测分布式锁的步骤直至已生成的迁移计划等于所述分片任务的数量。3.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述目标分片任务对应的迁移计划中的数据ID分别从第一数据源中读取对应的目标数据,包括:根据所述目标分片任务对应的迁移计划的开始ID从所述第一数据源中读取预设数量条目标数据;其中,所述目标分片任务对应的迁移计划的所述开始ID的初始值为所述目标分片任务中包括的若干个连续的数据ID中的第一个数据ID。4.根据权利要求3所述的数据同步方法,其特征在于,所述将读取到的各个所述目标数据同步至第二数据源中,包括:对读取到的各个所述目标数据进行第一预设处理后写入至所述第二数据源中;对写入至所述第二数据源中的所述目标数据进行第二预设处理,并将各个所述目标数据中最后一条数据对应的ID更新所述目标分片任务中的所述开始ID;重复执行所述根据所述目标分片任务对应的迁移计划中的数据ID分别从第一数据源中读取对应的目标数据的步骤,直至将所述目标分片任务对应的迁移计划中的结束ID对应的数据写入至所述第二数据源中。5.根据权利要求1所述的数据同步方法,其特征在于,所述将读取到的各个所述目标数据同步至第二数据源中之后,还包括:获取第二同步任务,所述第二同步任务中包括同步时间戳;根据所述同步时间戳在所述第一数据源中查找各个第一目标数据ID,所述第一目标数据ID对应的数据的更新时间戳不早于所述同步时间戳;分别获取各个所述第一目标数据ID对应的第一更新时刻和第二更新时刻,所述第一更新时刻为所述第一目标数据ID在所述第一数据源中对应的数据的更新时刻,所述第二更新时刻为所述第一目标数据ID在所述第二数据源中对应的数据的更新时刻;当所述第一目标数据ID对应的所述第一更新时刻晚于所述第二更新时刻时,从所述第一数据源中读取所述第一目标数据ID对应的数据并进行第一预设处理,根据进行所述第一预设处理后的数据更新所述第二数据源...

【专利技术属性】
技术研发人员:党斌晖
申请(专利权)人:北京来看科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1