CN106649378A - 一种数据同步方法及装置 - Google Patents

一种数据同步方法及装置 Download PDF

Info

Publication number
CN106649378A
CN106649378A CN201510731887.6A CN201510731887A CN106649378A CN 106649378 A CN106649378 A CN 106649378A CN 201510731887 A CN201510731887 A CN 201510731887A CN 106649378 A CN106649378 A CN 106649378A
Authority
CN
China
Prior art keywords
data
source
database
delta
target database
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.)
Granted
Application number
CN201510731887.6A
Other languages
English (en)
Other versions
CN106649378B (zh
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.)
New Founder Holdings Development Co ltd
Beijing Founder Electronics Co Ltd
Original Assignee
Peking University Founder Group Co Ltd
Beijing Founder Electronics 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 Peking University Founder Group Co Ltd, Beijing Founder Electronics Co Ltd filed Critical Peking University Founder Group Co Ltd
Priority to CN201510731887.6A priority Critical patent/CN106649378B/zh
Publication of CN106649378A publication Critical patent/CN106649378A/zh
Application granted granted Critical
Publication of CN106649378B publication Critical patent/CN106649378B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据同步方法及装置,应用于多级异构数据库,该方法包括:获取每个源数据库与目标数据库之间的关联关系,关联关系至少包括源数据库中的每个源数据表与目标数据库中的待同步数据表之间的映射关系以及第一数据转换公式;在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息;在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令;将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。本发明提供的数据同步方法及装置,无需改变数据库系统原有的程序逻辑,能够支持不同数据表模式的数据同步,具有足够的灵活性。

Description

