数据同步方法及装置、电子设备和存储介质制造方法及图纸

技术编号:38369817 阅读:16 留言:0更新日期:2023-08-05 17:34
本说明书一个或多个实施例提供一种数据同步方法及装置、电子设备和存储介质,所述方法包括:创建触发器,所述触发器用于将源表的数据变化同步至目标表,并将同步过程中已删除的数据的标识记录在删除日志中;将所述源表内的数据同步至所述目标表;根据所述删除日志内的标识对所述目标表内的数据进行处理。触发器用于在源表和目标表之间进行增量同步,且在源表向目标表进行全量同步的过程中不对源表加锁,即全量同步过程不会影响业务处理;通过删除日志对增量同步中已删除的数据进行记录,可以避免全量同步覆盖增量同步的结果(例如增量同步时已删除的数据又在全量同步时添加进目标表中),保证了目标表中的数据有效、且为最新的业务处理结果。的业务处理结果。的业务处理结果。

【技术实现步骤摘要】
数据同步方法及装置、电子设备和存储介质


[0001]本说明书一个或多个实施例涉及数据库
,尤其涉及一种数据同步方法及装置、电子设备和存储介质。

技术介绍

[0002]在互联网和信息化高速发展的今天,数据的产生呈爆炸式增长,因此对数据库及其管理的要求越来越高。数据库内存储有大量的数据表,在应用升级、业务变更等情况下数据库内的表结构往往会发生变更。数据库内表结构发生变更时需要对数据进行同步,而数据同步过程中往往需要进行锁表,即不允许并发DML(Data Manipulation Language,数据操纵语言),这使得业务处理被影响,产生业务请求超时等业务问题。

技术实现思路

