CN109739936A - 数据同步方法、系统、服务器及计算机可读存储介质 - Google Patents

数据同步方法、系统、服务器及计算机可读存储介质 Download PDF

Info

Publication number
CN109739936A
CN109739936A CN201910063590.5A CN201910063590A CN109739936A CN 109739936 A CN109739936 A CN 109739936A CN 201910063590 A CN201910063590 A CN 201910063590A CN 109739936 A CN109739936 A CN 109739936A
Authority
CN
China
Prior art keywords
data
tables
interim table
variation
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910063590.5A
Other languages
English (en)
Inventor
陶程飞
褚占峰
周鹏程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dt Dream Technology Co Ltd
Original Assignee
Hangzhou Dt Dream Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dt Dream Technology Co Ltd filed Critical Hangzhou Dt Dream Technology Co Ltd
Priority to CN201910063590.5A priority Critical patent/CN109739936A/zh
Publication of CN109739936A publication Critical patent/CN109739936A/zh
Pending legal-status Critical Current

Links

Abstract

本申请提供一种数据同步方法,包括:当检测到第一数据表存在变化数据,且需要将变化数据同步至第二数据表时,判断数据变化类型是否为数据更新或数据删除;若是,则将变化数据写入临时表;将临时表与第二数据表合并,完成数据同步。在存在数据更新或者数据删除时,变化记录从第一数据表写入临时表时为批量插入动作,无需根据变化记录对实际的数据内容作更新或删除处理,不同于直接将变化记录写入第二数据表的逐条更新或删除动作,提高了数据更新或者数据删除的速度,提升了数据库的入库性能,解决了数据同步时更新数据、删除数据效率低的问题。本申请还提供数据库之间的数据同步系统、计算机可读存储介质和服务器,具有相同有益效果。

Description

