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

技术编号:29330568 阅读:13 留言:0更新日期:2021-07-20 17:48
本发明专利技术提供一种数据同步方法、装置、电子设备及存储介质,属于数据处理技术领域,所述方法包括:建立源数据库中源表的数据与目标库中目标表的字段映射;将所述目标表的主键字段和所述目标表与所述源表中字段名相同的字段进行匹配,生成插入语句和更新语句;从所述源表中读取数据,并根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表。本发明专利技术通过匹配源表的数据和目标表的字段映射,避免人工配置的繁琐,并且通过切换插入语句和更新语句,可同时满足一次性全量数据传输和增量同步,通过动态调整批量处理条数,在海量数据的大表传输中也能实现批量处理功能。

【技术实现步骤摘要】
一种数据同步方法、装置、电子设备及存储介质
本专利技术涉及数据处理
,尤其涉及一种数据同步方法、装置、电子设备及存储介质。
技术介绍
中国专利(CN109492018A)公开了一种数据同步系统自适应动态调整方法和装置,通过提供了一种数据同步系统自适应动态调整内存缓存的方法以提高数据同步性能。其内存缓存只是用于数据的中转,将数据放入缓存中,可以在当前读取的数据还没有向目标表写完的情况下,可以继续从源数据库中读取数据,调整缓存大小,可以改善读的性能,但是不能改善写的性能。因此,有必要提供一种数据同步方法,能够兼顾自动化字段配置、支持全量抽取和增量同步的同时,又提供较好的批量处理性能,满足多表大量数据自动化同步的需求。
技术实现思路
本专利技术提供一种数据同步方法、装置、电子设备及存储介质,用以解决现有技术中通过调整内存缓存的方法只可改善读的性能而不能改善写的性能的问题。本专利技术提供一种数据同步方法,包括:建立源数据库中源表的数据与目标库中目标表的字段映射;将所述目标表的主键字段和所述目标表与所述源表中字段名相同的字段进行匹配,生成插入语句和更新语句;从所述源表中读取数据,并根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表。根据本专利技术提供的一种数据同步方法,所述根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表,包括:若所述初始参数的写入模式是执行插入语句,并且所述初始参数的最大批量提交条数为第一预设值;获取从所述源表读取数据的当前批量提交条数,设所述当前批量提交条数等于所述第一预设值;向所述目标表执行插入语句,当处理的插入语句的数量等于所述第一预设值时,则请求一次性批量写入所述目标表。根据本专利技术提供的一种数据同步方法,所述请求一次性批量写入所述目标表,包括:判断写入操作是否违反主键约束;如果是,则将所述写入模式由插入语句切换为更新语句,从当前执行失败的位置继续向所述目标表执行更新语句,以及降低当前批量提交条数以写入所述目标表。根据本专利技术提供的一种数据同步方法,所述降低当前批量提交条数,包括:如果当前批次执行更新语句的执行结果在所述目标表中的条数小于所述当前批次提交的条数,则表示有部分记录未写入所述目标表中,则从所述当前批次将所述写入模式由更新语句切换为插入语句,以及降低当前批量提交条数以继续执行将数据写入所述目标表的操作。根据本专利技术提供的一种数据同步方法,所述降低当前批量提交条数以继续执行将数据写入所述目标表的操作,包括:如果所述当前批次的插入语句全部执行成功,或者所述当前批次的更新语句的执行结果在所述目标表中的条数等于提交的条数,则记下成功写入的记录条数,如果连续成功写入,则连续累计成功写入的记录条数;当所述累计成功写入的记录条数大于当前批量提交条数时,则调高当前批量提交条数并继续执行将数据写入所述目标表的操作,直到所述源表中的全部记录同步至所述目标表为止。根据本专利技术提供的一种数据同步方法,所述从所述源表中读取数据,并根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表,包括:将从所述源表中读取的数据进行缓存;从缓存中读取数据,根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表;如果当前批次数据写入失败,则将所述当前批次的数据存入队列,并降低当前批量提交条数;基于已降低的批量提交条数,继续使用所述队列中的数据分批重试写入。根据本专利技术提供的一种数据同步方法,所述基于已降低的批量提交条数,继续使用所述队列中的数据分批重试写入之后,包括:如果所述已降低的批量提交条数继续写入失败,则继续将所述已降低的批量提交条数的数据存入队列,并降低当前批量提交条数;依次类推,如果一直写入失败,则最后批处理条数会降为1,将单条数据写入所述目标表。本专利技术还提供了一种数据同步装置,包括:字段映射模块,用于建立源数据库中源表的数据与目标库中目标表的字段映射;语句生成模块,将所述目标表的主键字段和所述目标表与所述源表中字段名相同的字段进行匹配,生成插入语句和更新语句;批量处理模块,用于从所述源表中读取数据,并根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表。本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据同步方法的步骤。本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据同步方法的步骤。本专利技术提供的一种数据同步方法、装置、电子设备及存储介质,通过匹配源表的数据和目标表的字段映射,避免人工配置的繁琐,并且通过切换插入语句和更新语句,可同时满足一次性全量数据传输和增量同步,通过动态调整批量处理条数,在海量数据的大表传输中也能实现批量处理功能。附图说明为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术提供的数据同步方法的流程示意图;图2是本专利技术提供的一次性批量写入目标表的流程示意图;图3是本专利技术提供的违反主键约束的流程示意图;图4是本专利技术提供的降低批量提交条数的流程示意图;图5是本专利技术提供的写入失败的流程示意图之一;图6是本专利技术提供的写入失败的流程示意图之二;图7是本专利技术提供的数据同步装置的结构示意图;图8是本专利技术提供的一实施例的模块功能结构示意图;图9是图8的业务流程示意图;图10是本专利技术提供的电子设备的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。本专利技术提供一种数据同步方法、装置、电子设备及存储介质,能够自动识别和匹配字段映射,能够自动判断和切换插入(insert)、更新(update),并自动动态调整批量处理条数以改善处理速度。下面结合图1-本文档来自技高网...

