CN104572672B - 异构数据库的同步方法和应用系统 - Google Patents

异构数据库的同步方法和应用系统 Download PDF

Info

Publication number
CN104572672B
CN104572672B CN201310482186.4A CN201310482186A CN104572672B CN 104572672 B CN104572672 B CN 104572672B CN 201310482186 A CN201310482186 A CN 201310482186A CN 104572672 B CN104572672 B CN 104572672B
Authority
CN
China
Prior art keywords
data
synchronous
processing device
value
resolver
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.)
Expired - Fee Related
Application number
CN201310482186.4A
Other languages
English (en)
Other versions
CN104572672A (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
Pku Founder Information Industry Group Co ltd
Peking University Founder Group Co Ltd
Beijing Founder Electronics Co Ltd
Original Assignee
Founder Information Industry Holdings Co Ltd
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 Founder Information Industry Holdings Co Ltd, Peking University Founder Group Co Ltd, Beijing Founder Electronics Co Ltd filed Critical Founder Information Industry Holdings Co Ltd
Priority to CN201310482186.4A priority Critical patent/CN104572672B/zh
Publication of CN104572672A publication Critical patent/CN104572672A/zh
Application granted granted Critical
Publication of CN104572672B publication Critical patent/CN104572672B/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/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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

Landscapes

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

Abstract

本发明提供一种异构数据库的同步方法和应用系统。部署在源数据库侧的同步处理器可以周期性地轮询同步变化表中记录的变化数据,将变化数据封装成数据流发送给部署在目标数据库侧的同步解析器。同步解析器在对该数据流进行解封装之后,可以根据预设的映射文件将源数据表中的变化数据映射为目标数据库中的目标数据表的数据结构,并根据变化数据中的变化类型值进行目标数据表的数据同步,进而可以完成异构数据库之间的数据同步。本发明,无需对现有异构数据库进行改变,只需要在同步解析器上部署不同的映射文件即可实现异构数据库之间的数据同步,实现简单,且易于扩展。

Description

异构数据库的同步方法和应用系统
技术领域
本发明涉及数据库技术,尤其涉及一种异构数据库的同步方法和应用系统。
背景技术
随着计算机技术和网络技术的不断发展,数据库也由集中式向分布式演变。
在分布式环境下,数据库同步技术作为维护各个数据库节点之间数据一致性的方法,成为保证系统性能和提高系统可靠性的关键技术。在现有技术中,针对同构数据库来说,源数据库可以检测其存储的数据是否发生变化,例如是否有数据更新,是否有数据删除,或者是否有数据增加。一旦发生变化,则源数据库可以将发生变化部分同步到目标数据库中。
但是,在现有分布式环境下,还存在异构数据库之间需要进行数据同步的需求。因此,如何实现异构数据库之间的数据同步,成为亟待解决的问题。
发明内容
本发明提供一种异构数据库的同步方法和应用系统,以实现异构数据库之间的数据同步。
本发明提供一种异构数据库的同步方法,包括:
同步处理器在确定源数据库的源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中,所述标识信息至少包括所述源数据表的表名、变化数据在所述源数据表中的主键值、变化类型值、变化时间;
同步处理器在轮询周期到达时,根据所述同步变化表中的变化时间从所述同步变化表中获取当前时间之前的标识信息,并根据获取的标识信息中的表名、主键值和变化类型值生成变化数据;
传输器采用预设的封装格式将所述变化数据封装为数据流,并发送给同步解析器;
所述同步解析器接收所述同步处理器通过所述传输器发送的数据流,采用所述预设的封装格式对所述数据流解封装得到所述变化数据,根据预设的映射文件将所述变化数据映射为目标数据库中的目标数据表的数据结构,并根据所述变化数据中的变化类型值进行目标数据库中目标数据表的数据同步。
相应的,本发明提供一种应用系统,包括:
依次连接的源数据库、同步处理器、传输器、同步解析器以及目标数据库;
所述同步处理器,用于在确定源数据库的源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中,所述标识信息至少包括所述源数据表的表名、变化数据在所述源数据表中的主键值、变化类型值、变化时间;在轮询周期到达时,根据所述同步变化表中的变化时间从所述同步变化表中获取当前时间之前的标识信息,并根据获取的标识信息中的表名、主键值和变化类型值生成变化数据;
所述传输器,用于采用预设的封装格式将所述变化数据封装为数据流,并发送给同步解析器;
所述同步解析器,用于接收所述同步处理器通过所述传输器发送的数据流,采用所述预设的封装格式对所述数据流解封装得到所述变化数据,根据预设的映射文件将所述变化数据映射为目标数据库中的目标数据表的数据结构,并根据所述变化数据中的变化类型值进行目标数据库中目标数据表的数据同步。
本发明异构数据库的同步方法和应用系统,无需对异构的源数据库和目标数据库进行任何改变,而只需要在源数据库和目标数据库之间部署同步处理器、传输器以及同步解析器。部署在源数据库侧的同步处理器可以周期性地轮询同步变化表中记录的变化数据,且该变化数据中包含有异构的目标数据库在进行数据同步时所需的表名、主键值和变化类型值,然后,同步处理器可以将变化数据封装成数据流发送给部署在目标数据库侧的同步解析器。同步解析器可以预存一映射文件,该映射文件可以描述源数据表和目标数据表之间数据结构差异的对应关系,因此,该同步解析器在对该数据流进行解封装之后,可以根据预设的映射文件将源数据表中的变化数据映射为目标数据库中的目标数据表的数据结构,并根据变化数据中的变化类型值进行目标数据表的数据同步,进而可以完成异构数据库之间的数据同步。本发明无需对现有异构数据库进行改变,只需要在同步解析器上部署不同的映射文件即可实现异构数据库之间的数据同步,实现简单,且易于扩展。
附图说明
图1为本发明异构数据库的同步方法实施例一的流程图;
图2为本发明异构数据库的同步方法实施例二的流程图;
图3为本发明应用系统实施例的结构示意图。
具体实施方式
图1为本发明异构数据库的同步方法实施例一的流程图,如图1所示,本实施例的方法,可以包括:
步骤101、同步处理器在确定源数据库的源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中,所述标识信息至少包括所述源数据表的表名、变化数据在所述源数据表中的主键值、变化类型值、变化时间;
步骤102、同步处理器在轮询周期到达时,根据所述同步变化表中的变化时间从所述同步变化表中获取当前时间之前的标识信息,并根据获取的标识信息中的表名、主键值和变化类型值生成变化数据;
步骤103、传输器采用预设的封装格式将所述变化数据封装为数据流,并发送给同步解析器;
步骤104、同步解析器接收所述同步处理器通过所述传输器发送的数据流,采用所述预设的封装格式对所述数据流解封装得到所述变化数据,根据预设的映射文件将所述变化数据映射为目标数据库中的目标数据表的数据结构,并根据所述变化数据中的变化类型值进行目标数据库中目标数据表的数据同步。
具体来说,本实施例在源数据库和目标数据库之间部署了同步处理器、传输器以及同步解析器,其中,同步处理器部署在源数据库一侧,同步解析器部署在目标数据库一侧,传输器则用于传输同步处理器和同步解析器之间的数据。
同步处理器可以实时或者定时检测源数据库的源数据表中是否发生数据变化,所述的数据变化,例如可以是数据删除、数据更新、数据增加等。本实施例并不限定具体的检测方法。
举例来说,本实施例可以采用数据变化触发器,来捕获源数据表中发生变化的数据,该数据变化触发器可以包括插入触发器、删除触发器和更新触发器。
可以理解的,根据不同的需要,本领域技术人员还可以只部署其中的不同的触发器,或者扩展出其它类型的触发器以捕获其它类型的数据变化。
该同步处理器既可以单独部署,也可以与源数据库一同部署。
当同步处理器确定源数据表中发生数据变化时,则可以将源数据表中发生变化的数据的标识信息存储在同步变化表中。本实施例中,该同步变化表用于存储源数据表中发生变化的数据的标识信息。该标识信息至少可以包括源数据表的表名、变化数据在源数据表中的主键值、变化类型值、变化时间。该标识信息可以用于后续的异构数据库的同步。
同步处理器可以以一定的轮询周期来定期地查看该同步变化表,该轮询周期例如可以采用一个定时器来实现。即,源数据库在轮询周期到达时,可以根据同步变化表中的变化时间从同步变化表中获取当前时间之前的标识信息,该当前时间即为系统时间。
同步处理器在获取到变化时间在当前时间之前的标识信息之后,同步处理器即可根据获取的标识信息中的表名、主键值和变化类型值生成变化数据。
可选的,在轮询周期内,对于具有相同主键值的数据,可能发生多次数据变化,例如先增加、再更新,或者先增加再删除。
因此,为了更加准确地定位到该轮询周期内最终的数据变化状态,以便将数据的准确状态更新到目标数据库中,在同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据之前,可以按照变化时间的先后顺序,对当前时间之前的具有相同的主键值的标识信息进行排序;保留具有相同的主键值的标识信息中变化时间最晚的标识信息,并删除该具有相同的主键值的标识信息中的其它标识信息,也即只保留该主键值的数据的最终变化状态。该操作还可以简化向同步解析器发送的变化数据。
可选的,针对变化类型值为插入类型值或更新类型值的数据来说,有可能其已经被删除。
因此,同步处理器在生成变化数据之前,还可以根据同步变化表中的主键值去源数据表中再次确认一下,以保证数据处理的准确性。
具体地,同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据之前,还可以包括:
同步处理器根据主键值从源数据表中查找数据是否存在;
若存在,则同步处理器读取数据完整信息,所述数据完整信息包括字段名、字段值和数据类型;
相应的,同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据,可以具体为:
同步处理器根据数据完整信息、表名、主键值和变化类型值生成变化数据;
若再次确认发现,变化类型值为插入类型值或更新类型值的数据并不存在于源数据表中,则同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据,可以具体为:
同步处理器将变化类型值修改为删除类型值;
同步处理器根据表名、主键值和删除类型值生成变化数据。
经过上述过程得到变化数据后,同步处理器即可采用预设的封装格式将该变化数据封装为数据流,并通过传输器发送给同步解析器。举例来说,同步处理器可以采用可扩展标记语言(Extensible Markup Language,以下简称:XML)将变化数据封装为数据流。
同步解析器接收同步处理器发送的数据流,采用与同步解析器所采用的相同的预设的封装格式对该数据流解封装得到变化数据。例如同样采用XML对所述数据流解封装得到所述变化数据。
然后,同步解析器可以根据预设的映射文件将变化数据映射为该目标数据库中的目标数据表的数据结构,并根据变化数据中的变化类型值进行目标数据库中目标数据表的数据同步。
一般来说,异构数据库之间的不同之处在于表名、字段名和数据类型不一致,因此,本实施例中的预设的映射文件中可以包括:源数据表与目标数据表之间的表名、字段名和数据类型之间的对应关系,从而可以将源数据库中的数据格式映射为目标数据库中的数据格式以进行数据同步。
具体来说,该映射文件,例如可以采用初始化(以下简称:INI)文件,该映射文件可以包括:源数据表的表名与目标数据表的表名之间的第一映射关系、源数据表中的字段名和数据类型与目标数据表中的字段名和数据类型之间的第二映射关系;
相应的,同步解析器根据预设的映射文件将所述变化数据映射为所述目标数据库中的目标数据表的数据结构,可以具体为:
同步解析器采用所述第一映射关系,将变化数据中包括的表名映射为目标数据表的表名;
同步解析器采用第二映射关系,将变化数据中包括的字段名映射为目标数据表中的字段名,并将变化数据中包括的字段值的数据类型映射为目标数据表中的字段值的数据类型。
进而,同步解析器根据变化数据中的变化类型值进行目标数据库中目标数据表的数据同步,可以具体为:
同步解析器从变化数据中提取变化类型值,根据变化数据中包含的主键值在目标数据表中查找是否存在数据,并根据查找结果和变化类型值进行数据同步。
可选的,针对变化类型值为删除类型值的数据来说,由于需要对目标数据库中的已有数据进行操作。
因此,若目标数据库中并不存在对应的数据,则进行删除操作将出现操作错误的问题,因此,针对变化类型值为删除类型值的数据,所述同步解析器根据查找结果和所述变化类型值进行数据同步,可以具体为:
若查找结果为不存在,则同步解析器放弃本次数据同步;
若查找结果为存在,则同步解析器将字段值组织为结构化查询语言(StructuredQuery Language,以下简称:SQL)执行数据同步;
针对变化类型值为插入类型值或更新类型值的数据来说,如果目标数据库中对应位置已经存在数据,则无法进行数据插入,否则会出现操作错误的问题,因此,若变化类型值为插入类型值或更新类型值,则所述同步解析器根据查找结果和所述变化类型值进行数据同步,可以具体为:
若查找结果为不存在,则同步解析器将字段值组织为SQL执行数据插入同步;
若查找结果为存在,则同步解析器将字段值组织为SQL执行数据更新同步。
在完成上述的数据同步之后,同步解析器可以通过传输器向同步处理器发送同步结果通知消息;
相应的,同步处理器接收所述同步结果通知消息,并根据该同步结果通知消息将同步成功的标识信息从同步变化表中删除,而未同步成功的标识信息则可以得以保留,在下一个轮询周期可以再次被处理,以保证数据同步的准确性。
本实施例,无需对异构的源数据库和目标数据库进行任何改变,而只需要在源数据库和目标数据库之间部署同步处理器、传输器以及同步解析器。部署在源数据库侧的同步处理器可以周期性地轮询同步变化表中记录的变化数据,且该变化数据中包含有异构的目标数据库在进行数据同步时所需的表名、主键值和变化类型值,然后,同步处理器可以将变化数据封装成数据流发送给部署在目标数据库侧的同步解析器。同步解析器可以预存一映射文件,该映射文件可以描述源数据表和目标数据表之间数据结构差异的对应关系,因此,该同步解析器在对该数据流进行解封装之后,可以根据预设的映射文件将源数据表中的变化数据映射为目标数据库中的目标数据表的数据结构,并根据变化数据中的变化类型值进行目标数据表的数据同步,进而可以完成异构数据库之间的数据同步。本实施例,无需对现有异构数据库进行改变,只需要在同步解析器上部署不同的映射文件即可实现异构数据库之间的数据同步,实现简单,且易于扩展。
图2为本发明异构数据库的同步方法实施例二的流程图,如图2所示,本实施例采用一个具体的实施例进行技术方案的描述。
假设源数据库类型是SQL SERVER,源数据表为用户表userInfo,该userInfo表结构如表1所示:
表1
字段 类型 备注
id varchar(50) 用户标识
name varchar(50) 用户名
password varchar(50) 用户姓名
age int 用户年龄
假设目标数据库类型是ORACLE,目标数据表为账户表account,该account表结构如表2所示:
表2
字段 类型 备注
accountId VARchar2(50) 账户标识
accountName VARchar2(50) 账户名
password VARchar2(50) 账户姓名
age NUMBER(100) 账户年龄
具体的,本实施例的方法可以包括:
步骤201、在源数据库中添加同步变化表changeInfo。
该同步变化表changeInfo如表3所示:
表3
步骤202、为源数据表userInfo添加插入触发器。
该插入触发器的一种可能的实现方式如下:
步骤203、为源数据表userInfo添加删除触发器。
该删除触发器的一种可能的实现方式如下:
步骤204、为源数据表表userInfo添加更新触发器。
该更新触发器的一种可能的实现方式如下:
当对源数据表进行若干操作后,上述三种触发器即可自动将变化的数据信息记录到同步变化表changeInfo中。
步骤205、连接源数据库和目标数据库。
本实施例可以通过系统提供的可视化界面,例如选用Java数据库连接(JavaDataBase Connectivity,以下简称:JDBC)作为数据库连接技术,连接源数据库和目标数据库。
步骤206、设置源数据表和目标数据表的映射关系。
本实施例可以通过系统提供的可视化界面,设置源数据表与目标数据表的映射关系信息,并保存在INI格式的映射文件中,该映射文件,例如可以为:
[userInfo]
tableName=account
id=#accountID@String
name=accountName@String
password=password@String
age=age@Integer
源数据表userInfo对应目标数据表的表名account,源数据表userInfo中的字段id对应目标数据表account中的字段accountID,且数据类型为字符串,源数据表userInfo中的字段name对应目标数据表account中的字段accountName,且数据类型为字符串,源数据表userInfo中的字段password对应目标数据表account中的字段password,且数据类型为字符串,源数据表userInfo中的字段age对应目标数据表account中的字段age,且数据类型为整型。
步骤207、同步处理器轮询同步变化表,获取当前查询时刻之前的变化数据的标识信息集合。所获取的标识信息例如下表4所示:
表4
步骤208、同步处理器对获取的标识信息进行分析处理,以获得同一数据的最后状态,并更新同步变化表。
表4所示的同步变化表经过步骤208处理之后,得到如下所示的表5,如表5所示,例如针对主键值为200701031的数据,保留15:09:50的最新状态,而将15:09:36的老状态置位已更新的状态,即不再进行同步处理,或者也可以直接删除。
表5
步骤209、同步处理器对于非删除变化类型且源数据表中存在的数据,获取数据完整信息。
例如,针对表5中,变化类型为0的增加数据和变化类型为2的增加数据,获取完整数据完整信息如下表6所示:
表6
id name password age
200701030 Lily 111111 22
200701032 Tom 222222 23
步骤210、传输器将变化数据封装为XML数据流。
封装后的数据流例如下述所示:
步骤211、同步解析器将接收的XML数据流进行解封装,并利用映射关系进行数据结构的映射。
步骤212、同步解析器从变化数据中提取出属性action的值得知变化类型,根据主键值和数据表名从目标数据库的目标数据表中查找数据是否存在,根据查找结果将字段值组织为对应的SQL语句执行。
步骤213、同步解析器通过传输器向同步处理器反馈同步结果通知消息。
步骤214、同步处理器在同步变化表中将同步成功的数据的同步状态更新为已同步或者删除。
本实施例,可以实现对支持不同数据变化类型的关系数据库以及同构或者异构数据表之间的数据同步。通过采用数据变化触发器和同步变化表的机制,可以避免修改原应用系统的表结构;通过采用XML和INI两种文件将异构数据的差异性描述在配置文件中,再采用标准的解析逻辑实现这种差异的转换,实现了数据同步的通用性。同时,同步变化表中记录的数据集合在每次轮询阶段会被删除一部分,最大程度的减少了资源占用。
图3为本发明应用系统实施例的结构示意图,如图3所示,本实施例的应用系统可以包括:依次连接的源数据库11、同步处理器12、传输器13、同步解析器14以及目标数据库15;
所述同步处理器12,用于在确定源数据库11的源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中,所述标识信息至少包括所述源数据表的表名、变化数据在所述源数据表中的主键值、变化类型值、变化时间;在轮询周期到达时,根据所述同步变化表中的变化时间从所述同步变化表中获取当前时间之前的标识信息,并根据获取的标识信息中的表名、主键值和变化类型值生成变化数据;
所述传输器13,用于采用预设的封装格式将所述变化数据封装为数据流,并发送给同步解析器;
所述同步解析器14,用于接收所述同步处理器12通过所述传输器13发送的数据流,采用所述预设的封装格式对所述数据流解封装得到所述变化数据,根据预设的映射文件将所述变化数据映射为目标数据库15中的目标数据表的数据结构,并根据所述变化数据中的变化类型值进行目标数据库15中目标数据表的数据同步。
进一步的,该应用系统,还可以包括:
数据变化触发器16,用于在所述同步处理器12在确定源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中之前,捕获所述源数据表中发生变化的数据,所述数据变化触发器包括插入触发器、删除触发器和更新触发器。
进一步的,同步处理器12,还用于在根据获取的标识信息中的表名、主键值和变化类型值生成变化数据之前,按照变化时间的先后顺序,对所述当前时间之前的具有相同的主键值的标识信息进行排序;保留所述具有相同的主键值的标识信息中变化时间最晚的标识信息,并删除所述具有相同的主键值的标识信息中的其它标识信息。
进一步的,映射文件,可以包括:所述源数据表的表名与所述目标数据表的表名之间的第一映射关系、所述源数据表中的字段名和数据类型与所述目标数据表中的字段名和数据类型之间的第二映射关系;
相应的,同步解析器14,具体用于采用所述第一映射关系,将所述变化数据中包括的表名映射为所述目标数据表的表名;采用所述第二映射关系,将所述变化数据中包括的字段名映射为所述目标数据表中的字段名,并将所述变化数据中包括的字段值的数据类型映射为所述目标数据表中的字段值的数据类型。
进一步的,同步解析器14,具体用于从所述变化数据中提取变化类型值,根据所述变化数据中包含的主键值在所述目标数据表中查找是否存在数据;若所述变化类型值为删除类型值,则若查找结果为不存在,则所述同步解析器放弃本次数据同步;若查找结果为存在,则所述同步解析器将字段值组织为结构化查询语言SQL执行数据同步;若所述变化类型值为插入类型值或更新类型值,则若查找结果为不存在,则所述同步解析器将字段值组织为结构化查询语言SQL执行数据插入同步;若查找结果为存在,则所述同步解析器将字段值组织为SQL执行数据更新同步。
进一步的,同步解析器14,还用于在完成数据同步后,通过传输器13向同步处理器12发送同步结果通知消息;相应的,同步处理器12,还用于接收所述同步结果通知消息,并根据所述同步结果通知消息将同步成功的标识信息从所述同步变化表中删除。
本实施例的应用系统,用于执行图1或者图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种异构数据库的同步方法,其特征在于,包括:
同步处理器在确定源数据库的源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中,所述标识信息至少包括所述源数据表的表名、变化数据在所述源数据表中的主键值、变化类型值、变化时间;
同步处理器在轮询周期到达时,根据所述同步变化表中的变化时间从所述同步变化表中获取当前时间之前的标识信息,并根据获取的标识信息中的表名、主键值和变化类型值生成变化数据;
传输器采用预设的封装格式将所述变化数据封装为数据流,并发送给同步解析器;
所述同步解析器接收所述同步处理器通过所述传输器发送的数据流,采用所述预设的封装格式对所述数据流解封装得到所述变化数据,根据预设的映射文件将所述变化数据映射为目标数据库中的目标数据表的数据结构,并根据所述变化数据中的变化类型值进行目标数据库中目标数据表的数据同步;
所述同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据之前,还包括:
所述同步处理器按照变化时间的先后顺序,对所述当前时间之前的具有相同的主键值的标识信息进行排序;
所述同步处理器保留所述具有相同的主键值的标识信息中变化时间最晚的标识信息,并删除所述具有相同的主键值的标识信息中的其它标识信息;
其中,若所述变化类型值为插入类型值或更新类型值,则所述同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据之前,还包括:
所述同步处理器根据主键值从源数据表中查找数据是否存在;
若存在,则所述同步处理器读取数据完整信息,所述数据完整信息包括字段名、字段值和数据类型;
相应的,所述同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据,包括:
所述同步处理器根据所述数据完整信息、表名、主键值和变化类型值生成变化数据;
若不存在,则所述同步处理器根据获取的标识信息中的表名、主键值和变化类型值生成变化数据,包括:
所述同步处理器将所述变化类型值修改为删除类型值;
所述同步处理器根据表名、主键值和删除类型值生成变化数据。
2.根据权利要求1所述的方法,其特征在于,所述同步处理器在确定源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中之前,还包括:
数据变化触发器捕获所述源数据表中发生变化的数据,所述数据变化触发器包括插入触发器、删除触发器和更新触发器。
3.根据权利要求1所述的方法,其特征在于,所述传输器采用预设的封装格式将所述变化数据封装为数据流,包括:
所述传输器采用可扩展标记语言XML将所述变化数据封装为数据流;
所述同步解析器采用所述预设的封装格式对所述数据流解封装得到所述变化数据,包括:
所述同步解析器采用XML对所述数据流解封装得到所述变化数据。
4.根据权利要求1~3中任一项所述的方法,其特征在于,所述映射文件,包括:所述源数据表的表名与所述目标数据表的表名之间的第一映射关系、所述源数据表中的字段名和数据类型与所述目标数据表中的字段名和数据类型之间的第二映射关系;
所述同步解析器根据预设的映射文件将所述变化数据映射为所述目标数据库中的目标数据表的数据结构,包括:
所述同步解析器采用所述第一映射关系,将所述变化数据中包括的表名映射为所述目标数据表的表名;
所述同步解析器采用所述第二映射关系,将所述变化数据中包括的字段名映射为所述目标数据表中的字段名,并将所述变化数据中包括的字段值的数据类型映射为所述目标数据表中的字段值的数据类型。
5.根据权利要求4所述的方法,其特征在于,所述同步解析器根据所述变化数据中的变化类型值进行目标数据库中目标数据表的数据同步,包括:
所述同步解析器从所述变化数据中提取变化类型值,根据所述变化数据中包含的主键值在所述目标数据表中查找是否存在数据,并根据查找结果和所述变化类型值进行目标数据库中目标数据表的数据同步。
6.根据权利要求5所述的方法,其特征在于,所述变化类型值为删除类型值,所述同步解析器根据查找结果和所述变化类型值进行目标数据库中目标数据表的数据同步,包括:
若查找结果为不存在,则所述同步解析器放弃本次数据同步;
若查找结果为存在,则所述同步解析器将字段值组织为结构化查询语言SQL执行数据删除同步;
或者,
所述变化类型值为插入类型值或更新类型值,所述同步解析器根据查找结果和所述变化类型值进行目标数据库中目标数据表的数据同步,包括:
若查找结果为不存在,则所述同步解析器将字段值组织为结构化查询语言SQL执行数据插入同步;
若查找结果为存在,则所述同步解析器将字段值组织为SQL执行数据更新同步。
7.根据权利要求6所述的方法,其特征在于,所述同步解析器根据查找结果和所述变化类型值进行目标数据库中目标数据表的数据同步之后,还包括:
所述同步解析器在完成数据同步后,通过所述传输器向所述同步处理器发送同步结果通知消息;
所述同步处理器接收所述同步结果通知消息,并根据所述同步结果通知消息将同步成功的标识信息从所述同步变化表中删除。
8.一种应用系统,其特征在于,包括:依次连接的源数据库、同步处理器、传输器、同步解析器以及目标数据库;
所述同步处理器,用于在确定源数据库的源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中,所述标识信息至少包括所述源数据表的表名、变化数据在所述源数据表中的主键值、变化类型值、变化时间;在轮询周期到达时,根据所述同步变化表中的变化时间从所述同步变化表中获取当前时间之前的标识信息,并根据获取的标识信息中的表名、主键值和变化类型值生成变化数据;
所述传输器,用于采用预设的封装格式将所述变化数据封装为数据流,并发送给同步解析器;
所述同步解析器,用于接收所述同步处理器通过所述传输器发送的数据流,采用所述预设的封装格式对所述数据流解封装得到所述变化数据,根据预设的映射文件将所述变化数据映射为目标数据库中的目标数据表的数据结构,并根据所述变化数据中的变化类型值进行目标数据库中目标数据表的数据同步;
其中,所述同步处理器,还用于在根据获取的标识信息中的表名、主键值和变化类型值生成变化数据之前,按照变化时间的先后顺序,对所述当前时间之前的具有相同的主键值的标识信息进行排序;保留所述具有相同的主键值的标识信息中变化时间最晚的标识信息,并删除所述具有相同的主键值的标识信息中的其它标识信息;
其中,若所述变化类型值为插入类型值或更新类型值,则所述同步处理器用于根据主键值从源数据表中查找数据是否存在;
若存在,则所述同步处理器读取数据完整信息,所述数据完整信息包括字段名、字段值和数据类型;
根据所述数据完整信息、表名、主键值和变化类型值生成变化数据;
若不存在,所述同步处理器将所述变化类型值修改为删除类型值;
根据表名、主键值和删除类型值生成变化数据。
9.根据权利要求8所述的系统,其特征在于,还包括:
数据变化触发器,用于在所述同步处理器在确定源数据表中发生数据变化时,将所述源数据表中发生变化的数据的标识信息存储在同步变化表中之前,捕获所述源数据表中发生变化的数据,所述数据变化触发器包括插入触发器、删除触发器和更新触发器。
10.根据权利要求8~9中任一项所述的系统,其特征在于,所述映射文件,包括:所述源数据表的表名与所述目标数据表的表名之间的第一映射关系、所述源数据表中的字段名和数据类型与所述目标数据表中的字段名和数据类型之间的第二映射关系;
所述同步解析器,具体用于采用所述第一映射关系,将所述变化数据中包括的表名映射为所述目标数据表的表名;采用所述第二映射关系,将所述变化数据中包括的字段名映射为所述目标数据表中的字段名,并将所述变化数据中包括的字段值的数据类型映射为所述目标数据表中的字段值的数据类型。
11.根据权利要求10所述的系统,其特征在于,所述同步解析器,具体用于从所述变化数据中提取变化类型值,根据所述变化数据中包含的主键值在所述目标数据表中查找是否存在数据;
若所述变化类型值为删除类型值,则若查找结果为不存在,则所述同步解析器放弃本次数据同步;若查找结果为存在,则所述同步解析器将字段值组织为结构化查询语言SQL执行数据同步;
若所述变化类型值为插入类型值或更新类型值,则若查找结果为不存在,则所述同步解析器将字段值组织为结构化查询语言SQL执行数据插入同步;若查找结果为存在,则所述同步解析器将字段值组织为SQL执行数据更新同步。
12.根据权利要求11所述的系统,其特征在于,所述同步解析器,还用于在完成数据同步后,通过所述传输器向所述同步处理器发送同步结果通知消息;
所述同步处理器,还用于接收所述同步结果通知消息,并根据所述同步结果通知消息将同步成功的标识信息从所述同步变化表中删除。
CN201310482186.4A 2013-10-15 2013-10-15 异构数据库的同步方法和应用系统 Expired - Fee Related CN104572672B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310482186.4A CN104572672B (zh) 2013-10-15 2013-10-15 异构数据库的同步方法和应用系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310482186.4A CN104572672B (zh) 2013-10-15 2013-10-15 异构数据库的同步方法和应用系统

Publications (2)

Publication Number Publication Date
CN104572672A CN104572672A (zh) 2015-04-29
CN104572672B true CN104572672B (zh) 2018-10-02

Family

ID=53088765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310482186.4A Expired - Fee Related CN104572672B (zh) 2013-10-15 2013-10-15 异构数据库的同步方法和应用系统

Country Status (1)

Country Link
CN (1) CN104572672B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108241618A (zh) * 2016-12-23 2018-07-03 航天信息股份有限公司 数据库迁移的方法及装置、服务程序迁移的方法及装置

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117441A (zh) * 2015-08-11 2015-12-02 北京思特奇信息技术股份有限公司 一种数据工单处理方法及系统
CN106649378B (zh) * 2015-11-02 2020-07-14 北大方正集团有限公司 一种数据同步方法及装置
CN107133249A (zh) * 2016-02-29 2017-09-05 上海格尔软件股份有限公司 一种对已删除数据进行同步的数据库同步方法
KR102464235B1 (ko) * 2016-03-31 2022-11-04 엘에스일렉트릭(주) 이중화 ems 서버의 db 관리 방법
CN105930493A (zh) * 2016-05-04 2016-09-07 北京思特奇信息技术股份有限公司 一种不同数据库间数据同步的方法和系统
CN107346314A (zh) * 2016-05-06 2017-11-14 银联国际有限公司 一种数据库单向同步方法
CN107544999B (zh) * 2016-06-28 2022-10-21 百度在线网络技术(北京)有限公司 用于检索系统的同步装置及同步方法、检索系统及方法
CN106055723B (zh) * 2016-08-17 2019-08-02 浪潮软件股份有限公司 一种数据库数据同步装置、系统及方法
CN106446050A (zh) * 2016-08-31 2017-02-22 北京云纵信息技术有限公司 一种针对数据库的变化数据进行订阅的方法及系统
CN106407360B (zh) * 2016-09-07 2020-07-24 广州视源电子科技股份有限公司 一种数据的处理方法及装置
CN106503091A (zh) * 2016-10-12 2017-03-15 济南浪潮高新科技投资发展有限公司 一种可变数据结构自动同步匹配的实现方法
CN106570135A (zh) * 2016-10-27 2017-04-19 深圳市中科长海科技股份有限公司 数据库数据同步方法和装置
CN106599268A (zh) * 2016-12-22 2017-04-26 曙光信息产业(北京)有限公司 一种sql语句的处理方法和装置
CN108241676B (zh) * 2016-12-26 2022-09-02 阿里云计算有限公司 实现数据同步的方法及设备
CN106599322A (zh) * 2017-01-03 2017-04-26 北京网智天元科技股份有限公司 数据脱敏的方法及设备
CN106709066B (zh) * 2017-01-19 2020-05-19 杭州数梦工场科技有限公司 数据同步方法及装置
CN108628885B (zh) * 2017-03-20 2023-04-18 腾讯科技(深圳)有限公司 一种数据同步方法、装置及存储设备
CN107632906A (zh) * 2017-09-30 2018-01-26 北京九桥同步软件有限公司 数据库数据备份方法及装置
CN110019512A (zh) * 2017-10-11 2019-07-16 北京国双科技有限公司 一种数据处理方法及装置
CN109684404B (zh) * 2017-10-18 2023-09-05 中兴通讯股份有限公司 异构网络信息模型数据库同步的方法、主管控系统及存储介质
CN110147359A (zh) * 2017-12-13 2019-08-20 北京奇虎科技有限公司 一种增量生成方法、装置以及一种数据更新方法、装置
CN108446315B (zh) * 2018-02-07 2021-11-05 中国平安人寿保险股份有限公司 大数据迁移方法、装置、设备及存储介质
CN108664659A (zh) * 2018-05-21 2018-10-16 四川中电启明星信息技术有限公司 一种分布式异构数据库的数据同步方法及装置
CN108874644B (zh) * 2018-06-06 2021-12-24 平安科技(深圳)有限公司 数据监控方法、装置、计算机设备及存储介质
CN108900497B (zh) * 2018-06-25 2021-11-02 江苏欧软信息科技有限公司 一种异构系统间的数据同步方法及系统
CN109359160A (zh) * 2018-10-12 2019-02-19 平安科技(深圳)有限公司 数据同步方法、装置、计算机设备及存储介质
CN109446380A (zh) * 2018-11-02 2019-03-08 鲁班(北京)电子商务科技有限公司 一种基于xml描述两个数据表关系的方法
CN111382152B (zh) * 2018-12-27 2023-10-20 杭州海康威视数字技术股份有限公司 数据表处理方法、装置及存储介质
CN109977170A (zh) * 2019-03-20 2019-07-05 南威软件股份有限公司 一种政务内外网数据同步的方法及系统
CN111813850A (zh) * 2019-04-11 2020-10-23 百度在线网络技术(北京)有限公司 一种异构数据的同步方法、装置、电子设备及存储介质
CN110209728B (zh) * 2019-04-22 2023-10-20 凯通科技股份有限公司 一种分布式异构数据库同步方法、电子设备及存储介质
CN110457358A (zh) * 2019-07-30 2019-11-15 新华三大数据技术有限公司 一种信息采集方法、装置、服务器及计算机可读存储介质
CN110471970B (zh) * 2019-08-08 2023-04-18 紫光云技术有限公司 一种灵活可配的规则引擎数据转发方法
CN110502584B (zh) * 2019-08-28 2021-09-28 北京三快在线科技有限公司 数据同步的方法和装置
CN110659328B (zh) * 2019-08-30 2022-04-29 中国人民财产保险股份有限公司 数据查询方法、装置、设备及计算机可读存储介质
CN110765165B (zh) * 2019-10-23 2022-07-29 中国银行股份有限公司 一种跨系统数据同步处理的方法、装置及系统
CN111078691B (zh) * 2019-11-22 2024-04-16 湖南水羊科技有限公司 一种管理报表数据处理方法及相关装置
CN111061793B (zh) * 2019-12-18 2023-10-31 中国建设银行股份有限公司 一种数据处理系统和方法
CN111881209A (zh) * 2020-06-29 2020-11-03 平安国际智慧城市科技股份有限公司 异构数据库的数据同步方法、装置、电子设备及介质
CN111831755B (zh) * 2020-07-23 2024-01-16 北京思特奇信息技术股份有限公司 一种跨数据库数据同步方法、系统、介质及设备
CN111901358A (zh) * 2020-08-07 2020-11-06 杭州安恒信息技术股份有限公司 一种入侵检测规则更新方法、装置、设备及可读存储介质
CN112035577B (zh) * 2020-11-04 2021-02-02 华自科技股份有限公司 一种数据同步方法及数据同步系统
CN113051347B (zh) * 2021-03-25 2024-03-29 未鲲(上海)科技服务有限公司 异构数据库之间数据同步方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615199A (zh) * 2009-07-31 2009-12-30 深圳市珍爱网信息技术有限公司 异构数据库同步方法及系统
CN102129478A (zh) * 2011-04-26 2011-07-20 广州从兴电子开发有限公司 数据库同步方法及系统
CN102486785A (zh) * 2010-12-06 2012-06-06 金蝶软件(中国)有限公司 一种数据同步方法、装置及系统
CN102982171A (zh) * 2012-12-17 2013-03-20 山东神思电子技术股份有限公司 一种数据库同步方法
CN103136231A (zh) * 2011-11-25 2013-06-05 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615199A (zh) * 2009-07-31 2009-12-30 深圳市珍爱网信息技术有限公司 异构数据库同步方法及系统
CN102486785A (zh) * 2010-12-06 2012-06-06 金蝶软件(中国)有限公司 一种数据同步方法、装置及系统
CN102129478A (zh) * 2011-04-26 2011-07-20 广州从兴电子开发有限公司 数据库同步方法及系统
CN103136231A (zh) * 2011-11-25 2013-06-05 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统
CN102982171A (zh) * 2012-12-17 2013-03-20 山东神思电子技术股份有限公司 一种数据库同步方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于XML的分布式异构数据库数据同步系统的研究;沈敏等;《计算机工程与应用》;20050531;第184-186页 *
基于XML的异构数据库同步技术研究;李佩;《中国优秀硕士学位论文全文数据库信息科技辑》;20110115(第1期);第I138-1122页 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108241618A (zh) * 2016-12-23 2018-07-03 航天信息股份有限公司 数据库迁移的方法及装置、服务程序迁移的方法及装置
CN108241618B (zh) * 2016-12-23 2022-05-17 航天信息股份有限公司 数据库迁移的方法及装置、服务程序迁移的方法及装置

Also Published As

Publication number Publication date
CN104572672A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104572672B (zh) 异构数据库的同步方法和应用系统
CN104317843B (zh) 一种数据同步etl系统
US9116968B2 (en) Methods and apparatus related to graph transformation and synchronization
CN107291869B (zh) 一种分布式服务系统及其数据查询的方法
CN105183860B (zh) 数据同步方法和系统
CN110321254A (zh) 软件版本回滚方法、装置、服务器及存储介质
CN106960007A (zh) 一种数据更新方法、装置及电子设备
CN110196885B (zh) 一种云化分布式实时数据库系统
US6889229B1 (en) Techniques for peer-to-peer replication of objects in a relational database
CN113986873B (zh) 一种海量物联网数据模型化的处理、存储与共享方法
CN103995854A (zh) 一种设备跨版本升级方法和装置
CN109298978B (zh) 一种指定位置的数据库集群的恢复方法及系统
CN103678494A (zh) 客户端同步服务端数据的方法及装置
CN109918229B (zh) 非日志模式的数据库集群副本构建方法及装置
EP2696555A1 (en) Method and system for identifying storage device
CN109145060B (zh) 数据处理方法及装置
CN104050276A (zh) 一种分布式数据库的缓存处理方法及系统
CN109408589A (zh) 数据同步方法及装置
CN114036119A (zh) 一种基于kettle和数据库日志的数据同步方法
CN103177094A (zh) 一种物联网数据清洗方法
CN107302569A (zh) 一种面向云平台的安全监控数据采集与存储方法
CN103699555A (zh) 一种适用于调度与变电站一体化系统的多源数据实时库数据生成方法
CN104301990A (zh) 一种数据同步的方法及装置
CN114691704A (zh) 一种基于MySQL binlog的元数据同步方法
CN104636401A (zh) 一种scada系统数据回滚的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100871, Beijing, Haidian District, Cheng Fu Road, No. 298, Zhongguancun Fangzheng building, 9 floor

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

Patentee after: PKU FOUNDER INFORMATION INDUSTRY GROUP CO.,LTD.

Patentee after: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

Address before: 100871, Beijing, Haidian District, Cheng Fu Road, No. 298, Zhongguancun Fangzheng building, 9 floor

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

Patentee before: FOUNDER INFORMATION INDUSTRY HOLDINGS Co.,Ltd.

Patentee before: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20220915

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, Beijing, Haidian District, Cheng Fu Road, No. 298, Zhongguancun Fangzheng building, 9 floor

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

Patentee before: PKU FOUNDER INFORMATION INDUSTRY GROUP CO.,LTD.

Patentee before: BEIJING FOUNDER ELECTRONICS Co.,Ltd.

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

Granted publication date: 20181002

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