一种数据同步方法、装置、系统、计算机可读存储介质制造方法及图纸

技术编号:38480238 阅读:8 留言:0更新日期:2023-08-15 16:58
本发明专利技术涉及大数据处理技术领域中的一种数据同步方法、装置、系统、计算机可读存储介质,包括以下步骤:将相同列表的数据操纵语言语句投递至相同队列,并获取相同队列内,相近的两组数据操作语言语句;判断两组数据操纵语言语句是否为插入或删除,若是,则判断两组数据操纵语言语句是否为相同操作类型;基于相同/不同操作类型的判断结果,进行合并/不合并计数处理,并根据计数处理的结果,调节合并提交开关的开闭,解决了数据同步过程中,现有批量提交和非批量提交方法中存在延时的问题。量提交和非批量提交方法中存在延时的问题。量提交和非批量提交方法中存在延时的问题。

【技术实现步骤摘要】
一种数据同步方法、装置、系统、计算机可读存储介质


[0001]本专利技术涉及大数据处理
,具体涉及一种数据同步方法、装置、系统、计算机可读存储介质。

技术介绍

[0002]在数据库的实时复制过程中,源端数据库不断产生新的DML数据,每条变更语句都需要投递到目标端执行。如果源端发生大批量数据变更或数据导入,会在短时间内产生大量日志,复制链路将一条条执行语句发送到目标端,性能很慢,会导致链路延时增大。这时可以通过打开攒批来实现批量写入,但攒批意味着要等待积攒的条数达到阈值或时间超过阈值,才触发提交,这对于正常同步(非批量变更)场景下又会导致复制链路的延时被人为加大。
[0003]业界对于批量数据变更在复制链路中的优化,主要是提供批量提交能力,当源库发生批量数据变更导致链路延时时,需要由用户或产品侧通过后台打开批量提交开关,这是一种滞后的处理方式,打开前,链路延时已经发生,队列待提交语句已经生成无法再合并。打开后当批量语句执行完,对于正常同步(非批量变更)场景下又会导致复制链路的延时因为攒批机制而被人为加大。在逐条提交和批量攒批之间,通过人为设置打开或关闭批量提交,不适合动态的生产数据场景。

技术实现思路