【技术保护点】
1.一种数据同步方法,其特征在于,包括:/n建立源数据库中源表的数据与目标库中目标表的字段映射;/n将所述目标表的主键字段和所述目标表与所述源表中字段名相同的字段进行匹配,生成插入语句和更新语句;/n从所述源表中读取数据,并根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表。/n

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:
建立源数据库中源表的数据与目标库中目标表的字段映射;
将所述目标表的主键字段和所述目标表与所述源表中字段名相同的字段进行匹配,生成插入语句和更新语句;
从所述源表中读取数据,并根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表。


2.根据权利要求1所述的数据同步方法,其特征在于,所述根据系统预设的初始参数切换插入语句或更新语句调整所述数据的批量提交条数以写入所述目标表,包括:
若所述初始参数的写入模式是执行插入语句,并且所述初始参数的最大批量提交条数为第一预设值;
获取从所述源表读取数据的当前批量提交条数,设所述当前批量提交条数等于所述第一预设值;
向所述目标表执行插入语句,当处理的插入语句的数量等于所述第一预设值时,则请求一次性批量写入所述目标表。


3.根据权利要求2所述的数据同步方法,其特征在于,所述请求一次性批量写入所述目标表,包括:
判断写入操作是否违反主键约束;
如果是,则将所述写入模式由插入语句切换为更新语句,从当前执行失败的位置继续向所述目标表执行更新语句,以及降低当前批量提交条数以写入所述目标表。


4.根据权利要求3所述的数据同步方法,其特征在于,所述降低当前批量提交条数,包括:
如果当前批次执行更新语句的执行结果在所述目标表中的条数小于所述当前批次提交的条数,则表示有部分记录未写入所述目标表中,则从所述当前批次将所述写入模式由更新语句切换为插入语句,以及降低当前批量提交条数以继续执行将数据写入所述目标表的操作。


5.根据权利要求4所述的数据同步方法,其特征在于,所述降低当前批量提交条数以继续执行将数据写入所述目标表的操作,包括:
如果所述当前批次的插入语句全部执行成功,或者所述当前批次的更新语句的执行结果在所述目标表中的条数等于提交的条数,则记下成功写入的记录条数,如果连续成功写入,则连续累计成功写入的记录条数;
当所述累...

【专利技术属性】
技术研发人员:胡鹏陈平
申请(专利权)人:武汉优品楚鼎科技有限公司
类型:发明
国别省市:湖北;42

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

1