CN105320680A - 一种数据同步方法及装置 - Google Patents

一种数据同步方法及装置 Download PDF

Info

Publication number
CN105320680A
CN105320680A CN201410336348.8A CN201410336348A CN105320680A CN 105320680 A CN105320680 A CN 105320680A CN 201410336348 A CN201410336348 A CN 201410336348A CN 105320680 A CN105320680 A CN 105320680A
Authority
CN
China
Prior art keywords
source
data
trigger
change records
acquisition
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.)
Pending
Application number
CN201410336348.8A
Other languages
English (en)
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.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group 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 China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201410336348.8A priority Critical patent/CN105320680A/zh
Publication of CN105320680A publication Critical patent/CN105320680A/zh
Pending legal-status Critical Current

Links

Abstract

本发明实施例公开了一种数据同步方法及装置,该方法包括:从多个关联表中获取源端变化数据;对所述获取的源端变化数据进行转换;根据转换后的数据获取变更操作到目的端执行,实现数据同步。该装置包括:第一获取模块,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表;转换模块,用于对所述获取的源端变化数据进行转换;第二获取模块,用于根据转换后的数据获取变更操作到目的端执行,实现数据同步。本发明实施例所述的方案不但适用于源端单个表的数据同步到目的端单个表的场景,同样适用于源端多个表相关联的数据同步数据到目的端一个表的场景,从而应用范围更加广泛,实用性更高。

Description

