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