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

文档序号:9564605阅读:253来源:国知局
一种数据同步方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据业务领域,尤其涉及一种数据同步方法及装置。
【背景技术】
[0002]信息系统建设通常具有阶段性和分布性的特点,这就导致“信息孤岛”现象的存在。“信息孤岛”是指不同软件间,尤其是不同部门间的数据信息不能共享,造成系统中存在大量冗余数据、垃圾数据,无法保证数据的一致性,严重地阻碍了企业信息化建设的整体进程。为解决这一问题,人们开始关注数据集成研究。数据集成与同步就是将若干个分散的数据源中的数据,逻辑地或物理地集成到一个统一的数据集合中。数据集成的核心任务是要将互相关联的分布式异构数据源集成到一起,使用户能够以透明的方式访问这些数据源。
[0003]为了实现数据集成与同步,相关技术的基本思想是通过各种方式(从日志、从应用、从源端库触发)获取源端数据库变化,这些变化通过sql语句或者jms、Xml等格式传输到目的端数据表中执行。
[0004]可以看出,相关技术在处理源端单个表的数据同步到目的端单个表,特别是源端和目的端表结构一致的情况下,能实现数据同步,但是,由于实际的数据同步远非这样简单,比如源端多表关联后的数据同步到目的端一个表、数据在中间过程需要各类转换、为适应结构的变化需要重新修改同步代码等,因此,相关技术并不适用于源端多个表相关联的数据同步数据到目的端一个表的情况。

【发明内容】

[0005]有鉴于此,为解决现有存在的技术问题,本发明实施例提供:
[0006]一种数据同步方法,源端包括一个以上相关联的数据表,该方法包括:
[0007]从多个关联表中获取源端变化数据;
[0008]对所述获取的源端变化数据进行转换;
[0009]根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。
[0010]优选的,所述从多个关联表中获取源端变化数据之前,该方法还包括:
[0011]根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;
[0012]根据所述视图的结构建立记录数据变化的源端变化记录表;
[0013]分别建立各源端表的触发器。
[0014]优选的,所述获取源端数据,包括:
[0015]各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
[0016]优选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
[0017]当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
[0018]当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
[0019]当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
[0020]优选的,该方法还包括建立中间表、目标变化记录表以及中间表的触发器,所述对所述获取的源端变化数据进行转换,包括:
[0021 ] 根据源端变化记录表数据生成相应的SQL语句;
[0022]在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
[0023]优选的,该方法还包括:
[0024]根据同步模板和配置信息,获取同步代码;
[0025]根据所述同步代码实现数据同步。
[0026]优选的,该方法还包括,根据以下一项或多项获取配置信息:
[0027]源端数据库和目的端数据库的链接信息;
[0028]源端表间的关联关系;
[0029]源端和目的端的列对应关系;
[0030]源端和目的端的字典对应关系。
[0031]一种数据同步装置,包括:第一获取模块、转换模块和第二获取模块;其中,
[0032]所述第一获取模块,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表;
[0033]所述转换模块,用于对所述获取的源端变化数据进行转换;
[0034]所述第二获取模块,用于根据转换后的数据获取变更操作到目的端执行,实现数据同步。
[0035]优选的,该装置还包括建立模块,
[0036]所述建立模块,用于根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;以及根据所述视图的结构建立记录数据变化的源端变化记录表;以及分别建立各源端表的触发器。
[0037]优选的,所述第一获取模块包括各源端表的触发器,所述第一获取模块,具体用于通过各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
[0038]优选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
[0039]当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
[0040]当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
[0041]当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
[0042]优选的,所述建立模块,还用于建立中间表、目标变化记录表以及中间表的触发器,
[0043]所述转换模块,包括中间表上建立的触发器,具体用于根据源端变化记录表数据生成相应的SQL语句;在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
[0044]优选的,该装置还包括第三获取模块;
[0045]所述第三获取模块,用于根据同步模板和配置信息,获取同步代码,以便上述其他模块根据所述同步代码实现数据同步。
[0046]优选的,该装置还包括第四获取模块,
[0047]所述第四获取模块用于根据以下一项或多项获取配置信息:
[0048]源端数据库和目的端数据库的链接信息;
[0049]源端表间的关联关系;
[0050]源端和目的端的列对应关系;
[0051]源端和目的端的字典对应关系。
[0052]本发明实施例所述的数据同步方法及装置,从多个关联表中获取源端变化数据;对所述获取的源端变化数据进行转换;根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。本发明实施
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1