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

文档序号:9564605阅读:来源:国知局
例所述的方案不但适用于源端单个表的数据同步到目的端单个表的场景,同样适用于源端多个表同步数据到目的端一个表的场景,从而应用范围更加广泛,实用性更高。
【附图说明】
[0053]图1为本发明实施例一种数据同步方法流程示意图;
[0054]图2为本发明实施例一种数据同步装置结构示意图;
[0055]图3为本发明实施例再一种数据同步装置结构示意图;
[0056]图4为本发明实施例再一种数据同步装置结构示意图;
[0057]图5为本发明实施例再一种数据同步装置结构示意图;
[0058]图6为本发明实施例1中数据同步方案设计原理示意图;
[0059]图7为本发明实施例1中触发器的触发原理示意图;
[0060]图8为本发明实施例1中主表A上建立触发器的示意图;
[0061]图9为本发明实施例1中从表B上建立触发器的示意图;
[0062]图10为本发明实施例1中字典转换函数实现示意图;
[0063]图11为本发明实施例1中触发器最终结果示意图;
[0064]图12为本发明实施例2中同步代码自动生成原理示意图。
【具体实施方式】
[0065]为了辅助对本发明方案的理解,首先介绍部分数据同步相关的技术:
[0066]关系数据库:关系数据库以行和列的形式存储数据,这一系列的行和列组成为一个表,一组表组成了数据库。表与表之间的数据记录有关联关系。用户用SQL查询语句来检索数据库中的数据。目前业界比较流行的关系型数据库有oracle、mysql、sql server等。
[0067]SQL:结构化查询语言(Structured Query Language)简称SQL。结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
[0068]触发器(trigger):触发器是关系型数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert, delete, update)时就会激活它执行。
[0069]存储过程:存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
[0070]视图:视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
[0071]函数:函数是数据库提供给开发人员的一种工具,它可以接收输入数据,并返回输出结果。函数分数据库标准函数和用户自定义函数。
[0072]本发明实施例提供一种数据同步方法,如图1所示,该方法包括:
[0073]步骤101:从多个关联表中获取源端变化数据;
[0074]步骤102:对所述获取的源端变化数据进行转换;
[0075]步骤103:根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。
[0076]可选的,所述从多个关联表中获取源端变化数据之前,该方法还包括:
[0077]根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;
[0078]根据所述视图的结构建立记录数据变化的源端变化记录表;
[0079]分别建立各源端表的触发器。
[0080]可选的,所述获取源端数据,包括:
[0081]各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
[0082]可选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
[0083]当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
[0084]当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
[0085]当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
[0086]可选的,该方法还包括建立中间表、目标变化记录表以及中间表的触发器,所述对所述获取的源端变化数据进行转换,包括:
[0087]根据源端变化记录表数据生成相应的SQL语句;
[0088]在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
[0089]考虑到源端和目的端数据库因种种原因可能会有所变动,同步代码因此也需要进行重新修改,以支持这种变动。特别是对源端多个表同步到目的端一个表的情况,目前的软件或专利都没有提供同步代码自动快速生成方案。如何很方便快速的重新生成同步代码是数据同步工作的一个重要方面。
[0090]可选的,该方法还包括:
[0091]根据同步模板和配置信息,获取同步代码;
[0092]根据所述同步代码实现数据同步。
[0093]可选的,该方法还包括,根据以下一项或多项获取配置信息:
[0094]源端数据库和目的端数据库的链接信息;
[0095]源端表间的关联关系;
[0096]源端和目的端的列对应关系;
[0097]源端和目的端的字典对应关系。
[0098]本发明实施例还提供了一种数据同步装置,如图2所示,该装置包括:第一获取模块21、转换模块22和第二获取模块23 ;其中,
[0099]所述第一获取模块21,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表;
[0100]所述转换模块22,用于对所述获取的源端变化数据进行转换;
[0101]所述第二获取模块23,用于根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。
[0102]可选的,如图3所示,该装置还包括建立模块24,
[0103]所述建立模块24,用于根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;以及根据所述视图的结构建立记录数据变化的源端变化记录表;以及分别建立各源端表的触发器。
[0104]可选的,所述第一获取模块21包括各源端表的触发器,
[0105]所述第一获取模块21,具体用于通过各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
[0106]可选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
[0107]当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1