[0003]有鉴于此,本说明书一个或多个实施例提供一种数据同步方法及装置、电子设备和存储介质。
[0004]为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
[0005]根据本说明书一个或多个实施例的第一方面,提出了一种数据同步方法,所述方法包括:
[0006]创建触发器,其中,所述触发器用于将源表的数据变化同步至目标表,并将同步过程中已删除的数据的标识记录在删除日志中;
[0007]将所述源表内的数据同步至所述目标表;
[0008]根据所述删除日志内的标识对所述目标表内的数据进行处理。
[0009]在本说明书的一个实施例中,所述创建触发器,包括:
[0010]创建Insert触发器、Delete触发器和Update触发器,其中,所述Insert触发器用于将所述源表发生的数据插入事件同步至所述目标表,所述Delete触发器用于将所述源表发生的数据删除事件同步至所述目标表,所述Update触发器用于将所述源表发生的数据更新事件同步至所述目标表。
[0011]在本说明书的一个实施例中,所述Insert触发器还用于在所述删除日志内,删除所述数据插入事件中插入的数据的标识。
[0012]在本说明书的一个实施例中,所述Delete触发器还用于在所述删除日志内,添加所述数据删除事件中删除的数据的标识。
[0013]在本说明书的一个实施例中,所述Update触发器还用于在所述删除日志内,添加所述数据更新事件中更新前的数据的标识,并删除所述数据更新事件中更新后的数据的标识。
[0014]在本说明书的一个实施例中,所述根据所述删除日志内数据的标识对所述目标表内的数据进行处理,包括:
[0015]删除所述目标表中标识为所述删除日志内的标识的数据。
[0016]在本说明书的一个实施例中,所述将所述源表内的数据同步至所述目标表,包括:
[0017]根据数据同步块的预设尺寸对所述源表内数据进行划分,得到多个数据同步块;
[0018]针对所述多个数据同步块中每个数据同步块构建同步至所述目标表的同步任务,并将得到的多个同步任务生成任务队列。
[0019]在本说明书的一个实施例中,所述源表包括多个分区表,每个分区表存储于分布式数据库的一个分区中;
[0020]所述根据数据同步块的预设尺寸对所述源表内数据进行划分,得到多个数据同步块,包括:
[0021]分别确定每个分区表中数据的标识上限和标识下限;
[0022]针对每个分区表,根据所述分区表的标识上限和标识下限以及所述预设尺寸,对所述分区表内的数据进行划分,得到所述分区表对应的至少一个数据同步块。
[0023]在本说明书的一个实施例中,所述目标表包括多个分区表,每个分区表存储于分布式数据库的一个分区中;
[0024]所述方法还包括:
[0025]针对每个数据同步块,根据所述数据同步块内各个数据在所述目标表内对应的分区表,对所述数据同步块进行划分,得到所述数据同步块对应的至少一个数据子同步块;
[0026]所述针对所述多个数据同步块中每个数据同步块构建同步至所述目标表的同步任务,包括:
[0027]针对所述多个数据子同步块中每个数据子同步块构建同步至所述目标表的同步任务。
[0028]在本说明书的一个实施例中,所述方法还包括:
[0029]根据表结构变更指令,创建所述源表的影子表并对所述影子表进行结构修改,得到所述目标表。
[0030]在本说明书的一个实施例中,所述方法还包括:
[0031]响应于所述目标表内的数据相对于所述源表内的数据满足同步条件,切换所述源表和所述目标表的表名。
[0032]在本说明书的一个实施例中,所述切换所述源表和所述目标表的表名,包括:
[0033]响应于当前时刻相对于初始时刻或上一次会话统计时刻的时长达到预设时长,确定业务层与所述源表之间的会话数量,其中,所述初始时刻包括所述目标表内的数据相对于所述源表内的数据满足同步条件的时刻;
[0034]响应于业务层与所述源表之间的会话数量小于数量阈值,杀死业务层与所述源表之间的所有会话并切换所述源表和所述目标表的表名。
[0035]在本说明书的一个实施例中,所述方法还包括:
[0036]响应于会话统计的次数达到次数阈值,且每次会话统计的结果中业务层与所述源表之间的会话数量均不小于所述数量阈值,确定所述表结构变更失败。
[0037]根据本说明书一个或多个实施例的第二方面,提出了一种数据同步装置,所述装置包括:
[0038]增量同步模块,用于创建触发器,其中,所述触发器用于将源表的数据变化同步至目标表,并将同步过程中已删除的数据的标识记录在删除日志中;
[0039]全量同步模块,用于将所述源表内的数据同步至所述目标表;
[0040]处理模块,用于根据所述删除日志内的标识对所述目标表内的数据进行处理。
[0041]在本说明书的一个实施例中,所述增量同步模块用于:
[0042]创建Insert触发器、Delete触发器和Update触发器,其中,所述Insert触发器用于将所述源表发生的数据插入事件同步至所述目标表,所述Delete触发器用于将所述源表发生的数据删除事件同步至所述目标表,所述Update触发器用于将所述源表发生的数据更新事件同步至所述目标表。
[0043]在本说明书的一个实施例中,所述Insert触发器还用于在所述删除日志内,删除所述数据插入事件中插入的数据的标识。
[0044]在本说明书的一个实施例中,所述Delete触发器还用于在所述删除日志内,添加所述数据删除事件中删除的数据的标识。
[0045]在本说明书的一个实施例中,所述Update触发器还用于在所述删除日志内,添加所述数据更新事件中更新前的数据的标识,并删除所述数据更新事件中更新后的数据的标识。
[0046]在本说明书的一个实施例中,所述处理模块用于:
[0047]删除所述目标表中标识为所述删除日志内的标识的数据。
[0048]在本说明书的一个实施例中,所述全量同步模块用于:
[0049]根据数据同步块的预设尺寸对所述源表内数据进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,所述方法包括:创建触发器,其中,所述触发器用于将源表的数据变化同步至目标表,并将同步过程中已删除的数据的标识记录在删除日志中;将所述源表内的数据同步至所述目标表;根据所述删除日志内的标识对所述目标表内的数据进行处理。2.根据权利要求1所述的数据同步方法,所述创建触发器,包括:创建Insert触发器、Delete触发器和Update触发器,其中,所述Insert触发器用于将所述源表发生的数据插入事件同步至所述目标表,所述Delete触发器用于将所述源表发生的数据删除事件同步至所述目标表,所述Update触发器用于将所述源表发生的数据更新事件同步至所述目标表。3.根据权利要求2所述的数据同步方法,所述Insert触发器还用于在所述删除日志内,删除所述数据插入事件中插入的数据的标识。4.根据权利要求2所述的数据同步方法,所述Delete触发器还用于在所述删除日志内,添加所述数据删除事件中删除的数据的标识。5.根据权利要求2所述的数据同步方法,所述Update触发器还用于在所述删除日志内,添加所述数据更新事件中更新前的数据的标识,并删除所述数据更新事件中更新后的数据的标识。6.根据权利要求1所述的数据同步方法,所述根据所述删除日志内数据的标识对所述目标表内的数据进行处理,包括:删除所述目标表中标识为所述删除日志内的标识的数据。7.根据权利要求1所述的数据同步方法,所述将所述源表内的数据同步至所述目标表,包括:根据数据同步块的预设尺寸对所述源表内数据进行划分,得到多个数据同步块;针对所述多个数据同步块中每个数据同步块构建同步至所述目标表的同步任务,并将得到的多个同步任务生成任务队列。8.根据权利要求7所述的数据同步方法,所述源表包括多个分区表,每个分区表存储于分布式数据库的一个分区中;所述根据数据同步块的预设尺寸对所述源表内数据进行划分,得到多个数据同步块,包括:分别确定每个分区表中数据的标识上限和标识下限;针对每个分区表,根据所述分区表的标识上限和标识下限以及所述预设尺寸,对所述分区表内的数据进行划分,得到所述分区表对应的至少一个数据同步块。9.根据权利要求7所述的数据同步方法,所述目标表包括多个分区表,每个分区表...

【专利技术属性】
技术研发人员:康宏博钱在晨
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1