数据同步方法、系统、服务器及计算机可读存储介质
技术领域
本申请涉及数据库领域,特别涉及一种数据同步方法、数据同步系统、一种计算机可读存储介质和一种服务器。
背景技术
现有的增量数据同步有多种解决方案,常用的有时间戳方式、触发器方式、日志解析方式以及Oracle变化数据捕获(changed data capture,CDC)方式。以Oracle CDC方式为例,可以捕获一段时间内发生变化的数据,数据插入、更新、删除的记录会被保存。通过解析这些记录,实现增量数据的同步。
然而,当源库增量数据较大时,对于一些写入性能不高的数据库,例如GBase、GreenPlum等分析性数据库,不支持批量更新、批量删除,只能逐条地更新、删除数据,直接影响数据的同步效率,进而降低数据库的入库性能。
此外,对于MySQL、Oracle等支持批量处理的数据库,主要使用预编译SQL语句的方式实现批量更新、删除。但在进行数据更新、删除时,需要查询数据库中的已有数据,如果频繁地进行更新、删除,或目的表数据量较大时,增量同步的效率也会大大降低。
发明内容
本申请的目的是提供一种数据同步方法、数据同步系统、一种计算机可读存储介质和一种服务器,解决现有的数据库之间数据同步时更新数据、删除数据的效率低的问题。
为解决上述技术问题,本申请提供一种数据同步方法,具体技术方案如下:
当检测到第一数据表存在变化数据,且需要将所述变化数据同步至第二数据表时,判断数据变化类型是否为数据更新和/或数据删除;
若是,则将所述变化数据的变化记录写入临时表;其中,所述临时表与所述第二数据表表结构相同;
将所述临时表与所述第二数据表合并,在所述第二数据表根据所述变化记录同步所述变化数据后,完成数据同步。
其中,所述临时表包括第一临时表和第二临时表;
当所述数据变化类型为数据更新时,将数据更新对应的第一变化记录写入所述第一临时表;
当所述数据变化类型为数据删除时,将数据删除对应的第二变化记录写入所述第二临时表;
当所述数据变化类型为数据更新和数据删除时,将数据更新对应的第一变化记录写入所述第一临时表,将数据删除对应的第二变化记录写入所述第二临时表。
其中,所述将数据更新对应的第一变化记录写入所述第一临时表,包括:
将数据更新对应的第一变化记录批量插入所述第一临时表。
其中,所述将数据删除对应的第二变化记录写入所述第二临时表,包括:
将数据更新对应的第二变化记录批量插入所述第二临时表。
其中,将所述变化数据的变化记录写入临时表前,还包括:
生成所述临时表,并关联所述临时表与所述第二数据表。
其中,将所述临时表与所述第二数据表合并,完成数据同步包括:
根据所述临时表中的所述变化记录利用Sql将所述变化数据批量并入至所述第二数据表,完成数据同步。
其中,将所述临时表与所述第二数据表合并,完成数据同步之后还包括:
生成数据同步成功消息。
本申请还提供一种数据库之间的数据同步系统,包括:
判断模块,用于当检测到第一数据表存在变化数据,且需要将所述变化数据同步至第二数据表时,判断数据变化类型是否为数据更新或数据删除;
写入模块,用于将所述变化数据的变化记录写入临时表;其中,所述临时表与所述第二数据表表结构相同;
同步模块,用于将所述临时表与所述第二数据表合并,完成数据同步。
其中,所述临时表包括第一临时表和第二临时表;
当所述数据变化类型为数据更新时,所述写入模块用于将数据更新对应的第一变化记录写入所述第一临时表;
当所述数据变化类型为数据删除时,所述写入模块用于将数据删除对应的第二变化记录写入所述第二临时表;
当所述数据变化类型为数据更新和数据删除时,所述写入模块用于将数据更新对应的第一变化记录写入所述第一临时表,将数据删除对应的第二变化记录写入所述第二临时表。
其中,所述写入模块具体为用于将数据更新对应的第一变化记录批量插入所述第一临时表的模块。
其中,所述写入模块具体为用于将数据更新对应的第二变化记录批量插入所述第二临时表的模块。
其中,所述数据同步系统还包括:
临时表生成模块,用于生成所述临时表,并关联所述临时表与所述第二数据表。
其中,所述同步模块具体为用于根据所述临时表中的所述变化记录利用Sql将所述变化数据批量并入至所述第二数据表,完成数据同步的模块。
其中,所述数据同步系统还包括:
消息生成模块,用于生成数据同步成功消息。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据同步方法的步骤。
本申请还提供一种服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的数据同步方法的步骤。
本申请所提供的一种数据同步方法,包括:当检测到第一数据表存在变化数据,且需要将所述变化数据同步至第二数据表时,判断数据变化类型是否为数据更新或数据删除;若是,则将所述变化数据的变化记录写入临时表;将所述临时表与所述第二数据表合并,完成数据同步。
由于数据插入的效率远远高于数据更新和删除,尤其对于GBase等分析型数据库不支持批量更新、删除数据,本申请在存在数据更新或者数据删除时,先将数据记录写入与第二数据表可以直接合并的临时表,变化记录从第一数据表写入临时表时为批量插入动作,无需根据变化记录对实际的数据内容作更新或删除处理,不同于直接将变化记录写入第二数据表的逐条更新或删除动作,提高了数据更新或者数据删除的速度,提升了数据库的入库性能,解决了普通数据同步中效率低下的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种数据同步方法的流程图;
图2为本申请实施例所提供的一种数据库之间的数据同步系统框图;
图3为本申请实施例所提供的一种服务器的结构示意图;
图4为本申请实施例所提供的另一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种数据同步方法的流程图,该数据同步方法包括:
S101:当检测到第一数据表存在变化数据,且需要将所述变化数据同步至第二数据表时,判断数据变化类型是否为数据更新或数据删除;若是,进入S102;
本步骤旨在检测是否存在变化数据,且判断该变化数据的变化类型是否为数据更新或者数据删除。显而易见的是,检测的对象为数据库,更具体的,检测的是数据库中的数据表。数据库之间的数据库同步要求各数据库之间的数据相同,因此有必要对各数据表进行检测,以确定是否存在变化数据。
这里的第一数据表以及第二数据表通常分属于两个数据库,即第一数据库中的第一数据表存在变化数据,此时第一数据库需要将变化数据同步至第二数据库,而第二数据表则是第二数据库中与第一数据表相对应的数据表。而可以理解的是,第一数据表可以为第一数据库中任意发生数据变化的数据表。当然,若存在实际的数据同步需要,也可以应用于同一数据库中不同数据表之间的数据同步,在此对于第一数据表和第二数据表的具体联系不作限定。
通常,数据变化分为数据插入、数据更新和数据删除,而本步骤需要判断第一数据表的数据变化是否为数据更新和/或数据删除。需要说明的是,数据插入时,可以直接批量写入至第二数据表,即数据库支持批量插入,然而并不支持批量地进行数据更新或者数据删除。这里的数据库主要指的是分析性数据库,例如GBase、GreenPlum等等,对应的,第一数据表和第二数据表可以为GBase数据表、GreenPlum数据表等。当然,还可以为其他数据表,在此不一一举例限定。
若数据变化为数据更新和/或数据删除,则进入S102。如不为数据更新或数据删除,则通常为数据插入,则此时可以直接将插入的数据批量同步至第二数据表。
S102:将所述变化数据的变化记录写入临时表;
由于当数据变化为数据更新或者数据删除时,数据库不支持批量更新或者批量删除。因此本申请实施例将变化数据的变化记录写入临时表。需要说明的是,临时表与第二数据表表结构相同。
容易理解的是,本步骤默认在本步骤之前存在步骤:
生成所述临时表,并关联所述临时表与所述第二数据表。
也就是说,本步骤之前需要提前生成临时表。需要说明的是,临时表的表结构与第二数据表相同,且二者需要相关联。在此对于临时表的表属性类型不作限定,优选的,该临时表可以为隐藏表。例如第二数据表为GBase数据表时,则临时表为GBase临时表。表结构相同是临时表与第二数据表在后续步骤S103中合并的基础。可以理解的是,第二数据库中存在若干数据表,由于第二数据库与第一数据库处于数据同步的关系,第二数据表为第二数据库中与第一数据表相对应的数据表,则第二数据库中自然还存在与第一数据表不对应的第三数据表,为了避免数据同步过程发生紊乱,因此需要将临时表与第二数据表相关联。对于分析型数据库,相关技术中,第二数据表无法实现数据的批量删除和批量更新,每当接收到删除记录或者更新记录后,需要即时执行删除操作或者更新操作,并在数据删除或数据更新完毕后方能执行下一条记录。此外,还需要说明的是,临时表并非必须为一张表,其可以有多张数据表组成的数据表集合。当临时表包括多张数据表时,有必要将各数据表与第二数据表相关联,保证后续的合并过程不发生错误。
而本步骤需要将变化数据写入临时表。需要指出的是,虽然临时表与第二数据表结构相同,但实际上变化记录从第一数据表写入临时表时为批量插入动作,不同于直接将变化记录写入第二数据表的逐条更新或删除动作。因为写入临时表时实际上是将变化记录“添加”至临时表,因此实际上写入临时表的过程与数据插入至第二数据表时相同,均可以为批量的插入。无论是数据更新还是数据删除,本步骤均是将相应的更新记录或者删除记录写入至临时表,实际上等同于“数据增加”时增加记录的写入过程,因此本步骤实际上大大加快了将更新记录或删除记录写入的过程。
具体的,本步骤可以细分为两步执行,第一步先根据变化数据的变化记录生成相应的sql指令,第二步再利用该sql指令将变化记录写入临时表。这里的sql指令指的是数据库指令,用于将变化记录写入临时表。
需要指出的是,这里的sql指令的指令内容通常根据不同类型的变化数据作相应的变化。例如,对于数据更新而言,容易理解的是,sql指令中至少需要包括更新内容和更新的位置信息;对于数据删除过程,sql指令中至少需要包括即将删除数据的位置信息。利用sql指令将变化记录写入到临时表,实际上是变化记录批量插入至临时表,利用数据库支持批量增加这一特点,先将变化记录批量地插入至临时表。
S103:将所述临时表与所述第二数据表合并,完成数据同步。
本步骤旨在将临时表与第二数据表合并,完成数据同步。前文已说明,临时表与第二数据表为相同的表结构。此时可以直接进行合并,合并后第二数据表根据变化记录对自身进行相应的数据更新或者数据删除,完成与第一数据表的数据同步,实现第一数据库与第二数据库之间的数据同步。
S102已说明,无论是该变化记录具体为更新记录还是删除记录,在写入临时表的时候均是类似于数据插入的形式实现了批量处理。因此将临时表与第二数据表合并的过程实际上是第二数据表读取变化记录,进而根据变化记录实现数据更新或数据删除,完成数据同步。
具体的,本步骤通常可以在内存中进行,可以根据所述临时表中的所述变化记录利用Sql将所述变化数据批量并入至所述第二数据表,完成数据同步。
本申请实施例无需直接将数据更新和数据删除的记录逐条同步至目的表,而是利用临时表实现了对更新记录和删除记录的批量同步。实际上,在数据更新或数据删除过程利用了数据库支持批量插入至第二数据表这一特点,先将变化记录批量写入至与第二数据表表结构相同的临时表,再实现临时表与第二数据表的合并。提高了利用数据库在查询、分析动作上的性能优势,大大提升了数据更新、删除效率,提升了数据库之间数据同步的效率。
基于上述实施例,作为优选的实施例,S103之后还可以包括:
生成数据同步成功消息。
现有技术中,由于数据库不支持批量更新或者批量删除,因此逐条将更新记录或者删除记录同步后,均需要对本次更新记录的同步或删除记录的同步做同步成功确认,以确定本次同步过程成功完成。需要说明的是,本步骤通常是处理器在临时表与第二数据表合并后生成的数据同步确认成功消息。容易理解的是,当变化记录从第一数据表到临时表或者临时表与第二数据表发生合并错误等异常情况时,应当生成对应的数据同步失败信息,用于后续的数据二次同步或者数据库维护等。
而本实施例仅需要在临时表和第二数据表完成同步后做一次同步成功确认,无需做多次确认。在数据库之间进行数据同步时,其需要经过大量的变化记录同步,而本实施例将若干次同步成功确认过程缩减为只需进行一次同步成功确认,避免了多次数据同步确认,提高了数据更新或者数据删除的速度,提升了数据库的入库性能,解决了普通数据同步中效率低下的问题。
基于上述实施例,作为优选的实施例,临时表可以包括第一临时表和第二临时表;
当数据变化类型为数据更新时,将数据更新对应的第一变化记录写入第一临时表。相应的,将数据更新对应的第一变化记录写入第一临时表,可以具体为:先根据数据更新对应的第一变化记录生成相应的第一Sql指令,再根据第一Sql指令将第一变化记录批量插入第一临时表。
当数据变化类型为数据删除时,将数据删除对应的第二变化记录写入第二临时表。相应的,将数据删除对应的第二变化记录写入第二临时表,可以具体为:先根据数据更新对应的第二变化记录生成相应的第二Sql指令,再根据第二Sql指令将第二变化记录批量插入第二临时表。
容易理解的是,无论是第一Sql指令还是第二Sql指令,均为根据变化记录生成的相应Sql指令,用于实现将变化记录批量插入临时表。在此对于两个Sql指令的具体内容和格式不作限定。
当同时存在数据更新和数据删除时,S102具体可以为:
将数据更新对应的第一变化记录写入第一临时表,将数据删除对应的第二变化记录写入第二临时表。
下面将举例对本步骤进行具体说明,假设存在一张实时更新的源表(即第一数据表)A,源表A中的数据发生了插入、更新和删除变化。先需要将表A中的变化数据同步到目的表B中。
在进行同步过程中,将根据变化数据的类型分三步进行:
第一步、将各记录写入目的表或者临时表:
①数据插入,将插入记录批量写入目的表B(dst_test)。
②数据更新,将更新记录,也即第一变化记录,批量写入第一临时表C(dst_test_update)。
③数据删除,将删除记录,也即第二变化记录,批量写入第二临时表D(dst_test_delete)。
由此可见,当同时存在数据更新和数据删除时,虽然都是写入临时表,但二者应当对应不同的临时表。
第二步、根据第一临时表C中的更新记录,执行Sql更新目的表B中相应记录:
具体的,本步骤执行Sql操作过程可以如下:
update dst_test B
inner join dst_test_update C on B.ID=C.ID
set B.TFSJ=C.TFSJ;
truncate dst_test_update;
其中,可以看出存在将目的表B和第一临时表C合并的过程。即通过目的表B和第一临时表C按身份字段(ID)关联,将第一临时表C字段值(TFSJ)写入目的表B对应字段(TFSJ)。
第二步、根据第二临时表D中的删除记录,执行Sql删除目的表B中相应记录:
具体的,本步骤执行Sql操作过程可以如下:
delete from dst_test
where ID in(select D.ID from dst_test_delete D);
truncate dst_test_delete;
其中,可以看出存在将目的表B和第二临时表D合并的过程。即删除目的表B中包含第二临时表D身份字段值(ID)的记录。
需要指出的是,本实施例只是将本申请应用于数据库中的一种具体的实施过程,在不脱离本申请原理的前提下,还可以对本实施例有若干改进。例如,第二步和第三步的执行顺序颠倒,或者将第一步放至最后等,总之,第一步、第二步、第三步在步骤的先后顺序上并没有做限定,不管是以哪种方式实施均应在本申请的保护范围内。
下面对本申请实施例提供的一种数据库之间的数据同步系统进行介绍,下文描述的数据同步系统与上文描述的数据同步方法可相互对应参照。
图2为本申请实施例所提供的一种数据库之间的数据同步系统结构示意图,本申请还提供一种数据库之间的数据同步系统,包括:
判断模块100,用于当检测到第一数据表存在变化数据,且需要将所述变化数据同步至第二数据表时,判断数据变化类型是否为数据更新或数据删除;
写入模块200,用于将所述变化数据的变化记录写入临时表;
同步模块300,用于将所述临时表与所述第二数据表合并,完成数据同步。
基于上文所述的数据同步系统,作为优选的实施例,其中临时表可以包括第一临时表和第二临时表。
进一步,当数据变化类型为数据更新时,写入模块200可以用于将数据更新对应的第一变化记录写入第一临时表;
进一步,当数据变化类型为数据删除时,写入模块200可以用于将数据删除对应的第二变化记录写入第二临时表;
进一步,当数据变化类型为数据更新和数据删除时,写入模块200可以用于将数据更新对应的第一变化记录写入第一临时表,将数据删除对应的第二变化记录写入第二临时表。
基于上述实施例,作为优选的实施例,写入模块200可以具体为用于将数据更新对应的第一变化记录批量插入第一临时表的模块。
基于上述实施例,作为优选的实施例,写入模块200可以具体为用于将数据更新对应的第二变化记录批量插入第二临时表的模块。
基于上述实施例,作为优选的实施例,所述数据同步系统还可以包括:
临时表生成模块,用于生成所述临时表,并关联所述临时表与所述第二数据表。
基于上述实施例,作为优选的实施例,所述同步模块300具体可以为用于根据所述临时表中的所述变化记录利用Sql将所述变化数据批量并入至所述第二数据表,完成数据同步的模块。
基于上述实施例,作为优选的实施例,所述数据同步系统还可以包括:
消息生成模块,用于生成数据同步成功消息。
本申请还提供了一种服务器,参见图3,本申请实施例提供的一种服务器的结构图,如图3所示,可以包括处理器11和存储器12。参见图4,该服务器400还可以包括多媒体组件13,输入/输出(I/O)接口14,以及通信组件15中的一者或多者。
其中,处理器11用于控制该服务器400的整体操作,以完成上述的数据同步方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该服务器400的操作,这些数据例如可以包括用于在该服务器400上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该服务器400与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,服务器400可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据同步方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述数据同步方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器12,上述程序指令可由服务器400的处理器11执行以完成上述的数据同步方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
测试结果对比
按照已有技术方案和本技术方案分别配置Oracle数据源表到Gbase数据表的同步任务,源表、目的表均包含一百万条数据,并在源表中依次插入、更新、删除1000条数据,配置方案和测试结果如下:
一、已有技术捕获增量数据后使用预编译SQL语句进行增量数据导入,每次更新、删除数据需要先进行查询。1000条数据插入同步耗时5秒,1000条数据更新同步耗时8分32秒,1000条数据删除耗时8秒,累计耗时8分45秒。
二、本技术方案捕获增量数据后根据增量数据类型做不同处理,插入数据写入目的表,更新数据写入第一临时表,删除数据写入第二临时表。1000条数据插入同步至目的表耗时5秒,1000条数据更新同步至第一临时表耗时6秒,1000条数据删除同步至第二临时表耗时5秒,执行临时表合并Sql耗时0.71秒,累计耗时16.71秒。