一种数据同步方法及装置
技术领域
本发明涉及数据库领域,特别涉及一种数据同步方法及装置。
背景技术
在全球数字化发展的背景下,信息技术和网络技术的飞速发展,数据库技术也由集中式向分布式逐渐演变。比如对于一些地域上分散而管理相对集中的企业来说,通过搭建分布式数据库系统增加数据副本,来提高系统的可靠性,成为一种主流趋势。
数据同步作为维护分布式数据库系统的数据一致性的主要技术手段,有着重要意义。这是由于一致的多个数据副本能提供更多的数据服务,进而增大数据访问吞吐量,增强数据可用性;能够使用户应用只需要访问本地副本而无需访问远程数据,进而减少数据访问延迟,提高用户应用的性能;应对不可预测因素造成的数据丢失,进而保证数据可靠性。
而分布式数据库系统之间的数据同步,主要有以下两个问题:数据库各个系统开发时间与环境不一致,所采用的数据库工具与所设计的数据库表一般差异较大,因此各业务系统之间数据交换和共享难以进行;各业务系统在更新换代过程中,为了让用户拥有一段时间的适应期,出现的新旧系统同时运行的过渡阶段,这种情况下,新旧系统的数据库可能出现重构,并且旧系统中发生的数据变化需要实用同步更新到新系统中。
也就是说,数据同步的难题主要集中在两个方面:在数据异构性上涉及了数据类型不同和数据表模式不同两个因素;在数据传播方向上是由下级系统向上级系统进行同步,由旧系统向新系统进行同步。
在现有技术中,数据库同步的产品通常或者对于异构数据库的支持较弱,或者不具备足够的灵活性,主要表现为以下问题:
第一,在数据库的异构性上,现有的数据库复制产品虽然能够支持不同数据类型的转换,但是不能够支持不同数据表模式的数据同步。
第二,在数据同步周期上,现有的数据库复制产品可以按照设定的周期去检查并执行同步,但是对于不同类别的数据库,这种周期往往只限于两个数据库之间,这意味着拥有多个多种数据库的数据同步应用,倘若要更改数据同步周期,那么就需要逐一修改各个数据库的同步时间设置,过程十分繁琐。
第三,在数据同步处理上,现有的数据库复制产品只能处理两个表、两个字段之间的对应类型转换,如果一张表中的字段需要根据另一张表中的一个或多个字段进行求值运算得到,则现有技术方案难以处理。
发明内容
本发明提供了一种数据同步方法及装置,其目的是为了解决现有的数据库同步技术对异构数据库的支持较弱,不具备足够的灵活性的问题。
为了达到上述目的,本发明的实施例提供了一种数据同步方法,应用于多级异构数据库,该方法包括:
获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式;
在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息;
在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令;
将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
优选地,获取目标数据库与所有源数据库之间的关联关系之前,该方法包括:
获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式;
对所有的第二数据转换公式进行分析计算,得到第一数据转换公式。
优选地,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。
优选地,在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,具体包括:
为每个源数据库分别创建一个控制表;
在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,并将变化数据的标识信息存储在源数据库对应的控制表中。
优选地,在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令,具体包括:
在同步周期内,根据变化数据所在源数据表的表名以及关联关系中的映射关系,确定对应的目标数据库中的待同步数据表;
根据变化数据所在源数据表的主键值、变化数据的变化类型值以及第一数据转换公式,生成待同步数据表对应的数据同步指令,并将变化数据的变化时间作为数据同步指令的下达时间。
优选地,将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库之后,该方法还包括:
获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。
优选地,获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言的步骤之后,该方法还包括:
获取目标数据库对与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:
当执行结果为已执行时,删除控制表中对应的变化数据的标识信息。
为了实现上述目的,本发明的实施例还提供了一种数据同步装置,应用于多级异构数据库,该装置包括:
获取模块,用于获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式;
标识获取模块,用于在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息;
生成模块,用于在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令;
发送模块,用于将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
优选地,数据同步装置包括:
映射获取模块,用于在获取模块获取目标数据库与所有源数据库之间的关联关系之前,获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式;
分析模块,用于对所有的第二数据转换公式进行分析计算,得到第一数据转换公式。
优选地,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。
优选地,标识获取模块具体包括:
创建子模块,用于为每个源数据库分别创建一个控制表;
存储子模块,用于在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,并将变化数据的标识信息存储在源数据库对应的控制表中。
优选地,生成模块具体包括:
确定子模块,用于在同步周期内,根据变化数据所在源数据表的表名以及关联关系中的映射关系,确定对应的目标数据库中的待同步数据表;
指令生成子模块,用于根据变化数据所在源数据表的主键值、变化数据的变化类型值以及第一数据转换公式,生成待同步数据表对应的数据同步指令,并将变化数据的变化时间作为数据同步指令的下达时间。
优选地,该装置还包括:
执行模块,用于在发送模块将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库之后,
获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。
优选地,该装置还包括:
删除模块,用于在执行模块获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言之后,
获取目标数据库对与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:
当执行结果为已执行时,删除控制表中对应的变化数据的标识信息。
本发明的上述方案至少包括以下有益效果:
本发明提供的数据同步方法及装置,无需改变数据库系统原有的程序逻辑,通过获取源数据库中变化数据的标识信息,再根据关联关系将变化数据的信息转换成针对目标数据库的数据同步指令,能够支持不同数据表模式的数据同步,对异构数据库的支持程度较强;本发明可独立主动设置数据同步周期,不受限于源数据库和目标数据库的同步周期,方便更改;且本发明中关联关系中的第一数据转换公式不仅可以是数据类型转换,还可以是数据值的精确值计算以及一些汇总、求和计算等,具有足够的灵活性。
附图说明
图1为本发明的第一实施例提供的数据同步方法的步骤流程图;
图2为本发明的第二实施例提供的数据同步方法的步骤流程图;
图3为本发明的第三实施例提供的数据同步方法的步骤流程图;
图4为本发明的第四实施例提供的数据同步方法的步骤流程图;
图5为本发明的第五实施例提供的数据同步装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
通常情况下,异构数据库之间数据同步的难题主要集中在两个方面:在数据异构性上涉及了数据类型不同和数据表模式不同两个因素;在数据传播方向上是由下级系统向上级系统进行同步,由旧系统向新系统进行同步。而在现有技术中,数据库同步的产品通常或者对于异构数据库的支持较弱,或者不具备足够的灵活性。因此,本发明的实施例提供了一种数据同步方法及装置。
第一实施例
参见图1,本发明针对现有的问题,提供了一种数据同步方法,应用于多级异构数据库,该方法包括:
步骤101,获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式。
其中,映射关系即每个源数据库与目标数据库之间的对应关系;第一数据转换公式即源数据库与目标数据库之间具体的数据对应关系,可以包括数据类型的转换,数据值的精确值计算以及一些汇总、求和计算等。
步骤102,在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息。
优选地,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。
其中,变化类型值即预设的代表变化类型的数值,比如插入操作的变化类型值为0,删除操作的变化类型值为1,更新操作的变化类型值为2等。
步骤103,在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令。
其中,根据源数据库的变化数据的标识信息以及源数据库与目标数据库之间的关联关系,生成针对目标数据库的数据同步指令,数据同步指令用于指示目标数据库根据关联关系,同步源数据库中的数据变化。
步骤104,将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
本发明的上述实施例中,无需改变数据库系统原有的程序逻辑,通过获取源数据库中变化数据的标识信息,再根据关联关系将变化数据的信息转换成针对目标数据库的数据同步指令,能够支持不同数据表模式的数据同步,对异构数据库的支持程度较强;本发明可独立主动设置数据同步周期,不受限于源数据库和目标数据库的同步周期,方便更改;且本发明中关联关系中的第一数据转换公式不仅可以是数据类型转换,还可以是数据值的精确值计算以及一些汇总、求和计算等,具有足够的灵活性。
第二实施例
参见图2,本发明的第二实施例提供了一种数据同步方法,应用于多级异构数据库,该方法包括:
步骤201,获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式。
其中,映射关系是待同步数据表与每一个源数据表之间的映射关系,第二数据转换公式是待同步数据表与每一个源数据表之间具体的数据对应关系,可以包括数据类型的转换,数据值的精确值计算以及一些汇总、求和计算等。
步骤202,对所有的所述第二数据转换公式进行分析计算,得到第一数据转换公式。
其中,对目标数据库的所有待同步数据表的第二数据转换公式进行分析计算,得到一个总的数据转换公式,即第一数据转换公式。
步骤203,获取每个源数据库与目标数据库之间的关联关系,关联关系至少包括源数据库中的每个源数据表与目标数据库中的待同步数据表之间的映射关系以及第一数据转换公式。
步骤204,在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息。
优选地,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。
步骤205,在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令。
步骤206,将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
下面以一个Oracle数据库中为例,介绍一下本实施例,表1和表2为作为源数据表的人事数据表,表3为作为待同步数据表的雇员信息表:
表1:
字段名 数据类型 备注
ID varchar(30) 主键值--员工号
Xingming varchar(30) 姓名
Dianhua varchar(15) 电话
Dizhi varchar(100) 地址
表2:
字段名 数据类型 备注
ID varchar(30) 主键值--员工号
Zhiwei varchar(30) 职位
Xingbie varchar(5) 性别
表3:
字段名 数据类型 备注
staffId VARchar2(30) 主键值---员工号
name VARchar2(30) 姓名
telephone VARchar2(15) 电话
address VARchar2(100) 地址
age INT 年龄
position VARchar2(30) 职位
sex NUMBER(1) 性别
其中,表3需要同时同步表1和表2的数据。
首先获取表3与表1之间的映射关系以及第二数据转换公式(比如第二数据转换公式为:xingming=name,dianhua=telephone,dizhi=address)以及,
表3与表2之间的映射关系以及第二数据转换公式(比如第二数据转换公式为:xingming=name,当前年份shengri中的年份=age,zhiwei=position,xingbie=sex);
再对表3的两个第二数据转换公式进行分析计算,得到第一数据转换公式{比如第一数据转换公式为:xingming=name,dianhua=telephone(表1),dizhi=address(表1),当前年份shengri中的年份=age(表1),zhiwei=position(表1),xingbie=sex(表1)}。
当检测到源数据库中数据发生变化时,获取源数据库中变化数据的标识信息,再根据关联关系将变化数据的信息转换成针对目标数据库的数据同步指令即可。
本发明的上述实施例中,通过对目标数据库中的待同步数据表的与所有源数据表之间的数据转换公式(第二数据转换公式)进行分析计算,得到该待同步数据表与所有源数据库之间的一个总的数据转换公式(第一数据转换公式),使数据同步的过程条理清晰,当源数据库中数据变化时间,通过第一数据转换公式直接可同步到目标数据库中,无需再逐级更改,减小了工作量,对异构数据库的支持程度较强。
第三实施例
参见图3,本发明的第三实施例提供了一种数据同步方法,应用于多级异构数据库,该方法包括:
步骤301,获取每个源数据库与目标数据库之间的关联关系,关联关系至少包括源数据库中的每个源数据表与目标数据库中的待同步数据表之间的映射关系以及第一数据转换公式。
步骤302,为每个源数据库分别创建一个控制表。
其中,控制表用于存储源数据库中的数据变化情况;控制表可以存储在源数据库中或者存储在数据代理中。
步骤303,在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,并将变化数据的标识信息存储在源数据库对应的控制表中。
优选地,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。
步骤304,在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令。
步骤305,将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
下面以关系数据库管理系统(SQL Server)为例,介绍一下本实施例。
获取每个源数据库与目标数据库之间的关联关系之后,为每个数据库创建一个控制表,控制表结构可如表4所示:
表4:
其中,tableName为源数据表的表名,dataKey为主键值,data为数据变化时间,type为数据变化类型值。
在一预设的同步周期内,当检测到源数据库中的数据发生变化时,将变化数据所在数据表的表名、主键值、变化时间以及变化类型值分别存储在上述控制表中;
具体地,以人事信息表(表名为staff)为例,当检测到源数据库中的人事信息表中,在2015-5-5,09:23:46增加了一位员工,该员工的信息如表5所示:
表5:
则控制表中记录的信息如表6所示:
表6:
tableName dataKey date type
staff 031010200764 2015-5-509:23:46 1
然后,在同步周期内,根据关联关系以及控制表中记录的变化数据的标识信息,生成数据同步指令并将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
本发明的上述实施例中,目标数据库可以是多个,也可以是不同的数据表模式,根据每个目标数据库与源数据库之间的关联关系,将控制表中记录的变化数据转换成该目标数据库对应的数据同步指令即可。
本发明的上述实施例中,为源数据库创建控制表,在控制表中对同一个变化数据信息始终保持一个有效记录,无需针对每一个目标数据库均保持一个单独的记录,从而节约了数据库空间;且变化数据的关键信息都会记录到控制表中,可根据控制表中的表名和数据标识可以在对应源数据表中提取完整的数据信息。
第四实施例
参见图4,本发明的第四实施例提供了一种数据同步方法,应用于多级异构数据库,该方法包括:
步骤401,获取每个源数据库与目标数据库之间的关联关系,关联关系至少包括源数据库中的每个源数据表与目标数据库中的待同步数据表之间的映射关系以及第一数据转换公式。
步骤402,为每个源数据库分别创建一个控制表。
步骤403,在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,并将变化数据的标识信息存储在源数据库对应的控制表中。
步骤404,在同步周期内,根据变化数据所在源数据表的表名以及关联关系中的映射关系,确定对应的目标数据库中的待同步数据表;
其中,通过映射关系找到源数据表的表名对应的待同步数据表。
步骤405,根据变化数据所在源数据表的主键值、变化数据的变化类型值以及第一数据转换公式,生成待同步数据表对应的数据同步指令,并将变化数据的变化时间作为数据同步指令的下达时间。
其中,根据关联关系,先从源数据库中提取出变化数据要同步的数据字段信息,然后根据关联关系中的第一数据转换公式,生成待同步数据表对应的数据同步指令,第一数据转换公式包括数据类型的转换,数据值的精确值计算以及一些汇总、求和计算等。
由于各个数据库之间的数据同步周期不一定一致,将变化数据的变化时间作为数据同步指令的下达时间,目的是使目标数据库根据数据同步指令的下达时间执行与当前时间最接近的数据同步指令。
步骤406,将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
其中,根据数据同步指令构造出对应目标数据库的结构化查询语言(SQL)并发送给目的数据库,使目标数据执行数据同步指令。
下面以一个Oracle数据库中为例,介绍一下本实施例,表7为作为源数据表的人事数据表,表7为作为待同步数据表的雇员信息表:
表7:
字段名 数据类型 备注
ID varchar(30) 主键值--员工号
Xingming varchar(30) 姓名
Dianhua varchar(15) 电话
Dizhi varchar(100) 地址
Shengri varchar(15) 生日
Zhiwei varchar(30) 职位
Xingbie varchar(5) 性别
Xueli varchar(30) 学历
表8:
字段名 数据类型 备注
staffId VARchar2(30) 主键值---员工号
name VARchar2(30) 姓名
telephone VARchar2(15) 电话
address VARchar2(100) 地址
age INT 年龄
position VARchar2(30) 职位
sex NUMBER(1) 性别
employedDate DATE 入职时间
superior VARchar2(30) 外键---领导员工号
rank NUMBER(2) 工资水平
根据表7和表8可知,关联关系为:xingming对应name,dianhua对应telephone,dizhi对应address,shengri对应age,zhiwei对应position,xingbie对应sex,;根据关联关系,先从源数据库中提取出变化数据要同步的数据字段信息,然后根据关联关系中的第一数据转换公式,生成待同步数据表对应的数据同步指令,其中,xingming与name,dianhua与telephone,dizhi与address,,zhiwei与position,xingbie与sex之间数据需无需转换(第一数据转换公式可以为xingming=name),直接同步即可;而shengri与age之间是需要以当前年份为基准进行计算;
将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。其中,该数据同步指令对应的可拓展标记语言文件如下所示:
其中,对于生日到年龄的转换计算,根据关联关系描述的计算方式,以当前年份为基准进行计算。
本发明的上述实施例中,无需改变数据库系统原有的程序逻辑,根据关联关系,先从源数据库中提取出变化数据要同步的数据字段信息,然后根据关联关系中的第一数据转换公式,生成待同步数据表对应的数据同步指令并封装成相应的SQL,能够支持不同数据表模式的数据同步,对异构数据库的支持程度较强,且本发明中关联关系中的第一数据转换公式不仅可以是数据类型转换,还可以是数据值的精确值计算以及一些汇总、求和计算等,具有足够的灵活性。
本发明的上述实施例中,步骤406之后,该方法还包括:
获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。
其中,根据数据同步指令的下达时间执行相应的SQL,使数据同步不受源数据库与目标数据库各自的数据同步周期影响。
本发明的上述实施例中,获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言的步骤之后,该方法还包括:
获取目标数据库对与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:
当执行结果为已执行时,删除控制表中对应的变化数据的标识信息。
其中,删除变化数据的标识信息目的是释放内存,节省数据空间。
第五实施例
参见图5,本发明的第四实施例还提供了一种数据同步装置,应用于多级异构数据库,该装置包括:
获取模块501,用于获取每个源数据库与目标数据库之间的关联关系,关联关系至少包括源数据库中的每个源数据表与目标数据库中的待同步数据表之间的映射关系以及第一数据转换公式。
标识获取模块502,用于在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息。
生成模块503,用于在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令。
发送模块504,用于将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。
本发明的上述实施例中,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。
本发明的上述实施例中,数据同步装置包括:
映射获取模块,用于在获取模块获取目标数据库与所有源数据库之间的关联关系之前,获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式。
分析模块,用于对所有的第二数据转换公式进行分析计算,得到第一数据转换公式。
本发明的上述实施例中,标识获取模块502具体包括:
创建子模块,用于为每个源数据库分别创建一个控制表;
存储子模块,用于在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,并将变化数据的标识信息存储在源数据库对应的控制表中。
本发明的上述实施例中,生成模块503具体包括:
确定子模块,用于在同步周期内,根据变化数据所在源数据表的表名以及关联关系中的映射关系,确定对应的目标数据库中的待同步数据表。
指令生成子模块,用于根据变化数据所在源数据表的主键值、变化数据的变化类型值以及第一数据转换公式,生成待同步数据表对应的数据同步指令,并将变化数据的变化时间作为数据同步指令的下达时间。
本发明的上述实施例中,该装置还包括:
执行模块,用于在发送模块将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库之后,
获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。
本发明的上述实施例中,该装置还包括:
删除模块,用于在执行模块获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言之后,
获取目标数据库对与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:
当执行结果为已执行时,删除控制表中对应的变化数据的标识信息。
需要说明的是,本发明实施例提供的数据同步装置是应用上述方法的装置,即上述方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种数据同步方法,应用于多级异构数据库,其特征在于,所述方法包括:
获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式;
在一预设的同步周期内,当检测到所述源数据库中的数据发生变化时,获取变化数据的标识信息;
在所述同步周期内,根据所述关联关系以及所述变化数据的标识信息,生成数据同步指令;
将所述数据同步指令封装成所述目标数据库对应的结构化查询语言,发送给所述目标数据库。
2.如权利要求1所述的数据同步方法,其特征在于,所述获取目标数据库与所有源数据库之间的关联关系之前,所述方法包括:
获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式;
对所有的所述第二数据转换公式进行分析计算,得到第一数据转换公式。
3.如权利要求1所述的数据同步方法,其特征在于,所述变化数据的标识信息至少包括:所述变化数据所在源数据表的表名、所述变化数据所在源数据表的主键值、所述变化数据的变化类型值和所述变化数据的变化时间。
4.如权利要求3所述的数据同步方法,其特征在于,所述在一预设周期内,当检测到所述源数据库中的数据发生变化时,获取变化数据的标识信息,具体包括:
为每个所述源数据库分别创建一个控制表;
在一预设周期内,当检测到所述源数据库中的数据发生变化时,获取变化数据的标识信息,并将所述变化数据的标识信息存储在所述源数据库对应的控制表中。
5.如权利要求4所述的数据同步方法,其特征在于,所述在所述同步周期内,根据所述关联关系以及所述变化数据的标识信息,生成数据同步指令,具体包括:
在所述同步周期内,根据所述变化数据所在源数据表的表名以及所述关联关系中的映射关系,确定对应的所述目标数据库中的待同步数据表;
根据所述变化数据所在源数据表的主键值、所述变化数据的变化类型值以及第一数据转换公式,生成所述待同步数据表对应的数据同步指令,并将所述变化数据的变化时间作为所述数据同步指令的下达时间。
6.如权利要求5所述的数据同步方法,其特征在于,所述将所述数据同步指令封装成所述目标数据库对应的结构化查询语言,发送给所述目标数据库之后,所述方法还包括:
获取所述数据同步指令的下达时间,使所述目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。
7.如权利要求6所述的数据同步方法,其特征在于,所述获取所述数据同步指令的下达时间,使所述目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言的步骤之后,所述方法还包括:
获取所述目标数据库对所述与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:
当所述执行结果为已执行时,删除所述控制表中对应的变化数据的标识信息。
8.一种数据同步装置,应用于多级异构数据库,其特征在于,所述装置包括:
获取模块,用于获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式;
标识获取模块,用于在一预设的同步周期内,当检测到所述源数据库中的数据发生变化时,获取变化数据的标识信息;
生成模块,用于在所述同步周期内,根据所述关联关系以及所述变化数据的标识信息,生成数据同步指令;
发送模块,用于将所述数据同步指令封装成所述目标数据库对应的结构化查询语言,发送给所述目标数据库。
9.如权利要求8所述的数据同步装置,其特征在于,所述数据同步装置包括:
映射获取模块,用于在所述获取模块获取目标数据库与所有源数据库之间的关联关系之前,获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式;
分析模块,用于对所有的所述第二数据转换公式进行分析计算,得到第一数据转换公式。
10.如权利要求8所述的数据同步装置,其特征在于,所述变化数据的标识信息至少包括:所述变化数据所在源数据表的表名、所述变化数据所在源数据表的主键值、所述变化数据的变化类型值和所述变化数据的变化时间。
11.如权利要求10所述的数据同步装置,其特征在于,所述标识获取模块具体包括:
创建子模块,用于为每个所述源数据库分别创建一个控制表;
存储子模块,用于在一预设周期内,当检测到所述源数据库中的数据发生变化时,获取变化数据的标识信息,并将所述变化数据的标识信息存储在所述源数据库对应的控制表中。
12.如权利要求11所述的数据同步装置,其特征在于,所述生成模块具体包括:
确定子模块,用于在所述同步周期内,根据所述变化数据所在源数据表的表名以及所述关联关系中的映射关系,确定对应的所述目标数据库中的待同步数据表;
指令生成子模块,用于根据所述变化数据所在源数据表的主键值、所述变化数据的变化类型值以及第一数据转换公式,生成所述待同步数据表对应的数据同步指令,并将所述变化数据的变化时间作为所述数据同步指令的下达时间。
13.如权利要求12所述的数据同步装置,其特征在于,所述装置还包括:
执行模块,用于在所述发送模块将所述数据同步指令封装成所述目标数据库对应的结构化查询语言,发送给所述目标数据库之后,
获取所述数据同步指令的下达时间,使所述目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。
14.如权利要求13所述的数据同步装置,其特征在于,所述装置还包括:
删除模块,用于在所述执行模块获取所述数据同步指令的下达时间,使所述目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言之后,
获取所述目标数据库对所述与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:
当所述执行结果为已执行时,删除所述控制表中对应的变化数据的标识信息。
CN201510731887.6A 2015-11-02 2015-11-02 一种数据同步方法及装置 Expired - Fee Related CN106649378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510731887.6A CN106649378B (zh) 2015-11-02 2015-11-02 一种数据同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510731887.6A CN106649378B (zh) 2015-11-02 2015-11-02 一种数据同步方法及装置

