摘要
本方案涉及一种增量数据的同步方法、装置、系统、电子设备及可读介质,其中,方法包括:
从目标消息队列中拉取与增量数据对应的SQL信息;对与同一标识符对应的多个SQL信息进行简化,得到与各个标识符对应的SQL语句缓存;
按照预设处理策略对各个SQL语句缓存进行分类及拼接,得到SQL语句队列;将SQL语句队列组装成目标数据包放入执行队列,以及将数据包的数据写入目标端数据库,以完成对增量数据的同步。通过将同一标识符的SQL语句进行合并,再封装成数据包进行批量执行并写入新数据库,解决了增量数据同步性能低的问题。

背景技术
随着国内分布式数据库的技术发展,国产数据库的性能越来越优异,国内金融行业和各大运营商开始逐步推进使用国产分布式数据库来替代当正前使用数据库。要实现这一目标,将原有的业务转移至新的数据库,并且可以在业务运行时将数据同步到多个数据
源,数据迁移和数据同步技术则起到了至关重要的作用。增量数据同步是指从当前或某一个指定的同步位点开始,源端数据库的数据发生改变时,变化的数据会同步到目标端。在这个过程中,增量数据同步的性能会对数据同步的效率和准确性产生直接影响。如果性能较
差,就会导致数据同步速度变慢、同步不及时、数据不准确甚至是丢失数据等问题,对于银行和运营商的数据系统来说,对数据丢失零容忍,一旦出现这些问题,将严重影响业务的运转,可见,增量数据的同步性能不高影响数据准确性。
1 .一种增量数据的同步方法,其特征在于,包括:
从目标消息队列中拉取与增量数据对应的SQL信息;
对与同一标识符对应的多个所述SQL信息进行简化,得到与各个所述标识符对应的SQL
语句缓存;
按照预设处理策略对各个所述SQL语句缓存进行分类及拼接,得到SQL语句队列;
将所述SQL语句队列组装成目标数据包放入执行队列,以及将所述数据包的数据写入目标端数据库,以完成对所述增量数据的同步。
2 .根据权利要求1所述的方法,其特征在于,所述对与同一标识符对应的多个所述SQL信息进行简化,得到与各个所述标识符对应的SQL语句缓存包括:
获取各个所述SQL信息的所述标识符,其中,所述标识符包括数据地址或主键值;
根据标识符对各个所述SQL信息进行分组,得到多个相同标识符的SQL分组,并将多个所述SQL分组放入第一缓存;
获取所述SQL分组的关键字,并根据所述关键字对各个所述SQL分组进行简化,得到多个所述SQL语句缓存。
3 .根据权利要求2所述的方法,其特征在于,所述根据所述关键字对各个所述SQL分组进行简化,得到多个所述SQL语句缓存包括:
确定所述SQL分组中的起始语句以及结束语句;
按照预设匹配表寻找与所述起始语句以及所述结束语句对应的匹配语句,将所述匹配语句确定为与所述SQL分组简化后的所述SQL语句缓存,其中,所述预设匹配表包括所述SQL语句缓存与各个所述SQL分组的起止句的对应关系。
4 .根据权利要求1所述的方法,其特征在于,所述按照预设处理策略对各个所述SQL语句缓存进行分类及拼接,得到SQL语句队列包括:
按照预设分类表将各个所述SQL语句缓存划分为不同的SQL类别,其中,所述预设分类表中包括各个所述SQL语句与类别名称的对应关系;
将各个所述SQL类别按照预设顺序进行拼接,得到所述SQL语句队列,并放入第二缓存,其中,所述预设顺序为各个所述类别名称的排列顺序。
5 .根据权利要求1所述的方法,其特征在于,在从目标消息队列中拉取与增量数据对应的SQL信息之前,所述方法还包括:
监测源端数据库的数据变化;
在所述源端数据库出现所述增量数据时,生成与所述增量数据对应的所述SQL信息;
将所述SQL信息推送至所述目标消息队列。
6 .根据权利要求1所述的方法,其特征在于,所述将所述SQL语句队列组装成目标数据包放入执行队列,以及将所述数据包的数据写入目标端数据库包括:
将所述SQL语句队列组装成所述目标数据包,并将所述目标数据包发送至所述执行队列;
检测所述执行队列中的并发量;
在所述执行队列中的所述并发量达到配置阈值的情况下,将所述数据包的数据写入所述目标端数据库。
7 .一种增量数据的同步装置,其特征在于,包括:
拉取模块,用于从目标消息队列中拉取与增量数据对应的SQL信息;
简化模块,用于对与同一标识符对应的多个所述SQL信息进行简化,得到与各个所述标识符对应的SQL语句缓存;
拼接模块,用于按照预设处理策略对各个所述SQL语句缓存进行分类及拼接,得到SQL语句队列;
写入模块,用于将所述SQL语句队列组装成目标数据包放入执行队列,以及将所述数据包的数据写入目标端数据库,以完成对所述增量数据的同步。
8 .一种增量数据的同步系统,其特征在于,包括:
数据采集模块,用于在源端数据库出现增量数据时,生成与所述增量数据对应的SQL信息,并将所述SQL信息推送至目标消息队列;
目标消息队列,用于存储所述SQL信息;
数据回放模块,用于从所述目标消息队列中拉取与所述增量数据对应的SQL信息;对与同一标识符对应的多个所述SQL信息进行简化,得到与各个所述标识符对应的SQL语句缓存,按照预设处理策略对各个所述SQL语句缓存进行分类及拼接,得到SQL语句队列,将所述SQL语句队列组装成目标数据包放入执行队列,以及将所述数据包的数据写入目标端数据库,以完成对所述增量数据的同步。
9 .一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6任一项所述方法的步骤。
10 .一种具有处理器可执行的非易失的程序代码的计算机可读