[0004]本专利技术针对现有技术中的缺点,提供了一种数据同步方法、装置、系统、计算机可读存储介质,解决了数据同步过程中,现有批量提交和非批量提交方法中存在延时的问题。
[0005]为了解决上述技术问题,本专利技术通过下述技术方案得以解决:
[0006]一种数据同步方法,包括以下步骤:
[0007]将相同列表的数据操纵语言语句投递至相同队列,并获取相同队列内,相近的两组数据操作语言语句;
[0008]判断两组所述数据操纵语言语句是否为插入或删除,若是,则判断两组所述数据操纵语言语句是否为相同操作类型,反之则进行不合并计数处理;
[0009]基于相同/不同操作类型的判断结果,进行合并/不合并计数处理,并根据计数处理的结果,调节合并提交开关的开闭。
[0010]可选的,合并/不合并计数处理,包括以下步骤:
[0011]当两组所述数据操纵语言语句为相同操作类型时,则合并计数加“1”处理;
[0012]当两组所述数据操纵语言语句为不用操作类型时,则不合并计数加“1”处理,同时合并计数清零。
[0013]可选的,调节合并提交开关的闭合,包括以下步骤:
[0014]设定启动合并阈值,判断所述合并计数是否大于启动合并阈值;
[0015]若是,则打开合并提交开关,同时不合并计数清零设置,反之则不调节合并提交开
关。
[0016]可选的,调节合并提交开关的闭合,还包括以下步骤:
[0017]设定关闭合并阈值,判断所述不合并计数是否大于关闭合并阈值;
[0018]若是,则关闭合并提交开关,同时合并计数清零设置,反之则不调节合并提交开关。
[0019]可选的,所述数据操纵语言语句包括插入、更新和删除操作。
[0020]可选的,还包括以下步骤:
[0021]根据表名判断所有数据操纵语言语句,并将表名相同的数据操纵语言语句根据先后顺序归集到相同列表。
[0022]可选的,在进行合并计数处理时,将处于同一列表内的多条相邻且相同的数据操纵语言语句进行合并处理。
[0023]一种数据同步装置,所述数据同步装置用于执行如上述任意一项所述的数据同步方法,包括源端、合并计数器、不合并计数器、合并提交开关以及目标端;
[0024]所述源端用于发送数据操纵语言语句;
[0025]所述合并计数器用于根据相近的两组数据操作语言语句的操作类型,进行合并计数处理;
[0026]所述不合并计数器用于根据相近的两组数据操作语言语句的操作类型,进行不合并计数处理;
[0027]所述合并提交开关用于根据合并计数器的数值/不合并计数器的数值,调节开闭;
[0028]所述目标端用于接收源端发送的数据操纵语言语句。
[0029]一种数据同步系统,包括队列分配单元、类型判断单元和合并调节单元;
[0030]所述队列分配单元,将相同列表的数据操纵语言语句投递至相同队列,并获取相同队列内,相近的两组数据操作语言语句;
[0031]所述类型判断单元,判断两组所述数据操纵语言语句是否为插入或删除,若是,则判断两组所述数据操纵语言语句是否为相同操作类型,反之则进行不合并计数处理;
[0032]所述合并调节单元,基于相同/不同操作类型的判断结果,进行合并/不合并计数处理,并根据计数处理的结果,调节合并提交开关的开闭。
[0033]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述任意一项所述的数据同步方法。
[0034]采用本专利技术提供的技术方案,与现有技术相比,具有如下有益效果:
[0035]通过在复制链路中设计两个计数功能,使得从源端获取日志放入队列后,只需等计数完成后,再放入下一条,这样就可以实现当超过启动合并阈值时,可合并记录插入队列,合并提交开关自动打开,而当后续插入数据超过关闭合并阈值不能合并时,合并提交开关自动关闭,实现自动开关机制;同时,自动开关机制,有效避免了当数据延时后再去紧急打开的滞后问题,也避免了在正常同步过程中因为攒批阈值未触发导致的人为延时增加。
附图说明
[0036]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本实施例一提出的一种数据同步方法的流程图。
具体实施方式
[0038]下面结合实施例对本专利技术做进一步的详细说明,以下实施例是对本专利技术的解释而本专利技术并不局限于以下实施例。
[0039]实施例一
[0040]如图1所示,一种数据同步方法,用于判断源端是否是发生批量变更,并在复制链路提交语句之前完成语句合并,从而降低链路与目标库之间的来回网络交互,当批量变更语句执行完,自动切回正常的逐条语句提交模式,其中,一般关系数据同步中最多的是DML(Data Manipulation Language,数据操纵语言)语句,分为插入(insert)、更新(update)、删除(delete)三种,业务可能随机产生这三种操作,也可能在数据导入、批量数据订正、历史数据删除等场景下产生批量数据变更,其中源端发生批量数据导入,或者历史数据批量删除操作,这种周期性的导入或删除数据,是出现批量数据变更的主要场景。
[0041]进一步地,首先根据表名判断所有数据操纵语言语句,并将表名相同的数据操纵语言语句根据先后顺序轨迹到相同列表,然后将相同列表的数据操纵语言语句投递至相同队列,并获取相同队列内,相近的两本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括以下步骤:将相同列表的数据操纵语言语句投递至相同队列,并获取相同队列内,相近的两组数据操作语言语句;判断两组所述数据操纵语言语句是否为插入或删除,若是,则判断两组所述数据操纵语言语句是否为相同操作类型,反之则进行不合并计数处理;基于相同/不同操作类型的判断结果,进行合并/不合并计数处理,并根据计数处理的结果,调节合并提交开关的开闭。2.根据权利要求1所述的一种数据同步方法,其特征在于,合并/不合并计数处理,包括以下步骤:当两组所述数据操纵语言语句为相同操作类型时,则合并计数加“1”处理;当两组所述数据操纵语言语句为不用操作类型时,则不合并计数加“1”处理,同时合并计数清零。3.根据权利要求2所述的一种数据同步方法,其特征在于,调节合并提交开关的闭合,包括以下步骤:设定启动合并阈值,判断所述合并计数是否大于启动合并阈值;若是,则打开合并提交开关,同时不合并计数清零设置,反之则不调节合并提交开关。4.根据权利要求2所述的一种数据同步方法,其特征在于,调节合并提交开关的闭合,还包括以下步骤:设定关闭合并阈值,判断所述不合并计数是否大于关闭合并阈值;若是,则关闭合并提交开关,同时合并计数清零设置,反之则不调节合并提交开关。5.根据权利要求1所述的一种数据同步方法,其特征在于,所述数据操纵语言语句包括插入、更新和删除操作。6.根据权利要求1所述的一种数据同步方法,其特征在于,还包括以下步骤:根据表名判断所有数据操纵语言语句,并将表名相同的数据操纵语言语句根据先后顺序归集到相...

【专利技术属性】
技术研发人员:叶正盛陈长城
申请(专利权)人:玖章算术浙江科技有限公司
类型:发明
国别省市:

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

1