CN107590277B - 数据同步方法、装置、电子设备及存储介质 - Google Patents
数据同步方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN107590277B CN107590277B CN201710896077.5A CN201710896077A CN107590277B CN 107590277 B CN107590277 B CN 107590277B CN 201710896077 A CN201710896077 A CN 201710896077A CN 107590277 B CN107590277 B CN 107590277B
- Authority
- CN
- China
- Prior art keywords
- data
- data operation
- source database
- database
- thread
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供了一种数据同步方法、装置、电子设备及存储介质,涉及计算机技术领域。该数据同步方法包括:通过设置在源数据库中的触发器监测源数据库中发生的数据操作事件;基于监测到的数据操作事件,生成对应的数据操作记录;以及根据所述数据操作记录,对源数据库与目标数据库进行同步。本发明实施例的技术方案能够监测到源数据中发生的各种数据操作事件,同时能够在保持数据完整性的前提下实现源数据库与目标数据库之间的同步。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据同步方法、数据同步装置、电子设备以及计算机可读存储介质。
背景技术
随着互联网技术的发展,需要处理的数据量不断增加,许多业务处理系统采用两个或更多个数据库对业务数据进行处理,因此,数据库之间的数据同步成为了人们关注的焦点。
以保险业务为例,目前,大多数保险公司都设有前端数据库以及后端数据库,参照图1所示的保险业务系统,该保险业务系统后端的承保核心区如图1中左侧的核心区一般供内部人员使用,该核心区的核心数据库录入和存储的信息既多又复杂,会造成后端数据库的数据量过于庞大。在涉及到该保险业务系统的前后端交互时,过于庞大的后端数据库系统会使前端的处理速度变慢,为了实现快速承保,一般的技术方案为先把数据存储到前端数据库,随后通过数据库自带的同步功能将前端数据库的数据同步到后端数据库。
然而,通过数据库自带的同步功能进行数据库之间的数据同步时,捕捉不到人为手动用SQL(Structured Query Language,结构化查询语言)语句插入的数据,从而难以保证数据完整性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种数据同步方法、数据同步装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本发明实施例的第一方面,提供了一种数据同步方法,包括:通过设置在源数据库中的触发器监测所述源数据库中发生的数据操作事件;基于监测到的数据操作事件,生成对应的数据操作记录;以及根据所述数据操作记录,对所述源数据库与目标数据库进行同步。
在本发明的一些实施例中,基于前述方案,所述源数据库中需要同步的每张数据表中都设置有所述触发器。
在本发明的一些实施例中,基于前述方案,还包括:创建同步日志表;基于所述同步日志表存储所述数据操作记录。
在本发明的一些实施例中,基于前述方案,根据所述数据操作记录,对所述源数据库与目标数据库进行同步,包括:通过第一线程抓取所述数据操作记录,并将抓取的数据操作记录分发给至少一个第二线程;通过所述至少一个第二线程根据分发到的数据操作记录对所述源数据库与所述目标数据库进行同步。
在本发明的一些实施例中,基于前述方案,所述第一线程为守护线程。
在本发明的一些实施例中,基于前述方案,根据所述数据操作记录,对所述源数据库与目标数据库进行同步,包括:抓取所述数据操作记录,并将抓取的数据操作记录放入消息队列中;依次根据所述消息队列中的每条数据操作记录,对所述源数据库与所述目标数据库进行同步。
在本发明的一些实施例中,基于前述方案,抓取所述数据操作记录,包括:按照预定的周期,定时抓取预定数量的所述数据操作记录。
在本发明的一些实施例中,基于前述方案,所述数据操作事件包括:插入数据的事件、删除数据的事件,以及更新数据的事件。
在本发明的一些实施例中,基于前述方案,所述数据操作记录包括:数据操作事件对应的业务标识、数据操作事件所针对的目标数据表的标识、数据操作事件的类型、源数据库标识和目标数据库标识。
在本发明的一些实施例中,基于前述方案,根据所述数据操作记录,对所述源数据库与目标数据库进行同步,包括:若所述数据操作记录中的数据操作事件的类型为插入数据,则根据所述业务标识从所述源数据库中提取相应的数据,并将提取出的数据插入到所述目标数据库中对应的数据表中;若所述数据操作记录中的数据操作事件的类型为更新数据,则根据所述业务标识从所述源数据库中提取相应的数据,并根据提取出的数据更新所述目标数据库中对应的数据;若所述数据操作记录中的数据操作事件的类型为删除数据,则根据所述业务标识删除所述目标数据库中对应的数据。
根据本发明实施例的第二方面,提供了一种数据同步装置,包括:监测单元,用于通过设置在源数据库中的触发器监测所述源数据库中发生的数据操作事件;记录生成单元,用于基于监测到的数据操作事件,生成对应的数据操作记录;以及同步单元,用于根据所述数据操作记录,对所述源数据库与目标数据库进行同步。
根据本发明实施例的第三方面,提供了一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上述第一方面中所述的数据同步方法。
根据本发明实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面中所述的数据同步方法。
在本发明的一些实施例所提供的技术方案中,通过设置触发器监测源数据库中发生的数据操作事件,并根据与数据操作事件对应的数据操作记录对源数据库与目标数据库进行同步。一方面,通过触发器监测源数据库中发生的数据操作事件,能够监测到源数据库中发生的各种数据操作事件;另一方面,根据与数据操作事件对应的数据操作记录对源数据库与目标数据库进行同步,能够在保证数据库的数据完整性的同时实现源数据库与目标数据库之间的同步。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了数据同步方法的应用场景的示意图;
图2示出了根据本发明的第一个示例性实施例的数据同步方法的流程示意图;
图3示出了根据本发明的示例性实施例的数据同步过程的流程示意图;
图4示出了根据本发明的第二个示例性实施例的数据同步方法的流程示意图;
图5示出了根据本发明的一示例性实施例的数据同步装置的示意框图;
图6示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面,将结合附图对本发明的示例性实施例中的数据同步方法进行详细的描述。
图2示出了根据本发明的第一个示例性实施例的数据同步方法的流程图。参照图2所示,本示例性实施例中的数据同步方法可以包括以下步骤S210至S230。该数据同步方法可以应用于图1中所示的后端数据库与前端数据库之间进行同步的应用场景中,也可以应用到其它的数据同步的场景中,本发明的实施例不限于此。
下面将以图1中所示的应用场景为例对步骤S210至步骤S230进行详细说明。
在步骤S210中,通过设置在源数据库中的触发器监测所述源数据库中发生的数据操作事件。
在本示例性实施例中,源数据库可以为存储保险业务系统的前端数据的数据库,例如图1中所示的互联网服务区的前端数据库,源数据库可以为MySQL数据库或Oracle数据库,但是本发明的示例实施例中的数据库不限于此,例如源数据库还可以为SQL server数据库、DB2数据库等。
进一步地,在本示例实施例中,可选地,可以对源数据库中需要同步的每张数据表都设置触发器,以监测对各数据表的数据操作事件。触发器是数据库中与表的事件相关的特殊的存储过程,触发器的执行是由事件来触发,例如当对一个表进行操作(例如:插入、删除、更新)时就会激活触发器执行这些操作。触发器经常用于加强数据的完整性约束和业务规则等。可以从DBA_TRIGGERS(数据库管理员_触发器)、USER_TRIGGERS(用户_触发器)等数据字典中查到设置的触发器的信息。
接下来,在步骤S220中,基于监测到的数据操作事件,生成对应的数据操作记录。
在本示例实施例中,通过所设置的触发器对源数据库中需要监测的目标表进行监测,可以在监测到对目标表的数据操作事件时,生成与目标表的数据操作事件对应的数据操作记录。数据操作事件可以包括插入数据的事件、删除数据的事件以及更新数据的事件。与数据操作事件对应的数据操作记录可以包括:数据操作事件对应的业务标识、数据操作事件所针对的目标数据表的标识、数据操作事件的类型、源数据库标识和目标数据库标识等。此外,数据操作记录还可以包括操作时间或其他适当的信息。
进一步地,在本示例实施例中,还可以创建同步日志表,基于同步日志表存储所述数据操作记录,同步日志表的格式可以如下表1所示:
表1
从上表1中可知,通过设置在源数据库A中的触发器监测到对源数据A中的数据表gcregistmain进行了数据更新操作时,可以通过同步日志表1存储该数据更新操作记录。例如,可以在同步日志表1中存储:与更新数据操作事件对应的业务标识10000001、更新数据操作事件所针对的目标数据表的标识即表名gcregistmain、更新数据操作事件的类型、源数据库标识A、目标数据库标识B以及操作时间等。
需要说明的是,删除数据操作以及插入数据操作在日志表中存储的数据与更新数据操作在日志表中存储的数据类似,在此将不再赘述。
接下来,在步骤S230中,根据所述数据操作记录,对所述源数据库与目标数据库进行同步。
对于步骤S230中的同步方案,本发明提供了如下两个实施例:
实施例一:
参照图3所示,在步骤S310中,通过第一线程抓取所述数据操作记录,并将抓取的数据操作记录分发给至少一个第二线程;在步骤S320中,通过所述至少一个第二线程根据分发到的数据操作记录对源数据库与目标数据库进行同步。
需要说明的是,在本发明的实施例中,第一线程可以是主线程,第二线程可以是子线程,并且主线程可以是守护线程。
举例而言,可以通过守护线程从上述同步日志表中抓取数据操作记录,例如抓取1000条数据操作记录,守护线程将抓取的数据操作记录分发给子线程,例如20个子线程,子线程根据分发到的数据操作记录对源数据库A与目标数据库B进行同步。
在本发明的实施例中,由于守护线程在后台运行,不会影响其他线程的工作,因此采用守护线程从同步日志表中抓取数据,可以使抓取同步日志表中的数据操作记录的过程与子线程的同步过程同时进行,提高数据同步的效率。此外,由于子线程之间可以并行处理数据,从而能够进一步提高数据同步的效率,实现源数据库A与目标数据库B之间的快速同步。
实施例二:
抓取数据操作记录,并将抓取的数据操作记录放入消息队列中;依次根据所述消息队列中的每条数据操作记录,对源数据库与目标数据库进行同步。
需要说明的是,在实施例二中,抓取数据操作记录的线程可以是主线程,根据消息队列中的数据操作记录进行同步的线程可以是子线程。当然,本发明的实施例并不限于此。举例而言,可以通过主线程从同步日志表中抓取数据操作记录,将抓取的数据操作记录放入到消息队列中,通过子线程根据消息队列中的数据操作记录的先后顺序对源数据库A与目标数据库B进行同步。
进一步地,对于上述实施例一与实施例二,可以按照预定的周期,定时从同步日志表中抓取预定数量的所述数据操作记录,以实现定时自动地对源数据库A与目标数据库B进行同步,比如每5秒从同步日志表中抓取一次数据。
在本发明的实施例中,对于上述实施例一与实施例二中的根据所述数据操作记录,对所述源数据库与目标数据库进行同步的方案在具体实现时可以如下:
(1)若数据操作记录中的操作类型为插入数据,则根据与该插入数据操作事件对应的业务标识抓取源数据库的数据表中插入的相应数据,并将所述数据插入到目标数据库中对应的数据表中。
(2)若数据操作记录中的操作类型为更新数据时,则根据与该更新数据操作对应的业务标识抓取源数据库的数据表中更新的相应数据,并将所述数据更新到所述目标数据库中对应的数据表中。
(3)若数据操作记录中的操作类型为删除数据,则根据与该删除数据操作对应的业务标识从所述目标数据库中的对应的数据表中删除相应的数据。
基于上述描述,本发明实施例中通过设置触发器来监测源数据库中发生的数据操作事件,使得能够监测到源数据库中发生的各种数据操作事件;同时通过根据数据操作记录对源数据库与目标数据库进行同步,使得能够保证数据库同步过程中的数据完整性。
可选地,结合上述实施例的方案,如图4所示,根据本发明的第二个示例性实施例的数据同步方法,包括:
步骤S410,触发器监测源数据库,即通过触发器监测源数据库中的数据操作情况。
步骤S420,日志表存储,即通过日志表存储触发器监测到的数据操作情况。
步骤S430,同步程序(定时任务)执行,即同步程序定时读取日志表中的数据,并根据日志表中的数据来执行数据同步操作。具体的数据同步操作如上述实施例一和实施例二中所述的方案。
在图4所示的实施例中,通过采用日志表存储触发器监测到的数据操作情况,可以保证同步程序从日志表中有序地抓取数据。
需要说明的是,尽管在附图中以特定顺序描述了本发明的实施例中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本发明的实施例中,还提供了一种数据同步装置。参照图5所示,根据本发明的实施例的数据同步装置500可以包括:监测单元510、记录生成单元520以及同步单元530。其中:监测单元510用于通过设置在源数据库中的触发器监测所述源数据库中发生的数据操作事件;记录生成单元520用于基于监测到的数据操作事件,生成对应的数据操作记录;以及同步单元530用于根据所述数据操作记录,对所述源数据库与目标数据库进行同步。
进一步地,在本发明的实施例中,基于前述方案,所述源数据库中需要同步的每张数据表中都设置有所述触发器。
此外,在本发明的实施例中,基于前述方案,数据同步装置500还可以包括:日志表创建单元,用于创建同步日志表;存储单元,用于基于所述同步日志表存储所述数据操作记录。
进一步地,在本发明的实施例中,基于前述方案,同步单元530包括:抓取单元,用于通过第一线程抓取所述数据操作记录,并将抓取的数据操作记录分发给至少一个第二线程;执行单元,用于通过所述至少一个第二线程根据分发到的数据操作记录对所述源数据库与所述目标数据库进行同步。
进一步地,在本发明的实施例中,基于前述方案,所述第一线程可以为守护线程。
进一步地,在本发明的实施例中,基于前述方案,同步单元530配置为:抓取单元,用于抓取所述数据操作记录,并将抓取的数据操作记录放入消息队列中;执行单元,用于依次根据所述消息队列中的每条数据操作记录,对所述源数据库与所述目标数据库进行同步。
进一步地,在本发明的实施例中,基于前述方案,所述抓取单元配置为:按照预定的周期,定时抓取预定数量的所述数据操作记录。
进一步地,在本发明的实施例中,基于前述方案,所述数据操作事件可以包括:插入数据的事件、删除数据的事件,以及更新数据的事件。
进一步地,在本发明的实施例中,基于前述方案,所述数据操作记录可以包括:数据操作事件对应的业务标识、数据操作事件所针对的目标数据表的标识、数据操作事件的类型、源数据库标识和目标数据库标识。
进一步地,在本发明的实施例中,基于前述方案,所述同步单元530配置为:若所述数据操作记录中的数据操作事件的类型为插入数据,则根据所述业务标识从所述源数据库中提取相应的数据,并将提取出的数据插入到所述目标数据库中对应的数据表中;若所述数据操作记录中的数据操作事件的类型为更新数据,则根据所述业务标识从所述源数据库中提取相应的数据,并根据提取出的数据更新所述目标数据库中对应的数据;若所述数据操作记录中的数据操作事件的类型为删除数据,则根据所述业务标识删除所述目标数据库中对应的数据。
此外,在本发明的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
下面参考图6,其示出了适于用来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备的计算机系统600仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的数据同步方法。
例如,所述电子设备可以实现如图2中所示的:步骤S210,通过设置在源数据库中的触发器监测所述源数据库中发生的数据操作事件;步骤S220,基于监测到的数据操作事件,生成对应的数据操作记录;以及步骤S230,根据所述数据操作记录,对所述源数据库与目标数据库进行同步。
又如,所述电子设备可以实现如图3至图4中所示的各个步骤。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (6)
1.一种数据同步方法,其特征在于,包括:
通过设置在源数据库中的触发器监测所述源数据库中发生的数据操作事件,所述数据操作事件包括插入数据的事件、删除数据的事件,以及更新数据的事件;
基于监测到的数据操作事件,生成对应的数据操作记录,将所述数据操作记录存储至预先创建的同步日志表,所述同步日志表存储的所述数据操作记录包括数据操作事件对应的业务标识、数据操作事件所针对的目标数据表的标识、数据操作事件的类型、源数据库标识和目标数据库标识、数据操作事件的发生时间;以及
通过主线程按照预定的周期定时从所述同步日志表中抓取预定数量的所述数据操作记录,并根据所述预定数量和子线程的数量将抓取的数据操作记录分发给多个子线程,其中,所述主线程为守护线程;通过各所述子线程并行地根据分发到的数据操作记录对所述源数据库与所述目标数据库进行同步;
其中,所述通过各所述子线程并行地根据分发到的数据操作记录对所述源数据库与所述目标数据库进行同步,包括:
若所述数据操作记录中的数据操作事件的类型为插入数据,则所述子线程根据与插入数据操作事件对应的业务标识抓取源数据库的数据表中插入的相应数据,并将所述数据插入到目标数据库中对应的数据表中;
若所述数据操作记录中的数据操作事件的类型为更新数据,则所述子线程根据与更新数据操作对应的业务标识抓取源数据库的数据表中更新的相应数据,并将所述数据更新到所述目标数据库中对应的数据表中;
若所述数据操作记录中的数据操作事件的类型为删除数据,则所述子线程根据与删除数据操作对应的业务标识从所述目标数据库中的对应的数据表中删除对应的数据。
2.根据权利要求1所述的数据同步方法,其特征在于,所述源数据库中需要同步的每张数据表中都设置有所述触发器。
3.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
抓取所述数据操作记录,并将抓取的数据操作记录放入消息队列中;
依次根据所述消息队列中的每条数据操作记录,对所述源数据库与所述目标数据库进行同步。
4.一种数据同步装置,其特征在于,包括:
监测单元,用于通过设置在源数据库中的触发器监测所述源数据库中发生的数据操作事件,所述数据操作事件包括插入数据的事件、删除数据的事件,以及更新数据的事件;
记录生成单元,用于基于监测到的数据操作事件,生成对应的数据操作记录,将所述数据操作记录存储至预先创建的同步日志表,所述同步日志表存储的所述数据操作记录包括数据操作事件对应的业务标识、数据操作事件所针对的目标数据表的标识、数据操作事件的类型、源数据库标识和目标数据库标识、数据操作事件的发生时间;
抓取单元,用于通过主线程按照预定的周期定时从所述同步日志表抓取预定数量的所述数据操作记录,并根据所述预定数量和子线程的数量将抓取的数据操作记录分发给多个子线程,其中,所述主线程为守护线程;
执行单元,用于通过各所述子线程并行地根据分发到的数据操作记录对所述源数据库与所述目标数据库进行同步;
其中,所述通过各所述个子线程并行地根据分发到的数据操作记录对所述源数据库与所述目标数据库进行同步,包括:
若所述数据操作记录中的数据操作事件的类型为插入数据,则所述子线程根据与插入数据操作事件对应的业务标识抓取源数据库的数据表中插入的相应数据,并将所述数据插入到目标数据库中对应的数据表中;
若所述数据操作记录中的数据操作事件的类型为更新数据,则所述子线程根据与更新数据操作对应的业务标识抓取源数据库的数据表中更新的相应数据,并将所述数据更新到所述目标数据库中对应的数据表中;
若所述数据操作记录中的数据操作事件的类型为删除数据,则所述子线程根据与删除数据操作对应的业务标识从所述目标数据库中的对应的数据表中删除对应的数据。
5.一种电子设备,其特征在于,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至3中任一项所述的数据同步方法。
6.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710896077.5A CN107590277B (zh) | 2017-09-28 | 2017-09-28 | 数据同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710896077.5A CN107590277B (zh) | 2017-09-28 | 2017-09-28 | 数据同步方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590277A CN107590277A (zh) | 2018-01-16 |
CN107590277B true CN107590277B (zh) | 2021-06-25 |
Family
ID=61047923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710896077.5A Active CN107590277B (zh) | 2017-09-28 | 2017-09-28 | 数据同步方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590277B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595522A (zh) * | 2018-03-27 | 2018-09-28 | 北京明朝万达科技股份有限公司 | 一种增量同步方法、装置及系统 |
CN108897794B (zh) * | 2018-06-12 | 2020-11-27 | 东软集团股份有限公司 | 无主键数据表的同步方法、装置、存储介质和电子设备 |
CN109241174B (zh) * | 2018-06-26 | 2021-04-16 | 东软集团股份有限公司 | 数据同步方法、装置、可读存储介质和电子设备 |
CN109241175B (zh) * | 2018-06-28 | 2021-06-04 | 东软集团股份有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN109344142B (zh) * | 2018-08-22 | 2023-05-30 | 中国平安人寿保险股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN110888661A (zh) * | 2018-09-11 | 2020-03-17 | 传线网络科技(上海)有限公司 | 数据同步方法及装置 |
CN109165261A (zh) * | 2018-10-10 | 2019-01-08 | 深圳市欧瑞博科技有限公司 | 数据同步方法、装置、服务器及计算机存储介质 |
CN109657004A (zh) * | 2018-12-10 | 2019-04-19 | 北京明朝万达科技股份有限公司 | 一种数据同步方法及装置 |
CN109753494B (zh) * | 2019-01-04 | 2021-05-25 | 北京环境特性研究所 | 一种目标特性数据库系统和数据同步方法 |
CN110321383A (zh) * | 2019-05-20 | 2019-10-11 | 平安普惠企业管理有限公司 | 大数据平台数据同步方法、装置、计算机设备及存储介质 |
CN110377602A (zh) * | 2019-06-27 | 2019-10-25 | 广州市正盟计算机科技有限公司 | 一种数据同步方法、系统和存储介质 |
CN110473087A (zh) * | 2019-08-22 | 2019-11-19 | 中国银行股份有限公司 | 交易数据记录方法及装置 |
CN111061745A (zh) * | 2019-10-10 | 2020-04-24 | 望海康信(北京)科技股份公司 | 数据同步系统及方法 |
CN113127241B (zh) * | 2019-12-31 | 2023-08-22 | 华为技术有限公司 | 日志抓取方法、装置、终端设备及可读存储介质 |
CN113515569B (zh) * | 2020-04-09 | 2023-12-26 | 阿里巴巴集团控股有限公司 | 数据的同步方法、装置、系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477546A (zh) * | 2002-08-19 | 2004-02-25 | 万达信息股份有限公司 | 一种在两个数据库间进行相同数据表数据复制的方法 |
CN104601562B (zh) * | 2015-01-04 | 2017-12-22 | 福建天晴数码有限公司 | 游戏服务器与数据库的交互方法和系统 |
CN105989123A (zh) * | 2015-02-13 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置和系统 |
CN106354817B (zh) * | 2016-08-30 | 2020-09-04 | 苏州创意云网络科技有限公司 | 一种日志的处理方法及装置 |
CN106844682B (zh) * | 2017-01-25 | 2019-08-16 | 北京百分点信息科技有限公司 | 数据交换方法、装置及系统 |
-
2017
- 2017-09-28 CN CN201710896077.5A patent/CN107590277B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107590277A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590277B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN108536761B (zh) | 报表数据查询方法及服务器 | |
US11455217B2 (en) | Transaction consistency query support for replicated data from recovery log to external data stores | |
TWI628551B (zh) | Data library copying method and device based on log parsing | |
CN108073625B (zh) | 用于元数据信息管理的系统及方法 | |
US20180341658A1 (en) | Lineage data for big data records | |
CN107748752B (zh) | 一种数据处理方法及装置 | |
US9026493B1 (en) | Multi-master RDBMS improvements for distributed computing environment | |
US20160179836A1 (en) | Method for updating data table of keyvalue database and apparatus for updating table data | |
US11132376B2 (en) | System and method for management of a database system | |
CN111625552B (zh) | 数据收集方法、装置、设备和可读存储介质 | |
WO2023000785A1 (zh) | 用于处理数据的方法、装置、系统、服务器和介质 | |
CN112364052A (zh) | 异构数据管理方法、装置、设备和计算机可读存储介质 | |
CN104462342A (zh) | 数据库快照同步处理方法及装置 | |
CN110704417A (zh) | 一种元数据管理方法、设备及存储介质 | |
CN116775712A (zh) | 联表查询方法、装置、电子设备、分布式系统和存储介质 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN111753141A (zh) | 一种数据管理方法及相关设备 | |
US20180196858A1 (en) | Api driven etl for complex data lakes | |
CN110879818B (zh) | 一种获取数据的方法、装置、介质和电子设备 | |
CN104125100A (zh) | 一种通信网管中dashboard实时监控的方法 | |
CN111143329A (zh) | 一种数据处理方法及装置 | |
US20170286515A1 (en) | Supplementing change streams | |
WO2015184830A1 (zh) | 一种设备中管理文件的方法和装置 | |
CN113553320B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Floor 36, Zheshang Building, No. 718 Jianshe Avenue, Jiang'an District, Wuhan, Hubei 430019 Patentee after: TK.CN INSURANCE Co.,Ltd. Patentee after: TAIKANG INSURANCE GROUP Co.,Ltd. Address before: 156 fuxingmennei street, Xicheng District, Beijing 100031 Patentee before: TAIKANG INSURANCE GROUP Co.,Ltd. Patentee before: TK.CN INSURANCE Co.,Ltd. |