Publications (2)

Publication Number Publication Date
CN106649378A true CN106649378A (zh) 2017-05-10
CN106649378B CN106649378B (zh) 2020-07-14

Family

ID=58809572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510731887.6A Expired - Fee Related CN106649378B (zh) 2015-11-02 2015-11-02 一种数据同步方法及装置

Country Status (1)

Country Link
CN (1) CN106649378B (zh)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632906A (zh) * 2017-09-30 2018-01-26 北京九桥同步软件有限公司 数据库数据备份方法及装置
CN108121757A (zh) * 2017-11-10 2018-06-05 广州优视网络科技有限公司 一种数据同步方法、装置、系统、计算设备及存储介质
CN108197164A (zh) * 2017-12-14 2018-06-22 泰康保险集团股份有限公司 业务数据保存方法及装置
CN108228814A (zh) * 2017-12-29 2018-06-29 泰康保险集团股份有限公司 数据同步方法及装置
CN109167819A (zh) * 2018-08-13 2019-01-08 苏州科达科技股份有限公司 数据同步系统、方法、装置及存储介质
CN109254997A (zh) * 2018-08-27 2019-01-22 广州城市信息研究所有限公司 数据同步方法、系统、计算机设备和可读存储介质
CN109325037A (zh) * 2018-08-17 2019-02-12 中国平安人寿保险股份有限公司 一种针对海量数据的数据同步方法、存储介质和服务器
CN109389510A (zh) * 2018-08-13 2019-02-26 中国平安人寿保险股份有限公司 电子装置、赔付率发生率计算方法及存储介质
CN109597687A (zh) * 2018-10-31 2019-04-09 东软集团股份有限公司 数据同步的资源分配方法、装置、存储介质和电子设备
CN109684404A (zh) * 2017-10-18 2019-04-26 中兴通讯股份有限公司 异构网络信息模型数据库同步的方法、主管控系统及存储介质
CN109684407A (zh) * 2018-11-23 2019-04-26 武汉达梦数据库有限公司 一种dml操作的数据同步方法
CN109783574A (zh) * 2018-12-25 2019-05-21 沈阳通用软件有限公司 一种高效的数据库备份方法
CN109976968A (zh) * 2017-12-27 2019-07-05 航天信息股份有限公司 一种获取数据库变化表数据的方法、装置、介质及设备
CN110012064A (zh) * 2019-02-22 2019-07-12 视联动力信息技术股份有限公司 一种数据同步的方法和系统
CN110232095A (zh) * 2019-05-21 2019-09-13 中国平安财产保险股份有限公司 一种数据同步方法、装置、存储介质和服务器
WO2019232832A1 (zh) * 2018-06-06 2019-12-12 平安科技(深圳)有限公司 数据监控方法、装置、计算机设备及存储介质
CN110990482A (zh) * 2019-11-11 2020-04-10 中国建设银行股份有限公司 异步数据库之间的数据同步方法及装置
CN111259104A (zh) * 2020-01-22 2020-06-09 山东浪潮通软信息科技有限公司 一种可定义规则的报表数据同步方法及装置
CN111708841A (zh) * 2020-06-08 2020-09-25 中国工商银行股份有限公司 数据库数据同步方法及装置
CN111881209A (zh) * 2020-06-29 2020-11-03 平安国际智慧城市科技股份有限公司 异构数据库的数据同步方法、装置、电子设备及介质
CN112131215A (zh) * 2019-06-25 2020-12-25 中国移动通信集团重庆有限公司 自底向上的数据库信息获取方法及装置
CN112328683A (zh) * 2020-11-02 2021-02-05 成都中科大旗软件股份有限公司 一种支持数据库与库直接的数据传输方法、系统及存储介质
CN112818020A (zh) * 2021-02-05 2021-05-18 远光软件股份有限公司 一种数据集成方法和装置
CN113407560A (zh) * 2021-08-19 2021-09-17 太平金融科技服务(上海)有限公司深圳分公司 更新消息处理方法、数据同步方法、配置信息配置方法
CN113761001A (zh) * 2020-09-08 2021-12-07 北京沃东天骏信息技术有限公司 一种跨系统数据同步方法和装置
CN113779138A (zh) * 2021-02-04 2021-12-10 北京京东振世信息技术有限公司 一种订单管理方法和装置
CN116821138A (zh) * 2023-08-24 2023-09-29 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542007A (zh) * 2011-12-13 2012-07-04 中国电子科技集团公司第十五研究所 关系型数据库之间的同步方法及系统
CN102915377A (zh) * 2012-11-14 2013-02-06 深圳市宏电技术股份有限公司 数据库转换或同步方法及系统
CN103440273A (zh) * 2013-08-06 2013-12-11 北京航空航天大学 一种数据跨平台迁移方法及装置
CN103544303A (zh) * 2013-10-31 2014-01-29 北京锐安科技有限公司 一种数据同步方法、系统和设备
CN103699580A (zh) * 2013-12-03 2014-04-02 中铁程科技有限责任公司 数据库同步方法及装置
CN104572672A (zh) * 2013-10-15 2015-04-29 北大方正集团有限公司 异构数据库的同步方法和应用系统
CN104809201A (zh) * 2015-04-24 2015-07-29 联动优势科技有限公司 一种数据库同步的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102542007A (zh) * 2011-12-13 2012-07-04 中国电子科技集团公司第十五研究所 关系型数据库之间的同步方法及系统
CN102915377A (zh) * 2012-11-14 2013-02-06 深圳市宏电技术股份有限公司 数据库转换或同步方法及系统
CN103440273A (zh) * 2013-08-06 2013-12-11 北京航空航天大学 一种数据跨平台迁移方法及装置
CN104572672A (zh) * 2013-10-15 2015-04-29 北大方正集团有限公司 异构数据库的同步方法和应用系统
CN103544303A (zh) * 2013-10-31 2014-01-29 北京锐安科技有限公司 一种数据同步方法、系统和设备
CN103699580A (zh) * 2013-12-03 2014-04-02 中铁程科技有限责任公司 数据库同步方法及装置
CN104809201A (zh) * 2015-04-24 2015-07-29 联动优势科技有限公司 一种数据库同步的方法和装置

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632906A (zh) * 2017-09-30 2018-01-26 北京九桥同步软件有限公司 数据库数据备份方法及装置
CN109684404B (zh) * 2017-10-18 2023-09-05 中兴通讯股份有限公司 异构网络信息模型数据库同步的方法、主管控系统及存储介质
CN109684404A (zh) * 2017-10-18 2019-04-26 中兴通讯股份有限公司 异构网络信息模型数据库同步的方法、主管控系统及存储介质
CN108121757A (zh) * 2017-11-10 2018-06-05 广州优视网络科技有限公司 一种数据同步方法、装置、系统、计算设备及存储介质
CN108197164A (zh) * 2017-12-14 2018-06-22 泰康保险集团股份有限公司 业务数据保存方法及装置
CN109976968A (zh) * 2017-12-27 2019-07-05 航天信息股份有限公司 一种获取数据库变化表数据的方法、装置、介质及设备
CN108228814A (zh) * 2017-12-29 2018-06-29 泰康保险集团股份有限公司 数据同步方法及装置
CN108228814B (zh) * 2017-12-29 2022-02-15 泰康保险集团股份有限公司 数据同步方法及装置
WO2019232832A1 (zh) * 2018-06-06 2019-12-12 平安科技(深圳)有限公司 数据监控方法、装置、计算机设备及存储介质
CN109167819A (zh) * 2018-08-13 2019-01-08 苏州科达科技股份有限公司 数据同步系统、方法、装置及存储介质
CN109389510A (zh) * 2018-08-13 2019-02-26 中国平安人寿保险股份有限公司 电子装置、赔付率发生率计算方法及存储介质
CN109325037A (zh) * 2018-08-17 2019-02-12 中国平安人寿保险股份有限公司 一种针对海量数据的数据同步方法、存储介质和服务器
CN109254997A (zh) * 2018-08-27 2019-01-22 广州城市信息研究所有限公司 数据同步方法、系统、计算机设备和可读存储介质
CN109597687A (zh) * 2018-10-31 2019-04-09 东软集团股份有限公司 数据同步的资源分配方法、装置、存储介质和电子设备
CN109684407A (zh) * 2018-11-23 2019-04-26 武汉达梦数据库有限公司 一种dml操作的数据同步方法
CN109783574A (zh) * 2018-12-25 2019-05-21 沈阳通用软件有限公司 一种高效的数据库备份方法
CN110012064A (zh) * 2019-02-22 2019-07-12 视联动力信息技术股份有限公司 一种数据同步的方法和系统
CN110012064B (zh) * 2019-02-22 2022-12-23 视联动力信息技术股份有限公司 一种数据同步的方法和系统
CN110232095A (zh) * 2019-05-21 2019-09-13 中国平安财产保险股份有限公司 一种数据同步方法、装置、存储介质和服务器
CN110232095B (zh) * 2019-05-21 2024-04-02 中国平安财产保险股份有限公司 一种数据同步方法、装置、存储介质和服务器
CN112131215B (zh) * 2019-06-25 2023-09-19 中国移动通信集团重庆有限公司 自底向上的数据库信息获取方法及装置
CN112131215A (zh) * 2019-06-25 2020-12-25 中国移动通信集团重庆有限公司 自底向上的数据库信息获取方法及装置
CN110990482A (zh) * 2019-11-11 2020-04-10 中国建设银行股份有限公司 异步数据库之间的数据同步方法及装置
CN111259104A (zh) * 2020-01-22 2020-06-09 山东浪潮通软信息科技有限公司 一种可定义规则的报表数据同步方法及装置
CN111708841A (zh) * 2020-06-08 2020-09-25 中国工商银行股份有限公司 数据库数据同步方法及装置
CN111708841B (zh) * 2020-06-08 2024-01-23 中国工商银行股份有限公司 数据库数据同步方法及装置
CN111881209A (zh) * 2020-06-29 2020-11-03 平安国际智慧城市科技股份有限公司 异构数据库的数据同步方法、装置、电子设备及介质
CN113761001A (zh) * 2020-09-08 2021-12-07 北京沃东天骏信息技术有限公司 一种跨系统数据同步方法和装置
CN112328683A (zh) * 2020-11-02 2021-02-05 成都中科大旗软件股份有限公司 一种支持数据库与库直接的数据传输方法、系统及存储介质
CN113779138A (zh) * 2021-02-04 2021-12-10 北京京东振世信息技术有限公司 一种订单管理方法和装置
CN112818020A (zh) * 2021-02-05 2021-05-18 远光软件股份有限公司 一种数据集成方法和装置
CN113407560A (zh) * 2021-08-19 2021-09-17 太平金融科技服务(上海)有限公司深圳分公司 更新消息处理方法、数据同步方法、配置信息配置方法
CN116821138A (zh) * 2023-08-24 2023-09-29 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN116821138B (zh) * 2023-08-24 2023-12-15 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备