一种数据同步方法及装置
技术领域
本发明涉及数据业务领域,尤其涉及一种数据同步方法及装置。
背景技术
信息系统建设通常具有阶段性和分布性的特点,这就导致“信息孤岛”现象的存在。“信息孤岛”是指不同软件间,尤其是不同部门间的数据信息不能共享,造成系统中存在大量冗余数据、垃圾数据,无法保证数据的一致性,严重地阻碍了企业信息化建设的整体进程。为解决这一问题,人们开始关注数据集成研究。数据集成与同步就是将若干个分散的数据源中的数据,逻辑地或物理地集成到一个统一的数据集合中。数据集成的核心任务是要将互相关联的分布式异构数据源集成到一起,使用户能够以透明的方式访问这些数据源。
为了实现数据集成与同步,相关技术的基本思想是通过各种方式(从日志、从应用、从源端库触发)获取源端数据库变化,这些变化通过sql语句或者jms、xml等格式传输到目的端数据表中执行。
可以看出,相关技术在处理源端单个表的数据同步到目的端单个表,特别是源端和目的端表结构一致的情况下,能实现数据同步,但是,由于实际的数据同步远非这样简单,比如源端多表关联后的数据同步到目的端一个表、数据在中间过程需要各类转换、为适应结构的变化需要重新修改同步代码等,因此,相关技术并不适用于源端多个表相关联的数据同步数据到目的端一个表的情况。
发明内容
有鉴于此,为解决现有存在的技术问题,本发明实施例提供:
一种数据同步方法,源端包括一个以上相关联的数据表,该方法包括:
从多个关联表中获取源端变化数据;
对所述获取的源端变化数据进行转换;
根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。
优选的,所述从多个关联表中获取源端变化数据之前,该方法还包括:
根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;
根据所述视图的结构建立记录数据变化的源端变化记录表;
分别建立各源端表的触发器。
优选的,所述获取源端数据,包括:
各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
优选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
优选的,该方法还包括建立中间表、目标变化记录表以及中间表的触发器,所述对所述获取的源端变化数据进行转换,包括:
根据源端变化记录表数据生成相应的SQL语句;
在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
优选的,该方法还包括:
根据同步模板和配置信息,获取同步代码;
根据所述同步代码实现数据同步。
优选的,该方法还包括,根据以下一项或多项获取配置信息:
源端数据库和目的端数据库的链接信息;
源端表间的关联关系;
源端和目的端的列对应关系;
源端和目的端的字典对应关系。
一种数据同步装置,包括:第一获取模块、转换模块和第二获取模块;其中,
所述第一获取模块,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表;
所述转换模块,用于对所述获取的源端变化数据进行转换;
所述第二获取模块,用于根据转换后的数据获取变更操作到目的端执行,实现数据同步。
优选的,该装置还包括建立模块,
所述建立模块,用于根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;以及根据所述视图的结构建立记录数据变化的源端变化记录表;以及分别建立各源端表的触发器。
优选的,所述第一获取模块包括各源端表的触发器,所述第一获取模块,具体用于通过各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
优选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
优选的,所述建立模块,还用于建立中间表、目标变化记录表以及中间表的触发器,
所述转换模块,包括中间表上建立的触发器,具体用于根据源端变化记录表数据生成相应的SQL语句;在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
优选的,该装置还包括第三获取模块;
所述第三获取模块,用于根据同步模板和配置信息,获取同步代码,以便上述其他模块根据所述同步代码实现数据同步。
优选的,该装置还包括第四获取模块,
所述第四获取模块用于根据以下一项或多项获取配置信息:
源端数据库和目的端数据库的链接信息;
源端表间的关联关系;
源端和目的端的列对应关系;
源端和目的端的字典对应关系。
本发明实施例所述的数据同步方法及装置,从多个关联表中获取源端变化数据;对所述获取的源端变化数据进行转换;根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。本发明实施例所述的方案不但适用于源端单个表的数据同步到目的端单个表的场景,同样适用于源端多个表同步数据到目的端一个表的场景,从而应用范围更加广泛,实用性更高。
附图说明
图1为本发明实施例一种数据同步方法流程示意图;
图2为本发明实施例一种数据同步装置结构示意图;
图3为本发明实施例再一种数据同步装置结构示意图;
图4为本发明实施例再一种数据同步装置结构示意图;
图5为本发明实施例再一种数据同步装置结构示意图;
图6为本发明实施例1中数据同步方案设计原理示意图;
图7为本发明实施例1中触发器的触发原理示意图;
图8为本发明实施例1中主表A上建立触发器的示意图;
图9为本发明实施例1中从表B上建立触发器的示意图;
图10为本发明实施例1中字典转换函数实现示意图;
图11为本发明实施例1中触发器最终结果示意图;
图12为本发明实施例2中同步代码自动生成原理示意图。
具体实施方式
为了辅助对本发明方案的理解,首先介绍部分数据同步相关的技术:
关系数据库:关系数据库以行和列的形式存储数据,这一系列的行和列组成为一个表,一组表组成了数据库。表与表之间的数据记录有关联关系。用户用SQL查询语句来检索数据库中的数据。目前业界比较流行的关系型数据库有oracle、mysql、sqlserver等。
SQL:结构化查询语言(StructuredQueryLanguage)简称SQL。结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
触发器(trigger):触发器是关系型数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
存储过程:存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
视图:视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
函数:函数是数据库提供给开发人员的一种工具,它可以接收输入数据,并返回输出结果。函数分数据库标准函数和用户自定义函数。
本发明实施例提供一种数据同步方法,如图1所示,该方法包括:
步骤101:从多个关联表中获取源端变化数据;
步骤102:对所述获取的源端变化数据进行转换;
步骤103:根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。
可选的,所述从多个关联表中获取源端变化数据之前,该方法还包括:
根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;
根据所述视图的结构建立记录数据变化的源端变化记录表;
分别建立各源端表的触发器。
可选的,所述获取源端数据,包括:
各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
可选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
可选的,该方法还包括建立中间表、目标变化记录表以及中间表的触发器,所述对所述获取的源端变化数据进行转换,包括:
根据源端变化记录表数据生成相应的SQL语句;
在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
考虑到源端和目的端数据库因种种原因可能会有所变动,同步代码因此也需要进行重新修改,以支持这种变动。特别是对源端多个表同步到目的端一个表的情况,目前的软件或专利都没有提供同步代码自动快速生成方案。如何很方便快速的重新生成同步代码是数据同步工作的一个重要方面。
可选的,该方法还包括:
根据同步模板和配置信息,获取同步代码;
根据所述同步代码实现数据同步。
可选的,该方法还包括,根据以下一项或多项获取配置信息:
源端数据库和目的端数据库的链接信息;
源端表间的关联关系;
源端和目的端的列对应关系;
源端和目的端的字典对应关系。
本发明实施例还提供了一种数据同步装置,如图2所示,该装置包括:第一获取模块21、转换模块22和第二获取模块23;其中,
所述第一获取模块21,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表;
所述转换模块22,用于对所述获取的源端变化数据进行转换;
所述第二获取模块23,用于根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。
可选的,如图3所示,该装置还包括建立模块24,
所述建立模块24,用于根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;以及根据所述视图的结构建立记录数据变化的源端变化记录表;以及分别建立各源端表的触发器。
可选的,所述第一获取模块21包括各源端表的触发器,
所述第一获取模块21,具体用于通过各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
可选的,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
可选的,所述建立模块24,还用于建立中间表、目标变化记录表以及中间表的触发器,
所述转换模块22,包括中间表上建立的触发器,具体用于根据源端变化记录表数据生成相应的SQL语句;在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
可选的,如图4所示,该装置还包括第三获取模块25;
所述第三获取模块25,用于根据同步模板和配置信息,获取同步代码,以便上述其他模块根据所述同步代码实现数据同步。
可选的,如图5所示,该装置还包括第四获取模块26,
所述第四获取模块用于根据以下一项或多项获取配置信息:
源端数据库和目的端数据库的链接信息;
源端表间的关联关系;
源端和目的端的列对应关系;
源端和目的端的字典对应关系。
本发明上述实施例可以应用于源端多个表同步数据到目的端一个表的场景,从而应用范围更加广泛,实用性更高。
下面通过具体实施例对本发明的技术方案进行详细说明。
实施例1
本发明实施例利用数据库的触发器、函数、存储过程等技术,实现数据库表级别的数据同步。除了能实现常规的源端一个表到目的端一个表的数据同步外,还提出了支持源端多个表的关联数据同步到目的端一个表的解决方案,从而应用范围更加广泛,实用性更高。另外,应对源端或者目的端表结构变化等原因引起同步代码的变化,本发明实施例提出了导入配置自动生成同步代码的程序设计和实现方案。
本实施例中数据同步方案设计原理如图6所示,图6描述多表到一表的数据同步过程,图中表示需要把源端的四个表(A、B、C、D)关联的查询结果同步到目的端表(tarTab)。数据同步涉及到三个层次,分别是源端数据获取层、中间数据转换层和目标结果层。以下分别进行详细阐述:
1、源端数据获取层
源端工作主要包括:
1)根据源端表间关系建立视图;
这里,根据表间关联关系建立视图。确定出其中的某个表的主键作为整个关联结果的主键,此表我们称其为主表,其他表称为从表。本实施例中建立视图可以采用下所示的方式:
CreateviewsourceViewasSelecta.id,b.col1,c.col2,d.coln
fromA,B,C,Dwherea.id=b.fidand......
2)根据视图结构建立记录数据变化的中间表sourceSdwTab;
需要说明的是,此表含有列cmd,old_id,old_col1,old_col2,old_coln,new_id,new_col1,new_col2,new_coln,inserttime。此表各列的类型按照视图中涉及的列的类型来定义。
3)在涉及的所有源表上分别建立触发器。
这里,即对主表和从表分别建立触发器。
源端获取层主要解决的是如何获取源端多个表关联查询的结果变化的问题。技术上本实施例利用触发器进行实现。这类似于要在源端一个视图的数据集上进行数据的触发,然而因视图上是无法像单个表那样建立触发器的,因此需要在源端视图涉及的所有表上分别建立触发器。
为实现源端四个表的关联数据的变化记录到变化记录表中,我们需要在四个表中分别建立触发器。本实施例中,触发器的触发原理如图7所示,参考图7,为实现触发器的触发功能,首先需要确定一个表的某个列作为查询条件的唯一标示,例如,A表的id作为查询结果的每条记录的唯一标示。触发器需要拦截各个表的DML操作,并把关联结果的数据记录到源端变化记录表中。三种DML操作的具体处理思路如下:
插入(Insert)操作:首先判断本条数据是否是满足关联条件的数据,如果不满足不做任何操作。如果满足关联条件,向变化记录表中插入关联语句查询出的数据;这个限制能够做到由最后来数据的那个表把数据触发到源端数据变化记录表中。
删除(Delete)操作:直接用主表的主键向记录表中插入delete需要的数据。对于主表触发器直接插入带主表主键的数据;对于从表需要关联查询出主表的主键并插入到变化记录表中。
更新(Update)操作:首先判断变化的列是否是同步需要的列,如果不是需要的列则不进行处理。否则为了简化处理逻辑,先执行先删除后插入操作,具体的删除和插入的代码同上面提到的操作一致。
本实施例中,主表A上建立触发器可以如图8所示,从表B上建立触发器可以如图9所示,需要说明的是,C、D上的触发器类似于B。
2、数据变换层
数据变换层主要解决的是把源端触发的数据进行字典转换和/或数据类型转换等操作,并触发到最终的目标变化记录表。使用的技术是触发器和函数。处理方法如下:
第一步,建立中间表midTab和目标变化记录表finSdwTab,中间表midTab按照源端视图的类型和长度进行定义。目标变化记录表finSdwTab表结构按目的表的类型和长度进行定义。
第二步:建立字典转换函数,实现中间表midTab和目标变化记录表finSdwTab的数据字典转换功能。本实施例中,字典转换函数可以如图10所示。
第三步:在中间表midTab上建立触发器,当源端数据获取层获取的变化数据对应的SQL语句在中间表midTab上中执行的时候,自动通过触发器触发到目标变化记录表finSdwTab表。此触发器会调用字典转换函数和/或数据库常规函数实现数据的字典转换和/或类型转换。本实施例中,该触发器最终结果举例如图11所示。
3、结果生成层
在此层可以根据目的端的数据格式需求,生成XML、SQL语句或JMS消息等数据同步信息传输到目的端,并在目的表tarTab上进行相应的操作。此层涉及的技术是常规技术,在此不再赘述。
实施例2
本实施例对用于实施例1所述同步过程的同步代码自动生成方案进行描述,同步代码自动生成原理如图12所示,根据图12可以看出,要实现数据的同步,涉及的同步代码包括源端数据变化获取层的视图、数据变化记录表和捕捉源端数据变化的触发器,中间库的中间表midTab、finSdwTab表、类型和字典转换触发器。
针对这些数据同步代码,如果手动编写很多套工作量是很大的,另外,为了避免对于源端关联关系的变化、字典对应关系的变化以及各层触发器列多引发的开发工作量,可以定义一个模板,以字典转换关系和列对应关系为输入,用字符串替换的方法替换模板中的对应字符串即可生成新的一套同步代码。
为对提取的同步代码模板中的字符串进行替换,需要事先配置一些信息,这些信息包括以下一项或多项:
源端数据库和目的端数据库的链接信息;
源端表间的关联关系;
源端和目的端的列对应关系;
源端和目的端的字典对应关系。
另外,同步代码生成的处理流程包括:
读取源端和目的端相关数据对象的模板信息。
读取配置信息,通过这些信息拼装出模板中需要替换的实际字符串;
替换模板中相应的字符串;
在相应的库中执行各同步对象的建立语句。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (14)

