一种数据同步方法及装置制造方法及图纸

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

Data synchronization method and device

The invention provides a data synchronization method and apparatus used in multilevel heterogeneous database, the method includes: obtaining the relationship between each source database and target database, the relationship includes at least each source data in the source database and target database to synchronize data between tables and data mapping between the first conversion formula in a preset period; simultaneously, when the detected source data in the database is changed, the identification information to obtain the change of data; in the synchronous cycle, according to the identification information relation and change data, generate data synchronization instruction; data synchronization instruction is encapsulated into the target database corresponding to the structured query language, sent to the target database. The data synchronization method and device provided by the invention does not need to change the original program logic of the database system, and can support data synchronization in different data table modes, and has enough flexibility.

【技术实现步骤摘要】
一种数据同步方法及装置
本专利技术涉及数据库领域,特别涉及一种数据同步方法及装置。
技术介绍
在全球数字化发展的背景下,信息技术和网络技术的飞速发展,数据库技术也由集中式向分布式逐渐演变。比如对于一些地域上分散而管理相对集中的企业来说,通过搭建分布式数据库系统增加数据副本,来提高系统的可靠性,成为一种主流趋势。数据同步作为维护分布式数据库系统的数据一致性的主要技术手段,有着重要意义。这是由于一致的多个数据副本能提供更多的数据服务,进而增大数据访问吞吐量,增强数据可用性;能够使用户应用只需要访问本地副本而无需访问远程数据,进而减少数据访问延迟,提高用户应用的性能;应对不可预测因素造成的数据丢失,进而保证数据可靠性。而分布式数据库系统之间的数据同步,主要有以下两个问题:数据库各个系统开发时间与环境不一致,所采用的数据库工具与所设计的数据库表一般差异较大,因此各业务系统之间数据交换和共享难以进行;各业务系统在更新换代过程中,为了让用户拥有一段时间的适应期,出现的新旧系统同时运行的过渡阶段,这种情况下,新旧系统的数据库可能出现重构,并且旧系统中发生的数据变化需要实用同步更新到新系统中。也就是说,数据同步的难题主要集中在两个方面:在数据异构性上涉及了数据类型不同和数据表模式不同两个因素;在数据传播方向上是由下级系统向上级系统进行同步,由旧系统向新系统进行同步。在现有技术中,数据库同步的产品通常或者对于异构数据库的支持较弱,或者不具备足够的灵活性,主要表现为以下问题:第一,在数据库的异构性上,现有的数据库复制产品虽然能够支持不同数据类型的转换,但是不能够支持不同数据表模式的数据同步。第二,在数据同步周期上,现有的数据库复制产品可以按照设定的周期去检查并执行同步,但是对于不同类别的数据库,这种周期往往只限于两个数据库之间,这意味着拥有多个多种数据库的数据同步应用,倘若要更改数据同步周期,那么就需要逐一修改各个数据库的同步时间设置,过程十分繁琐。第三,在数据同步处理上,现有的数据库复制产品只能处理两个表、两个字段之间的对应类型转换,如果一张表中的字段需要根据另一张表中的一个或多个字段进行求值运算得到,则现有技术方案难以处理。
技术实现思路
本专利技术提供了一种数据同步方法及装置,其目的是为了解决现有的数据库同步技术对异构数据库的支持较弱,不具备足够的灵活性的问题。为了达到上述目的,本专利技术的实施例提供了一种数据同步方法,应用于多级异构数据库,该方法包括:获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式;在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息;在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令;将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。优选地,获取目标数据库与所有源数据库之间的关联关系之前,该方法包括:获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式;对所有的第二数据转换公式进行分析计算,得到第一数据转换公式。优选地,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。优选地,在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,具体包括:为每个源数据库分别创建一个控制表;在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,并将变化数据的标识信息存储在源数据库对应的控制表中。优选地,在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令,具体包括:在同步周期内,根据变化数据所在源数据表的表名以及关联关系中的映射关系,确定对应的目标数据库中的待同步数据表;根据变化数据所在源数据表的主键值、变化数据的变化类型值以及第一数据转换公式,生成待同步数据表对应的数据同步指令,并将变化数据的变化时间作为数据同步指令的下达时间。优选地,将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库之后,该方法还包括:获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。优选地,获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言的步骤之后,该方法还包括:获取目标数据库对与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:当执行结果为已执行时,删除控制表中对应的变化数据的标识信息。为了实现上述目的,本专利技术的实施例还提供了一种数据同步装置,应用于多级异构数据库,该装置包括:获取模块,用于获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式;标识获取模块,用于在一预设的同步周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息;生成模块,用于在同步周期内,根据关联关系以及变化数据的标识信息,生成数据同步指令;发送模块,用于将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库。优选地,数据同步装置包括:映射获取模块,用于在获取模块获取目标数据库与所有源数据库之间的关联关系之前,获取目标数据库中的每个待同步数据表与所有源数据库中的源数据表之间的映射关系以及第二数据转换公式;分析模块,用于对所有的第二数据转换公式进行分析计算,得到第一数据转换公式。优选地,变化数据的标识信息至少包括:变化数据所在源数据表的表名、变化数据所在源数据表的主键值、变化数据的变化类型值和变化数据的变化时间。优选地,标识获取模块具体包括:创建子模块,用于为每个源数据库分别创建一个控制表;存储子模块,用于在一预设周期内,当检测到源数据库中的数据发生变化时,获取变化数据的标识信息,并将变化数据的标识信息存储在源数据库对应的控制表中。优选地,生成模块具体包括:确定子模块,用于在同步周期内,根据变化数据所在源数据表的表名以及关联关系中的映射关系,确定对应的目标数据库中的待同步数据表;指令生成子模块,用于根据变化数据所在源数据表的主键值、变化数据的变化类型值以及第一数据转换公式,生成待同步数据表对应的数据同步指令,并将变化数据的变化时间作为数据同步指令的下达时间。优选地,该装置还包括:执行模块,用于在发送模块将数据同步指令封装成目标数据库对应的结构化查询语言,发送给目标数据库之后,获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言。优选地,该装置还包括:删除模块,用于在执行模块获取数据同步指令的下达时间,使目标数据库执行与当前时间最接近的数据同步指令对应的结构化查询语言之后,获取目标数据库对与当前时间最接近的数据同步指令对应的结构化查询语言的执行结果:当执行结果为已执行时,删除控制表中对应的变化数据的标识信息。本专利技术的上述方案至少包括以下有益效果:本专利技术提供的数据同步方法及装置,无需改变数据库系统原有的程序逻辑,通过获取源数据库中变化数据的标识信息,再根据关联关系将变化数据的信息转换成本文档来自技高网
...
一种数据同步方法及装置

【技术保护点】
一种数据同步方法,应用于多级异构数据库,其特征在于,所述方法包括:获取目标数据库与所有源数据库之间的关联关系,所述关联关系至少包括所述目标数据库与所有源数据库之间的映射关系以及预设的第一数据转换公式;在一预设的同步周期内,当检测到所述源数据库中的数据发生变化时,获取变化数据的标识信息;在所述同步周期内,根据所述关联关系以及所述变化数据的标识信息,生成数据同步指令;将所述数据同步指令封装成所述目标数据库对应的结构化查询语言,发送给所述目标数据库。

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

【专利技术属性】
技术研发人员:郭相军
申请(专利权)人:北大方正集团有限公司北京北大方正电子有限公司
类型:发明
国别省市:北京,11

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

1