基于日志解析的插入操作同步优化方法和数据同步系统技术方案

技术编号:25835272 阅读:34 留言:0更新日期:2020-10-02 14:16
本发明专利技术提供一种基于日志解析的插入操作同步优化方法和数据同步系统,该插入操作同步优化方法包括:判断待同步事务是否是针对待执行表的插入操作;若是,则根据待执行表的字典信息,判断待执行表是否存在列定义不带默认值或者列定义的默认值为空值的目标列;若存在,则分析待同步事务的各个插入操作,获取插入值为空值的目标列在各个插入操作的分布情况;当插入值为空值的目标列的分布情况满足设定条件时,在原有插入操作的基础上,将与插入值为空值的目标列相关的语句删除,重新生成目标插入操作,根据目标插入操作进行数据同步。

【技术实现步骤摘要】
基于日志解析的插入操作同步优化方法和数据同步系统
本专利技术属于数据同步领域,更具体地,涉及一种基于日志解析的插入操作同步优化方法和数据同步系统。
技术介绍
在基于日志解析架构的数据库实时同步系统(支持异构)中,数据库的DML(DataManipulationLanguage,简写为DML)操作是主要的数据同步内容,其中,DML操作包括INSERT、UPDATE和DELETE操作,如何提高DML操作的同步效率是各种同步软件需要共同面对的问题。而DML操作包含的同步场景多种多样,使用统一的数据同步处理逻辑则难以达到最佳的同步效果,这就要求同步软件针对各种数据场景有针对性的进行优化,才能达到最佳的同步效果。目前存在这种同步场景,某类表的列数很大,这类表的数据初始化时会批量插入大量的数据,然后这些插入的数据行中,只会在特定的几个列上填有有效值,其它列则默认空(NULL)值。针对这种场景,如果按照统一的处理逻辑,目标端数据同步服务在入库时,会构造全列的插入语句,然后绑定全列数据来填充后再执行,这种统一处理的方式虽然实现起来简单可靠,但是本文档来自技高网...

【技术保护点】
1.一种基于日志解析的插入操作同步优化方法,其特征在于,所述插入操作同步优化方法包括:/n判断待同步事务是否是针对待执行表的插入操作;/n若是,则根据所述待执行表的字典信息,判断所述待执行表是否存在列定义不带默认值或者列定义的默认值为空值的目标列;/n若存在,则分析所述待同步事务的各个插入操作,获取插入值为空值的目标列在各个插入操作的分布情况;/n当插入值为空值的目标列的分布情况满足设定条件时,在原有插入操作的基础上,将与插入值为空值的目标列相关的语句删除,重新生成目标插入操作,根据所述目标插入操作进行数据同步。/n

【技术特征摘要】
1.一种基于日志解析的插入操作同步优化方法,其特征在于,所述插入操作同步优化方法包括:
判断待同步事务是否是针对待执行表的插入操作;
若是,则根据所述待执行表的字典信息,判断所述待执行表是否存在列定义不带默认值或者列定义的默认值为空值的目标列;
若存在,则分析所述待同步事务的各个插入操作,获取插入值为空值的目标列在各个插入操作的分布情况;
当插入值为空值的目标列的分布情况满足设定条件时,在原有插入操作的基础上,将与插入值为空值的目标列相关的语句删除,重新生成目标插入操作,根据所述目标插入操作进行数据同步。


2.根据权利要求1所述的插入操作同步优化方法,其特征在于,判断所述待执行表是否存在列定义不带默认值或者列定义的默认值为空值的目标列之后还包括:
若存在,则计算所述待同步事务的第一个插入操作中,插入值为空值的目标列的占比率;
判断所述占比率是否大于设定值;
若所述占比率大于设定值,则执行分析所述待同步事务的各个插入操作,获取插入值为空值的目标列在各个插入操作的分布情况的步骤。


3.根据权利要求1所述的插入操作同步优化方法,其特征在于,所述分析所述待同步事务中的各个插入操作,插入值为空值的目标列在各行的分布情况包括:
步骤A:分析所述待同步事务中的第一个插入操作,绘制插入值为空值的目标列在整行的分布情况,得到第一分布标记组;
步骤B:分析所述待同步事务的第N个插入操作,绘制插入值为空值的目标列在整行的分布情况,得到第N分布标记组,其中,N表示插入操作在所述待同步事务中的排列序号,N的初始值为2;
步骤C:判断所述第一分布标记组和所述第N分布标记组是否一致;
步骤D:若一致,则设置N=N+1后,依次执行步骤B和步骤C,以得到插入值为空值的目标列在各个插入操作的分布情况。


4.根据权利要求3所述的插入操作同步优化方法,其特征在于,所述插入操作同步优化方法包括:
当步骤D执行完成后,所述待同步事务结束,则插入值为空值的目标列在各个插入操作的分布完全一致;
当步骤D执行完成后,所述待同步事务中存在未被分析的插入操作,则插入值为空值的目标列在各个插入操作中的分布不完全一致。


5.根据权利要求4所述的插入操作同步优化方法,其特征在于,所述插入操作同步优化方法包括:
当插入值为空值的目标列在各个插入操作的分布完全一致时,在原有插入操作的基础上,将与插入值为空值的目标列相关的语句删除,重新生成目标插入操作,根据所述目标插入操作进行数据同步;
当插入值为空值的目标列在各...

【专利技术属性】
技术研发人员:付铨黄海明孙峰余院兰
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北;42

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

1