1.一种数据同步方法,其特征在于,源端包括一个以上相关联的数据表,该方法包括:
从多个关联表中获取源端变化数据;
对所述获取的源端变化数据进行转换;
根据转换后的数据获取变更操作到目的端执行,从而实现数据同步。
2.根据权利要求1所述的方法,其特征在于,所述从多个关联表中获取源端变化数据之前,该方法还包括:
根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;
根据所述视图的结构建立记录数据变化的源端变化记录表;
分别建立各源端表的触发器。
3.根据权利要求2所述的方法,其特征在于,所述获取源端数据,包括:
各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
4.根据权利要求3所述的方法,其特征在于,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
5.根据权利要求3所述的方法,其特征在于,该方法还包括建立中间表、目标变化记录表以及中间表的触发器,所述对所述获取的源端变化数据进行转换,包括:
根据源端变化记录表数据生成相应的SQL语句;
在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
6.根据权利要求1至5任一项所述的方法,其特征在于,该方法还包括:
根据同步模板和配置信息,获取同步代码;
根据所述同步代码实现数据同步。
7.根据权利要求6所述的方法,其特征在于,该方法还包括,根据以下一项或多项获取配置信息:
源端数据库和目的端数据库的链接信息;
源端表间的关联关系;
源端和目的端的列对应关系;
源端和目的端的字典对应关系。
8.一种数据同步装置,其特征在于,该装置包括:第一获取模块、转换模块和第二获取模块;其中,
所述第一获取模块,用于从多个关联表中获取源端变化数据,其中,源端包括一个以上相关联的数据表;
所述转换模块,用于对所述获取的源端变化数据进行转换;
所述第二获取模块,用于根据转换后的数据获取变更操作到目的端执行,实现数据同步。
9.根据权利要求8所述的装置,其特征在于,该装置还包括建立模块,
所述建立模块,用于根据源端表间关联关系建立视图,从关联的多个源端表中确定一主表,其他源端表为从表,主表的主键为所述多个关联的源端表的主键;以及根据所述视图的结构建立记录数据变化的源端变化记录表;以及分别建立各源端表的触发器。
10.根据权利要求9所述的装置,其特征在于,所述第一获取模块包括各源端表的触发器,所述第一获取模块,具体用于通过各源端表的触发器在所述源端表发生变化时,将相应的变化数据触发到所述源端变化记录表。
11.根据权利要求10所述的装置,其特征在于,所述源端表的触发器在所述源端表发生变化时,将变化数据触发到所述源端变化记录表,包括:
当源端表发生插入操作时,判断本条数据变化是否满足关联条件,如果是,从关联的源端表中查询获取相应的列的数据,并插入到源端变化记录表;
当源端表发生删除操作且所述源端表为主表时,把所述源端表的主键信息记录到源端变化记录表;当源端表发生删除操作且所述源端表为从表时,根据表间关联关系查询出所述源端表对应主表的主键,并将所述主键信息记录到源端变化记录表;
当源端表发生更新操作且变化的列是需要同步的列,则先执行删除操作,之后判断本条数据变化是否满足关联条件,如果满足,从关联的源端表中查询获取相应的列的数据插入到源端变化记录表。
12.根据权利要求10所述的装置,其特征在于,
所述建立模块,还用于建立中间表、目标变化记录表以及中间表的触发器,
所述转换模块,包括中间表上建立的触发器,具体用于根据源端变化记录表数据生成相应的SQL语句;在所述中间表上执行所述SQL语句时,所述中间表上建立的触发器调用字典转换函数和/或数据库常规函数进行数据的字典转换和/或类型转换。
13.根据权利要求8至12任一项所述的装置,其特征在于,该装置还包括第三获取模块;
所述第三获取模块,用于根据同步模板和配置信息,获取同步代码,以便上述其他模块根据所述同步代码实现数据同步。
14.根据权利要求13所述的装置,其特征在于,该装置还包括第四获取模块,
所述第四获取模块用于根据以下一项或多项获取配置信息:
源端数据库和目的端数据库的链接信息;
源端表间的关联关系;
源端和目的端的列对应关系;
源端和目的端的字典对应关系。
CN201410336348.8A 2014-07-15 2014-07-15 一种数据同步方法及装置 Pending CN105320680A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410336348.8A CN105320680A (zh) 2014-07-15 2014-07-15 一种数据同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410336348.8A CN105320680A (zh) 2014-07-15 2014-07-15 一种数据同步方法及装置