Claims (10)

1.一种数据同步方法,其特征在于,包括:
当检测到第一数据表存在变化数据,且需要将所述变化数据同步至第二数据表时,判断数据变化类型是否为数据更新和/或数据删除;
若是,则将所述变化数据的变化记录写入临时表;其中,所述临时表与所述第二数据表表结构相同;
将所述临时表与所述第二数据表合并,在所述第二数据表根据所述变化记录同步所述变化数据后,完成数据同步。
2.根据权利要求1所述的数据同步方法,其特征在于,所述临时表包括第一临时表和第二临时表;
当所述数据变化类型为数据更新时,将数据更新对应的第一变化记录写入所述第一临时表;
当所述数据变化类型为数据删除时,将数据删除对应的第二变化记录写入所述第二临时表;
当所述数据变化类型为数据更新和数据删除时,将数据更新对应的第一变化记录写入所述第一临时表,将数据删除对应的第二变化记录写入所述第二临时表。
3.根据权利要求2所述的数据同步方法,其特征在于,所述将数据更新对应的第一变化记录写入所述第一临时表,包括:
将数据更新对应的第一变化记录批量插入所述第一临时表。
4.根据权利要求2所述的数据同步方法,其特征在于,所述将数据删除对应的第二变化记录写入所述第二临时表,包括:
将数据更新对应的第二变化记录批量插入所述第二临时表。
5.根据权利要求1-4任一项所述的数据同步方法,其特征在于,将所述变化数据的变化记录写入临时表前,还包括:
生成所述临时表,并关联所述临时表与所述第二数据表。
6.根据权利要求5所述的数据同步方法,其特征在于,将所述临时表与所述第二数据表合并,完成数据同步包括:
根据所述临时表中的所述变化记录利用Sql将所述变化数据批量并入至所述第二数据表,完成数据同步。
7.根据权利要求1所述的数据同步方法,其特征在于,将所述临时表与所述第二数据表合并,完成数据同步之后还包括:
生成数据同步成功消息。
8.一种数据库之间的数据同步系统,其特征在于,包括:
判断模块,用于当检测到第一数据表存在变化数据,且需要将所述变化数据同步至第二数据表时,判断数据变化类型是否为数据更新或数据删除;
写入模块,用于将所述变化数据的变化记录写入临时表;其中,所述临时表与所述第二数据表表结构相同;
同步模块,用于将所述临时表与所述第二数据表合并,完成数据同步。
9.一种服务器,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-7任一项所述的数据同步方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的数据同步方法。
CN201910063590.5A 2019-01-23 2019-01-23 数据同步方法、系统、服务器及计算机可读存储介质 Pending CN109739936A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910063590.5A CN109739936A (zh) 2019-01-23 2019-01-23 数据同步方法、系统、服务器及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910063590.5A CN109739936A (zh) 2019-01-23 2019-01-23 数据同步方法、系统、服务器及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN109739936A true CN109739936A (zh) 2019-05-10