Also Published As

Publication number Publication date
CN106649378B (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
CN106649378A (zh) 一种数据同步方法及装置
CN104391948B (zh) 数据仓库的数据标准化构建方法及系统
CN103678556B (zh) 列式数据库处理的方法和处理设备
CN103365929B (zh) 一种数据库连接的管理方法及系统
US9047333B2 (en) Dynamic updates to a semantic database using fine-grain locking
CN103186541B (zh) 一种映射关系生成方法及装置
CN106572165A (zh) 一种分布式全局唯一id应用方法
CN107408128A (zh) 用于使用高速缓存和碎片拓扑提供对分片数据库的访问的系统和方法
CN102270225A (zh) 数据变更日志监控方法和数据变更日志监控装置
CN103729447A (zh) 一种数据库快速检索的方法
CN103853718B (zh) 分片数据库访问方法及数据库系统
CN103646111A (zh) 大数据环境下实现实时数据关联的系统及方法
CN106339274A (zh) 一种数据快照获取的方法及系统
CN102129478A (zh) 数据库同步方法及系统
CN104239377A (zh) 跨平台的数据检索方法及装置
CN106407360A (zh) 一种数据的处理方法及装置
CN104317957B (zh) 一种报表处理的开放平台、系统及报表处理方法
CN107423295A (zh) 一种海量地址数据智能快速匹配方法
CN104391908B (zh) 一种图上基于局部敏感哈希的多关键字索引方法
CN104834700A (zh) 一种基于轨迹变更的移动数据增量捕获方法
KR20200092095A (ko) 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
CN105373621A (zh) 一种快速的跨数据库系统的数据增量迁移方法
CN104391899A (zh) 一种集中清算系统的数据管理方法及系统
CN110134698A (zh) 数据管理方法及相关产品
CN110134511A (zh) 一种OpenTSDB共享存储优化方法

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220620

Address after: 3007, Hengqin international financial center building, No. 58, Huajin street, Hengqin new area, Zhuhai, Guangdong 519031

Patentee after: New founder holdings development Co.,Ltd.

Patentee after: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

Address before: 100871 room 808, founder building, Zhongguancun, 298 Chengfu Road, Haidian District, Beijing

Patentee before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee before: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200714