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

文档序号:9564605阅读:来源:国知局
转换触发器。
[0150]针对这些数据同步代码,如果手动编写很多套工作量是很大的,另外,为了避免对于源端关联关系的变化、字典对应关系的变化以及各层触发器列多引发的开发工作量,可以定义一个模板,以字典转换关系和列对应关系为输入,用字符串替换的方法替换模板中的对应字符串即可生成新的一套同步代码。
[0151]为对提取的同步代码模板中的字符串进行替换,需要事先配置一些信息,这些信息包括以下一项或多项:
[0152]源端数据库和目的端数据库的链接信息;
[0153]源端表间的关联关系;
[0154]源端和目的端的列对应关系;
[0155]源端和目的端的字典对应关系。
[0156]另外,同步代码生成的处理流程包括:
[0157]读取源端和目的端相关数据对象的模板信息。
[0158]读取配置信息,通过这些信息拼装出模板中需要替换的实际字符串;
[0159]替换模板中相应的字符串;
[0160]在相应的库中执行各同步对象的建立语句。
[0161]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【主权项】
1.一种数据同步方法,其特征在于,源端包括一个以上相关联的数据表,该方法包括: 从多个关联表中获取源端变化数据; 对所述获取的源端变化数据进行转换; 根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。2.根据权利要求1所述的方法,其特征在于,所述从多个关联表中获取源端变化数据之前,该方法还包括: 根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键; 根据所述视图的结构建立记录数据变化的源端变化记录表; 分别建立各源端表的触发器。3.根据权利要求2所述的方法,其特征在于,所述获取源端数据,包括: 各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。4.根据权利要求3所述的方法,其特征在于,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括: 当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表; 当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表; 当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。5.根据权利要求3所述的方法,其特征在于,该方法还包括建立中间表、目标变化记录表以及中间表的触发器,所述对所述获取的源端变化数据进行转换,包括: 根据源端变化记录表数据生成相应的SQL语句; 在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。6.根据权利要求1至5任一项所述的方法,其特征在于,该方法还包括: 根据同步模板和配置信息,获取同步代码; 根据所述同步代码实现数据同步。7.根据权利要求6所述的方法,其特征在于,该方法还包括,根据以下一项或多项获取配置信息: 源端数据库和目的端数据库的链接信息; 源端表间的关联关系; 源端和目的端的列对应关系; 源端和目的端的字典对应关系。8.一种数据同步装置,其特征在于,该装置包括:第一获取模块、转换模块和第二获取模块;其中, 所述第一获取模块,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表; 所述转换模块,用于对所述获取的源端变化数据进行转换; 所述第二获取模块,用于根据转换后的数据获取变更操作到目的端执行,实现数据同止/J/ O9.根据权利要求8所述的装置,其特征在于,该装置还包括建立模块, 所述建立模块,用于根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;以及根据所述视图的结构建立记录数据变化的源端变化记录表;以及分别建立各源端表的触发器。10.根据权利要求9所述的装置,其特征在于,所述第一获取模块包括各源端表的触发器,所述第一获取模块,具体用于通过各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。11.根据权利要求10所述的装置,其特征在于,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括: 当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表; 当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表; 当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。12.根据权利要求10所述的装置,其特征在于, 所述建立模块,还用于建立中间表、目标变化记录表以及中间表的触发器, 所述转换模块,包括中间表上建立的触发器,具体用于根据源端变化记录表数据生成相应的SQL语句;在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。13.根据权利要求8至12任一项所述的装置,其特征在于,该装置还包括第三获取模块; 所述第三获取模块,用于根据同步模板和配置信息,获取同步代码,以便上述其他模块根据所述同步代码实现数据同步。14.根据权利要求13所述的装置,其特征在于,该装置还包括第四获取模块, 所述第四获取模块用于根据以下一项或多项获取配置信息: 源端数据库和目的端数据库的链接信息; 源端表间的关联关系; 源端和目的端的列对应关系; 源端和目的端的字典对应关系。
【专利摘要】本发明实施例公开了一种数据同步方法及装置,该方法包括:从多个关联表中获取源端变化数据;对所述获取的源端变化数据进行转换;根据转换后的数据获取变更操作到目的端执行,实现数据同步。该装置包括:第一获取模块,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表;转换模块,用于对所述获取的源端变化数据进行转换;第二获取模块,用于根据转换后的数据获取变更操作到目的端执行,实现数据同步。本发明实施例所述的方案不但适用于源端单个表的数据同步到目的端单个表的场景,同样适用于源端多个表相关联的数据同步数据到目的端一个表的场景,从而应用范围更加广泛,实用性更高。
【IPC分类】G06F17/30
【公开号】CN105320680
【申请号】CN201410336348
【发明人】郭义华, 许利群, 陈佳科, 常耀斌, 高飞
【申请人】中国移动通信集团公司
【公开日】2016年2月10日
【申请日】2014年7月15日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1