Family

ID=66365766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910063590.5A Pending CN109739936A (zh) 2019-01-23 2019-01-23 数据同步方法、系统、服务器及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109739936A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110333970A (zh) * 2019-07-10 2019-10-15 中国民航信息网络股份有限公司 一种数据恢复方法及装置
CN110442585A (zh) * 2019-06-21 2019-11-12 中国平安财产保险股份有限公司 数据更新方法、数据更新装置、计算机设备及存储介质
CN110659281A (zh) * 2019-08-14 2020-01-07 中国平安财产保险股份有限公司 基于Hive的数据处理方法、装置、计算机设备及存储介质
CN111259082A (zh) * 2020-02-11 2020-06-09 车配齐(珠海横琴)科技有限公司 大数据环境下实现全量数据同步的方法
CN111752910A (zh) * 2020-06-24 2020-10-09 上海微盟企业发展有限公司 一种异构平台的数据同步方法、系统和相关装置
CN112231331A (zh) * 2020-10-23 2021-01-15 金蝶云科技有限公司 库存数据同步方法及库存数据同步模块
CN112328696A (zh) * 2020-11-17 2021-02-05 北京金和网络股份有限公司 一种MySQL数据库中数据同步到SQL Server数据库中的方法和装置
CN113704254A (zh) * 2021-07-30 2021-11-26 北京奇艺世纪科技有限公司 一种数据库的业务处理方法、装置、电子设备和存储介质
CN114297216A (zh) * 2021-12-30 2022-04-08 北京金堤科技有限公司 数据同步方法及其装置、计算机存储介质、电子设备
WO2022083266A1 (zh) * 2020-10-19 2022-04-28 中兴通讯股份有限公司 数据表同步方法及其装置、数据交换设备、存储介质
CN110442585B (zh) * 2019-06-21 2024-04-30 中国平安财产保险股份有限公司 数据更新方法、数据更新装置、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063358A (ko) * 2004-12-07 2006-06-12 에스케이 텔레콤주식회사 무선 포털 플랫폼에 있어서 비동기적 방식 기반의 데이터전송 서비스 시스템 및 그 방법
CN102495910A (zh) * 2011-12-28 2012-06-13 畅捷通信息技术股份有限公司 实现异构系统数据定时同步的装置和方法
CN102982126A (zh) * 2012-11-14 2013-03-20 浙江星汉信息技术有限公司 一种数据库表数据实时推送的方法及其系统
CN103605776A (zh) * 2013-11-28 2014-02-26 北京国双科技有限公司 信息数据库的数据处理方法和装置
CN105701218A (zh) * 2016-01-14 2016-06-22 四川长虹电器股份有限公司 实现不同终端在数据库上进行数据同步的方法
CN106325933A (zh) * 2016-08-24 2017-01-11 明算科技(北京)股份有限公司 批量数据同步方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063358A (ko) * 2004-12-07 2006-06-12 에스케이 텔레콤주식회사 무선 포털 플랫폼에 있어서 비동기적 방식 기반의 데이터전송 서비스 시스템 및 그 방법
CN102495910A (zh) * 2011-12-28 2012-06-13 畅捷通信息技术股份有限公司 实现异构系统数据定时同步的装置和方法
CN102982126A (zh) * 2012-11-14 2013-03-20 浙江星汉信息技术有限公司 一种数据库表数据实时推送的方法及其系统
CN103605776A (zh) * 2013-11-28 2014-02-26 北京国双科技有限公司 信息数据库的数据处理方法和装置
CN105701218A (zh) * 2016-01-14 2016-06-22 四川长虹电器股份有限公司 实现不同终端在数据库上进行数据同步的方法
CN106325933A (zh) * 2016-08-24 2017-01-11 明算科技(北京)股份有限公司 批量数据同步方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
彭磊: "大数据量Excel数据导入系统的设计与实现", 《现代电子技术》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442585A (zh) * 2019-06-21 2019-11-12 中国平安财产保险股份有限公司 数据更新方法、数据更新装置、计算机设备及存储介质
CN110442585B (zh) * 2019-06-21 2024-04-30 中国平安财产保险股份有限公司 数据更新方法、数据更新装置、计算机设备及存储介质
CN110333970B (zh) * 2019-07-10 2021-09-07 中国民航信息网络股份有限公司 一种数据恢复方法及装置
CN110333970A (zh) * 2019-07-10 2019-10-15 中国民航信息网络股份有限公司 一种数据恢复方法及装置
CN110659281A (zh) * 2019-08-14 2020-01-07 中国平安财产保险股份有限公司 基于Hive的数据处理方法、装置、计算机设备及存储介质
CN110659281B (zh) * 2019-08-14 2023-09-12 中国平安财产保险股份有限公司 基于Hive的数据处理方法、装置、计算机设备及存储介质
CN111259082B (zh) * 2020-02-11 2023-07-21 深圳市六因科技有限公司 大数据环境下实现全量数据同步的方法
CN111259082A (zh) * 2020-02-11 2020-06-09 车配齐(珠海横琴)科技有限公司 大数据环境下实现全量数据同步的方法
CN111752910A (zh) * 2020-06-24 2020-10-09 上海微盟企业发展有限公司 一种异构平台的数据同步方法、系统和相关装置
WO2022083266A1 (zh) * 2020-10-19 2022-04-28 中兴通讯股份有限公司 数据表同步方法及其装置、数据交换设备、存储介质
CN112231331A (zh) * 2020-10-23 2021-01-15 金蝶云科技有限公司 库存数据同步方法及库存数据同步模块
CN112328696A (zh) * 2020-11-17 2021-02-05 北京金和网络股份有限公司 一种MySQL数据库中数据同步到SQL Server数据库中的方法和装置
CN113704254A (zh) * 2021-07-30 2021-11-26 北京奇艺世纪科技有限公司 一种数据库的业务处理方法、装置、电子设备和存储介质
CN113704254B (zh) * 2021-07-30 2023-06-16 北京奇艺世纪科技有限公司 一种数据库的业务处理方法、装置、电子设备和存储介质
CN114297216B (zh) * 2021-12-30 2022-09-02 北京金堤科技有限公司 数据同步方法及其装置、计算机存储介质、电子设备
CN114297216A (zh) * 2021-12-30 2022-04-08 北京金堤科技有限公司 数据同步方法及其装置、计算机存储介质、电子设备