Publications (1)

Publication Number Publication Date
CN105320680A true CN105320680A (zh) 2016-02-10

Family

ID=55248082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410336348.8A Pending CN105320680A (zh) 2014-07-15 2014-07-15 一种数据同步方法及装置

Country Status (1)

Country Link
CN (1) CN105320680A (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599268A (zh) * 2016-12-22 2017-04-26 曙光信息产业(北京)有限公司 一种sql语句的处理方法和装置
CN106873998A (zh) * 2017-02-15 2017-06-20 济南浪潮高新科技投资发展有限公司 一种非模态多窗体数据同步的实现方法
CN107016027A (zh) * 2016-12-08 2017-08-04 阿里巴巴集团控股有限公司 实现业务信息快速搜索的方法和装置
CN107798120A (zh) * 2017-11-10 2018-03-13 中国银行股份有限公司 一种数据转换方法及装置
CN108228628A (zh) * 2016-12-15 2018-06-29 亿度慧达教育科技(北京)有限公司 一种结构化查询语言数据库中的宽表生成方法及其装置
CN108595522A (zh) * 2018-03-27 2018-09-28 北京明朝万达科技股份有限公司 一种增量同步方法、装置及系统
CN108647237A (zh) * 2018-03-30 2018-10-12 厦门海迈科技股份有限公司 异构关系型数据库间的数据同步方法
CN109101510A (zh) * 2017-06-20 2018-12-28 上海与腾科技有限公司 一种企业项目信息获取方法及其系统
CN109189852A (zh) * 2018-08-01 2019-01-11 武汉达梦数据库有限公司 一种数据同步的方法及用于数据同步的装置
CN109558448A (zh) * 2018-10-10 2019-04-02 北京海数宝科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN109614444A (zh) * 2018-11-12 2019-04-12 武汉达梦数据库有限公司 一种数据同步时的数据初始化方法
CN110008209A (zh) * 2018-12-07 2019-07-12 阿里巴巴集团控股有限公司 数据库增强方法及装置
CN110659328A (zh) * 2019-08-30 2020-01-07 中国人民财产保险股份有限公司 数据查询方法、装置、设备及计算机可读存储介质
CN111046035A (zh) * 2019-10-29 2020-04-21 三盟科技股份有限公司 数据自动化处理方法、系统、计算机设备及可读存储介质
CN111221918A (zh) * 2019-11-04 2020-06-02 深圳力维智联技术有限公司 基于关系型数据库的数据更新方法、装置、产品及介质
CN108573006B (zh) * 2017-06-06 2021-03-26 北京金山云网络技术有限公司 跨机房数据同步系统、方法及装置、电子设备
CN113760836A (zh) * 2021-01-27 2021-12-07 北京京东振世信息技术有限公司 一种宽表计算方法和装置
WO2022147908A1 (zh) * 2021-01-05 2022-07-14 平安科技(深圳)有限公司 基于表关联的丢失数据回收方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120239612A1 (en) * 2011-01-25 2012-09-20 Muthian George User defined functions for data loading
CN102929878A (zh) * 2011-08-09 2013-02-13 阿里巴巴集团控股有限公司 一种数据库变更管理方法及装置
CN103761318A (zh) * 2014-01-27 2014-04-30 中国工商银行股份有限公司 一种关系型异构数据库数据同步的方法及系统
CN103793514A (zh) * 2014-02-11 2014-05-14 华为技术有限公司 数据库同步方法及数据库

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120239612A1 (en) * 2011-01-25 2012-09-20 Muthian George User defined functions for data loading
CN102929878A (zh) * 2011-08-09 2013-02-13 阿里巴巴集团控股有限公司 一种数据库变更管理方法及装置
CN103761318A (zh) * 2014-01-27 2014-04-30 中国工商银行股份有限公司 一种关系型异构数据库数据同步的方法及系统
CN103793514A (zh) * 2014-02-11 2014-05-14 华为技术有限公司 数据库同步方法及数据库

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107016027A (zh) * 2016-12-08 2017-08-04 阿里巴巴集团控股有限公司 实现业务信息快速搜索的方法和装置
CN108228628A (zh) * 2016-12-15 2018-06-29 亿度慧达教育科技(北京)有限公司 一种结构化查询语言数据库中的宽表生成方法及其装置
CN106599268A (zh) * 2016-12-22 2017-04-26 曙光信息产业(北京)有限公司 一种sql语句的处理方法和装置
CN106873998A (zh) * 2017-02-15 2017-06-20 济南浪潮高新科技投资发展有限公司 一种非模态多窗体数据同步的实现方法
CN108573006B (zh) * 2017-06-06 2021-03-26 北京金山云网络技术有限公司 跨机房数据同步系统、方法及装置、电子设备
CN109101510A (zh) * 2017-06-20 2018-12-28 上海与腾科技有限公司 一种企业项目信息获取方法及其系统
CN107798120A (zh) * 2017-11-10 2018-03-13 中国银行股份有限公司 一种数据转换方法及装置
CN108595522A (zh) * 2018-03-27 2018-09-28 北京明朝万达科技股份有限公司 一种增量同步方法、装置及系统
CN108647237A (zh) * 2018-03-30 2018-10-12 厦门海迈科技股份有限公司 异构关系型数据库间的数据同步方法
CN109189852A (zh) * 2018-08-01 2019-01-11 武汉达梦数据库有限公司 一种数据同步的方法及用于数据同步的装置
CN109189852B (zh) * 2018-08-01 2021-05-28 武汉达梦数据库有限公司 一种数据同步的方法及用于数据同步的装置
CN109558448A (zh) * 2018-10-10 2019-04-02 北京海数宝科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN109614444B (zh) * 2018-11-12 2023-05-16 武汉达梦数据库股份有限公司 一种数据同步时的数据初始化方法
CN109614444A (zh) * 2018-11-12 2019-04-12 武汉达梦数据库有限公司 一种数据同步时的数据初始化方法
CN110008209A (zh) * 2018-12-07 2019-07-12 阿里巴巴集团控股有限公司 数据库增强方法及装置
CN110008209B (zh) * 2018-12-07 2024-04-19 创新先进技术有限公司 数据库增强方法及装置
CN110659328A (zh) * 2019-08-30 2020-01-07 中国人民财产保险股份有限公司 数据查询方法、装置、设备及计算机可读存储介质
CN110659328B (zh) * 2019-08-30 2022-04-29 中国人民财产保险股份有限公司 数据查询方法、装置、设备及计算机可读存储介质
CN111046035A (zh) * 2019-10-29 2020-04-21 三盟科技股份有限公司 数据自动化处理方法、系统、计算机设备及可读存储介质
CN111221918A (zh) * 2019-11-04 2020-06-02 深圳力维智联技术有限公司 基于关系型数据库的数据更新方法、装置、产品及介质
WO2022147908A1 (zh) * 2021-01-05 2022-07-14 平安科技(深圳)有限公司 基于表关联的丢失数据回收方法、装置、设备及介质
CN113760836B (zh) * 2021-01-27 2024-04-12 北京京东振世信息技术有限公司 一种宽表计算方法和装置
CN113760836A (zh) * 2021-01-27 2021-12-07 北京京东振世信息技术有限公司 一种宽表计算方法和装置

Similar Documents

Publication Publication Date Title
CN105320680A (zh) 一种数据同步方法及装置
CN100468396C (zh) 用于任意数据模型的映射体系结构
US7953891B2 (en) Systems and methods for scheduling data flow execution based on an arbitrary graph describing the desired data flow
CN100562874C (zh) 一种增量数据捕获方法和系统
CN102541529B (zh) 一种查询页面生成装置和方法
CN101206670B (zh) 用于将非结构化信息转换成内容的系统和方法
CN103430144A (zh) 数据源分析
KR20060045622A (ko) 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈
CN103186541A (zh) 一种映射关系生成方法及装置
CN103699638A (zh) 一种基于配置参数实现跨数据库类型同步数据的方法
US5625812A (en) Method of data structure extraction for computer systems operating under the ANSI-92 SQL2 outer join protocol
CN101989301A (zh) 一种支持多数据源的索引维护方法
US20150066977A1 (en) Method and system for managing digital resources
CN102054034A (zh) 企业信息系统的业务基础数据持久化实现方法
CN107346314A (zh) 一种数据库单向同步方法
CN103049251A (zh) 一种数据库持久层装置及数据库操作方法
CN104346331A (zh) Xml数据库的检索方法及系统
WO2013071336A1 (en) A method and structure for managing multiple electronic forms and their records using a static database
CN103197932A (zh) 一种开发无模式文档型数据库应用的业务组件模型
CN102760164B (zh) 一种关系数据库管理系统与xml数据库管理系统之间数据交换的方法
CN104866508A (zh) 在云环境下管理文件的方法与装置
CN105550176A (zh) 一种关系数据库与xml的基本映射方法
CN111625596A (zh) 新能源实时消纳调度的多源数据同步共享方法及系统
CN102279886A (zh) 元数据处理方法及设备
CN104834742A (zh) 一种基于sca的etl架构管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160210

RJ01 Rejection of invention patent application after publication