Similar Documents

Publication Publication Date Title
CN109739936A (zh) 数据同步方法、系统、服务器及计算机可读存储介质
US8538930B2 (en) Method and system for database recovery
CN109241175A (zh) 数据同步方法、装置、存储介质及电子设备
CN102222071B (zh) 数据同步处理方法、设备及系统
CN104965879A (zh) 修改数据表的表结构的方法及装置
US20200019559A1 (en) Synchronizing object in local object storage node
CN108205560B (zh) 一种数据同步方法以及装置
US20100042638A1 (en) Apparatus, method, and computer program product for synchronizing data sources
CN104834749A (zh) 一种移动终端与pc端的文件同步方法及同步系统
CN111414424A (zh) 一种配置数据自动同步redis的方法、系统、介质及设备
CN109542329B (zh) 日志写入方法、存储管理设备及系统
CN109271442A (zh) 数据库同步恢复方法、装置、计算机可读存储介质和电子设备
CN110647421B (zh) 数据库处理方法、装置、系统以及电子设备
CN105868168A (zh) 一种文档的操作方法及终端
CN111078418A (zh) 操作同步方法、装置、电子设备及计算机可读存储介质
CN111767214B (zh) 软件ui的自动化测试方法及装置
CN109614442A (zh) 数据同步的数据表维护方法、装置、存储介质和电子设备
CN111263195B (zh) 弹幕处理方法、装置、服务器设备及存储介质
CN110795318B (zh) 数据处理方法和装置以及电子设备
CN107491363A (zh) 一种基于Linux内核的存储卷的快照方法及装置
CN110865897B (zh) 冲突检测方法和装置以及电子设备
CN113742415A (zh) 增量数据同步方法、装置及电子设备
CN111026810B (zh) 数据同步方法、装置及存储介质
CN110569231A (zh) 数据迁移方法、装置、设备和介质
CN112988860A (zh) 数据加速处理方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination