CN100454311C - 基于sql的数据同步方法及装置 - Google Patents

基于sql的数据同步方法及装置 Download PDF

Info

Publication number
CN100454311C
CN100454311C CNB2006101682696A CN200610168269A CN100454311C CN 100454311 C CN100454311 C CN 100454311C CN B2006101682696 A CNB2006101682696 A CN B2006101682696A CN 200610168269 A CN200610168269 A CN 200610168269A CN 100454311 C CN100454311 C CN 100454311C
Authority
CN
China
Prior art keywords
data
database
sql
sync
name
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.)
Active
Application number
CNB2006101682696A
Other languages
English (en)
Other versions
CN101000619A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2006101682696A priority Critical patent/CN100454311C/zh
Publication of CN101000619A publication Critical patent/CN101000619A/zh
Application granted granted Critical
Publication of CN100454311C publication Critical patent/CN100454311C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于SQL的数据同步方法,包括以下步骤:建立数据关联同步规则;根据所述数据关联同步规则对主数据库中的数据进行操作;根据所述数据关联同步规则将操作后的数据同步到系统内与所述数据相关联的同步数据库中。本发明公开了一种基于SQL的数据同步装置,包括:配置单元,解析单元,数据同步单元。利用本发明,可以以简单、有效地实现系统内相互关联数据的同步,提高数据的可维护性。

Description

基于SQL的数据同步方法及装置
技术领域
本发明涉及数据处理技术,具体涉及一种基于SQL的数据同步方法及装置。
背景技术
在一个企业中,各种各样的数据会很多,通常会将这些数据存放在数据库中进行统一管理。同时为了有效地区分这些数据,将其放在数据库的不同表中。数据与数据之间存在着很强的关联,当一个数据修改后,与之相关联的数据必须保证得到修改,也就是说,要保持数据的一致性。如何保证不同表中数据的一致性对于企业相当重要。另外,一个企业会存在多个应用系统,当一个应用系统对数据库进行数据操作后,还需要将数据操作事件通知给外部系统。
在一般应用系统中,通常采用硬编码的方式,将需要同步的数据直接在代码中实现,同时通过编码调用外部系统的接口,将数据操作事件通知给外部系统。例如,对数据库A进行了插入数据操作,需要将这些数据同时插入到数据库B,那么硬编码会在代码中将对数据库B的操作写在代码中。同时,通过调用外部系统的接口,将对数据库的操作通知给外部系统。
这种系统在应用场景改变时就需要修改源代码来满足需求,随着数据和应用场景的增加,需要不断地修改源代码,因而会导致代码维护的难度越来越大。例如,当业务发生更改,对数据库A进行插入数据操作后,不需要将数据插入到B,也不需要将其通知外部系统,由于是硬编码,所以需要进行修改代码后重新编译和部署,才能满足业务需求。
为了减少修改源代码带来的不便,还可以通过配置文件来进行数据的同步,调用外部系统的接口,将事件通知给外部系统。例如,对数据库A进行了插入数据操作,需要将这些数据同时插入到数据库B中。此时,读取配置文件获取数据库B的连接信息,将数据更新到数据库B中。同时,通过调用外部系统的接口,将对数据库的操作通知给外部系统。
虽然通过配置文件的方式可以进行数据同步,但是配置文件中的信息为数据库连接信息,对数据的同步操作语句仍然需要硬编码来实现;而且由于在代码中调用了外部系统的接口,当外部系统的接口发生改变时,会导致系统出现问题,例如原来在代码中调用的外部接口为接收,如外部系统接口发生变化后,变成了发送。但是原代码没有修改,会导致系统不能正常运行。而且,当有新的应用系统想得到数据库操作通知时,也需要修改代码,影响了系统的扩展性。
发明内容
本发明一方面提供一种基于SQL的数据同步方法,以简单、有效地实现系统内相互关联数据的同步。
本发明另一方面提供一种基于SQL的数据同步装置,以提高系统内数据的可维护性。
为此,本发明提供的技术方案如下:
本发明实施例一种基于SQL的数据同步方法,包括以下步骤:
建立数据关联同步规则;
根据所述数据关联同步规则对主数据库中的数据进行操作;
根据所述数据关联同步规则将操作后的数据同步到系统内与所述数据相关联的同步数据库中。
本发明实施例一种基于SQL的数据同步装置,包括:
配置单元,用于建立并存储数据关联同步规则,所述数据关联同步规则包括:数据库信息表和与所述数据库相关的操作信息集合,每个操作信息集合对应一个命名SQL;
解析单元,用于获取数据操作所需的命名SQL,并根据所述命名SQL解析所述数据关联同步规则,获取主数据库及与所述主数据库相关联的同步数据库信息;
数据同步单元,用于对所述主数据库和所述同步数据库进行数据同步操作。
由以上本发明实施例提供的技术方案可以看出,本发明可以按照用户预先定制好的数据关联同步规则进行数据同步,对数据库的操作完全依据该规则,从而方便了对数据的维护。当业务场景发生变化时,只需要简单修改已有的数据关联同步规则即能满足新的应用需要。
附图说明
图1是本发明基于SQL的数据同步方法第一实施例的流程图;
图2是本发明方法实施例中数据关联同步规则的结构示意图;
图3是本发明基于SQL的数据同步方法第二实施例的流程图;
图4是本发明装置第一实施例的原理框图;
图5是本发明装置第二实施例的原理框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
因为对于某个应用系统,可以有一个或多个数据库存储系统操作数据,比如,系统管理数据、用户服务数据等。在有多个数据库的情况下,当对某个数据进行操作后,就需要修改与其相关的数据库中的数据,以保持数据的一致性。如果需要与其他外部系统关联,还需要通知所述外部系统进行相应的数据操作处理。
为此,本发明实施例通过预先定制数据关联同步规则,在需要对数据库(包括主数据库和同步数据库)进行数据操作时,根据定制的数据关联同步规则进行数据操作及同步,如果需要,还可以根据定制的数据关联同步规则将数据操作事件通知给外部系统。
参照图1所示本发明方法第一实施例的流程,该实施例包括以下步骤:
步骤101:建立数据关联同步规则。
所述数据关联同步规则包括:数据库信息表和与数据库相关的操作信息集合。其中,数据库信息表至少包括数据库名称及数据库地址;操作信息集合至少包括主数据库信息及与所述主数据库对应的触发信息列表,所述触发信息列表至少包括操作信息集合标签、同步数据库名库、同步操作类型。
可以采用SQL结构组织所述操作信息集合中的信息,并为每个操作信息集合确定一个命名SQL。
例如,建立图2所示结构的数据关联同步规则:
其中,每个config节点对应一个数据关联同步规则,包括DataSource节点和命名SQL节点。每个DataSource节点对应一个数据库信息表,在每个数据库信息表中指示了数据库的连接信息,包括了数据库名称及地址。每个命名SQL节点指示了一组操作信息集合,即主数据库信息和触发信息列表,所述触发信息列表包括与主数据库相关联的同步数据库及同步操作信息。为了保证递归方式关联的数据库中数据的一致性,还可以在主数据库信息和触发信息列表中分别设置操作信息集合标签,以指示主数据库信息及触发信息列表所属的命名SQL。同一个命名SQL中的主数据库信息和触发信息列表中设置的操作信息集合标签相同。每个命名SQL中可以有一个或多个触发信息列表,每条数据关联同步规则中可以有一个或多个操作信息集合。
步骤102:根据建立的数据关联同步规则对主数据库中的数据进行操作。
下面依照图2所示的数据关联同步规则结构,详细说明对主数据库中的数据进行操作的过程。
首先,根据业务逻辑获取数据操作所需的命名SQL,查找与该命名SQL对应的操作信息集合,即可得到需要进行数据操作的主数据库名称;然后根据该主数据库名称查找所述数据库信息表,即可获得主数据库的地址。通过该地址建立与主数据库的连接,从而对该主数据库中的数据进行业务逻辑所需的操作。可以利用SQL语句将对数据的操作配置在主数据库信息中,在建立与主数据库的连接后,将SQL语句和业务逻辑传入的参数进行绑定来完成对主数据库中数据的操作过程。
在一个数据库(主数据库)中的数据发生变化后,需要将变化后的数据同步到其他相关联的数据库(同步数据库)中。在本发明的实施例中,同样,依照预先建立的数据关联同步规则进行数据同步。
步骤103:根据建立的数据关联同步规则将操作后的数据同步到系统内与所述数据相关联的同步数据库中。
要实现整个系统内相关联的数据的同步,首先要根据数据关联同步规则确定需要对哪些数据库进行同步操作。在前面已经提到,在触发信息列表中包括了同步数据库信息及同步操作类型,不同的操作类型表示了与主数据库相关联的同步数据库的关联方式,可以是单一层次的关联,即只有一层相关联的同步数据库,也可以是递归关联,即有多层相关联的同步数据库。而且每层相关联的同步数据库可以有一个或多个。
前面也提到,每个命名SQL中可能包含多个触发信息列表。因此,可以遍历与所述数据操作所需的命名SQL对应的操作信息集合中的触发信息列表,获取触发信息列表中的同步操作类型,根据该同步操作类型确定与所述数据相关联的同步数据库。然后再利用数据库信息表中提供的数据库地址信息,建立与同步数据库的连接,并对同步数据库进行数据同步操作。
根据应用需要,可以设置以下同步操作类型:
(1)普通SQL,表示只有一层相关联的同步数据库,即本触发信息列表中包含的同步数据库;
(2)命名SQL,表示有多层相关联的同步数据库,即除了本触发信息列表中包含的同步数据库,还有与该同步数据库相关联的其他同步数据库,此时该同步数据库角色为所述其他同步数据库的主数据库;
如果需要对外部系统进行事件通知,则还可以增加第(3)种同步操作类型,即
(3)JAVA类,表示需要进行外部通知。
下面基于图2所示结构的数据关联同步规则,进一步详细捆描述了本发明在不同同步操作类型情况下的处理过程。
参照图3所示本发明方法第二实施例的流程,包括以下步骤:
步骤301:系统应用通过操作信息集合标签和操作数据参数调用配置的数据关联同步规则。
步骤302:确定所述标签所属的命名SQL。
步骤303:找出命名SQL中的主数据库名称,并根据该主数据库名称从数据库信息表中找出该主数据库的地址信息。
步骤304:将主数据库信息中的SQL语句和操作数据参数进行绑定。
因为插入数据库的数据是由应用输入,在配置中仅仅为一些参数,例如“:1,:2”,应用输入不同的参数,可以实现将不同的数据插入数据库,在操作数据库之前必须将数据和参数(:1,:2)进行绑定。
步骤305:获取主数据库连接并对主数据库中的数据执行操作。
步骤306:遍历命名SQL中的触发信息列表,获取该列表中的同步操作类型。
步骤307:判断同步操作类型是否为命名SQL。如果是,则返回步骤302;如果不是,进到步骤308。
步骤308:进一步判断同步操作类型是否为普通SQL。如果是,则返回步骤303;如果不是,则进到步骤309。
步骤309:进一步判断同步操作类型是否为JAVA类。如果是,则进到步骤310;如果不是,则进到步骤312。
步骤310:生成JAVA对象调用方法。
利用生成的JAVA对象调用方法将修改后的数据通知给所述系统的外部应用。JAVA对象可以通过JAVA虚拟机动态地加载,加载后生成一个JAVA对象,通过调用对象的方法实现事件通知。
步骤311:判断触发信息列表是否结束。如果是,则进到步骤312;否则,返回步骤306。
步骤312:结束。
从该流程可以看出,命名SQL的触发信息列表可以有多个,如果同步操作类型为命名SQL,则该命名SQL也包含一个触发信息列表。在这种情况下,需要进行递归触发,也就是说,逐层对各层的同步数据库进行同步。
如果外部系统想获取通知,可以自己实现一个JAVA类,并将该JAVA类配置到所述配置文件中,系统就能将数据操作事件通知给外部系统,从而方便了系统外部应用的扩展。
在本发明方法的实际应用中,可以将建立的数据关联同步规则写到一个XML格式的配置文件中,在系统启动后,将该配置文件加载到系统缓存中,以提高数据关联同步规则的查找及解析速度。
例如,XML格式的配置文件中包含以下信息:
<datasource>
      <!—数据源标识-->
      <dsname>ds001</dsname>
      <!--数据库连接信息-->
      <value>10.164.124.158:1521:ora92:oracle:oracle</value>
</datasource>
<datasource>
      <!—数据源标识-->
      <dsname>ds002</dsname>
      <!--数据库连接信息-->
      <value>10.164.124.160:60000/RCSP:db2inst1:db2inst1</value>
</datasource>
说明:上面配置了两个数据源,ds001为oracle数据库的连接信息包括数据库地址,实例名称数据库的用户名和秘密;ds002为db2数据库的连接信息包括数据库地址名称和数据库用户名和密码。
<naming-sql>
      <label>ns001</label>
      <dsname>ds001</dsname>
      <sql>insert into t1(name,age,sex)vaules(:1,:2,:3)</sql>
      <!--普通sql触发信息-->
      <trigger>
             <label>trigger1</label>
             <!--数据源名称,和上面的对应-->
             <dsname>ds002<dsname>
             <!--sql语句内容-->
             <value>update t2 set id=:1 where id=300</value>
             <!--参数条件-->
             <trigger_condition>:1>200</trigger_condition>
             <!--类型-->
             <type>sql</type>
     </trigger>
       <!--JAVA类调用,通知外部应用-->
       <trigger>
              <label>trigger2</label>
              <value>com.huawei.csp.notiofy(:1,:2)</value>
              <trigger_condition>:2<30</trigger_condition>
              <type>JAVA_CLASS</type>
       </trigger>
       <!--普通sql触发信息-->
       <trigger>
             <label>trigger3</label>
             <value>ns002</value>
             <trigger_condition>:1<200</trigger_condition>
             <type>naming_sql</type>
      </trigger>
</naming-sql>
<naming-sql>
      <label>ns002</label>
      <dsname>ds002</dsname>
      <sql>update t4 set age=:2where age=20</sql>
</naming-sql>
说明:上面配置了两个Naming-SQL。
可以进行以下操作:
操作ns001:
对数据库ds001的表t1进行插入操作,插入一条记录。
普通sql触发,对ds002的表进行数据同步,当应用传入的参数:1满足条件,就进行数据同步,对表t2的记录进行更新。
namingsql触发,对ds002的表进行数据同步,当应用传入的参数:1满足条件,就进行数据同步,对表t4的记录进行更新。
JAVA_CLASS调用,当应用传入的参数:2满足条件,进行对外部系统进行通知。
操作ns002:
对数据库ds002的表t4进行更新操作。
说明:在ns001中对ds001进行数据操作,对ds002进行数据同步和对外部系统进行通知。在ns002中对ds002进行数据操作,没有数据同步。
可见,本发明通过一个配置文件就可以实现数据的一致性,方便了数据库的维护。当业务应用场景发生变化时,只需要简单修改一下配置文件中的触发信息列表就能满足新的应用需求。
例如:对上述naming_sql中的dsname进行配置修改就能更改主数据库的位置。
依据上述思想,本发明还提供了一种基于SQL的数据同步装置。
参照图4所示本发明装置第一实施例的原理框图:
在该实施例中,本发明装置包括:配置单元41、解析单元42和数据同步单元42。其中,配置单元41用于建立并存储数据关联同步规则,所述数据关联同步规则包括:数据库信息表和与所述数据库相关的操作信息集合,每个操作信息集合对应一个命名SQL;解析单元42用于获取数据操作所需的命名SQL,并根据所述命名SQL解析所述数据关联同步规则,获取主数据库及与所述主数据库相关联的同步数据库信息;数据同步单元43用于对所述主数据库和所述同步数据库进行数据同步操作。
可以采用SQL结构组织所述操作信息集合中的信息,并为每个操作信息集合确定一个命名SQL。将数据关联同步规则存储为XML格式的配置文件,其中,所述数据库信息表至少包括数据库名称及数据库地址;所述操作信息集合至少包括主数据库信息及与所述主数据库对应的触发信息列表,所述触发信息列表至少包括操作信息集合标签、同步数据库名库、同步操作类型。如前面介绍的图2所示的结构。
数据库信息表的存储结构可以如下表1所示:
 名称  对象
 ds1  数据库连接1
 Ds2  数据库连接2
 ...  ...
命名SQL信息表的存储结构可如下表2所示:
  名称  对象
  label1  命名SQL1
  label2  命名SQL2
  ...   ...
命名SQL包括主数据库信息和触发信息列表,主数据库信息中的对象有:标签名称,SQL语句,数据库名称等;触发信息列表的内容有:同步操作类型,SQL语句,数据库名称,JAVA类路径、方法名等。
在该实施例中,解析单元42包括:参数输入子单元421、主数据库地址获取子单元422、同步操作类型获取子单元423、同步数据库地址获取子单元424。其中,
参数输入子单元421用于输入数据操作所需的命名SQL;主数据库地址获取子单元422用于查找与所述命名SQL对应的操作信息集合,获取需要进行数据操作的主数据库名称,并根据所述主数据库名称查找所述数据库信息表,获取所述主数据库的地址;同步操作类型获取子单元423用于遍历与所述命名SQL对应的操作信息集合中的触发信息列表,获取所述触发信息列表中的同步操作类型;同步数据库地址获取子单元424用于根据同步操作类型确定与所述数据相关联的同步数据库。如果同步数据库类型为普通SQL,则同步数据库地址获取子单元424直接确定触发信息列表中的同步数据库为与所述数据相关联的同步数据库;如果同步数据库类型为命名SQL,则同步数据库地址获取子单元424根据触发信息列表中的操作信息集合标签进行递归查找,确定与所述数据相关联的同步数据库。递归查找的过程与前面图3所示本发明方法实施例中描述的过程类似,在此不再赘述。
当需要对系统内的数据库进行操作时,调用解析单元42,向参数输入子单元421输入命名SQL的标签(可以是一个字符串)和参数(比如,sql语句中对应的参数(:1,:2)的值)。调用解析单元42根据所述标签和参数从配置单元41中解析出主数据库的信息(包括主数据库名称、地址等),比如图中的主数据库401,以及满足要求的触发信息列表,通过所有满足要求的触发信息列表,获取触发信息列表中的同步操作类型,并根据该同步操作类型确定相关联的同步数据库的信息,比如,图中所示的同步数据库402和同步数据库403。这些功能由解析单元42中的各子单元分别完成。
数据同步单元43根据解析单元42解析出的主数据库的信息,通过数据库接口40建立与主数据库401的连接,对主数据库401中的数据进行操作。然后,根据解析单元42解析出的相关联的同步数据库的信息,通过数据库接口40依次建立与各同步数据库的连接,并对相关数据进行同步操作。
当业务应用场景发生变化时,只需要简单修改配置单元中存储的触发信息列表就能满足新的应用需求。
参照图5,图5示出了本发明装置第二实施例的原理框图:
与图4所示本发明装置第一实施例不同的是,在该实施中,增加了缓存单元51和事件通知单元52。其中,
缓存单元51用于系统启动时加载数据关联同步规则,也就是说,在系统启动时将配置单元41中存储的信息加载到缓存单元51中,供解析单元42调用,以提高解析速度。缓存单元51可以通过列表的方式将各种信息进行缓存,如上面所述的表1和表2的方式。
事件通知单元52用于根据同步操作类型获取子单元423获取的同步操作类型将修改后的数据通知给外部应用系统50。
外部应用系统可以自己实现一个JAVA类,并将类路径和方法名以及方法参数等信息写入配置文件。这样,在同步操作类型获取子单元423获取到同步操作类型为JAVA类时,事件通知单元52就可以根据这些配置信息将事件通知外部应用系统。
可见,利用该实施例提供的本发明装置,企业可以根据自身的业务特点和具体的应用场景需要,定制出数据关联同步规则,使应用系统可以方便灵活地操作多个数据源,实现数据之间一致性同步。数据之间的关联业务逻辑不需要在代码中实现,和具体的代码无关,只需要将数据之间的关联写入配置文件。当数据之间的关联发生变化时,可以通过修改配置文件的触发信息就能实现,维护相当方便。而且通过调用JAVA类通知外部系统,可以很方便实现应用的扩展。JAVA类的业务逻辑由具体的应用确定,只需要将实现了业务逻辑的类写入配置文件,当有数据操作发生时就能通知外部系统实现业务逻辑。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (16)

1、一种基于SQL的数据同步方法,其特征在于,包括以下步骤:
建立数据关联同步规则;
根据所述数据关联同步规则对主数据库中的数据进行操作;
根据所述数据关联同步规则将操作后的数据同步到系统内与所述数据相关联的同步数据库中。
2、根据权利要求1所述的方法,其特征在于,
所述数据关联同步规则包括:数据库信息表和与所述数据库相关的操作信息集合;
所述数据库信息表至少包括数据库名称及数据库地址;
所述操作信息集合至少包括主数据库信息及与所述主数据库对应的触发信息列表,所述触发信息列表至少包括操作信息集合标签、同步数据库名库、同步操作类型。
3、根据权利要求2所述的方法,其特征在于,
采用SQL结构组织所述操作信息集合中的信息,并为每个操作信息集合确定一个命名SQL。
4、根据权利要求3所述的方法,其特征在于,所述根据所述数据关联同步规则对主数据库中的数据进行操作的步骤包括:
获取数据操作所需的命名SQL;
查找与所述命名SQL对应的操作信息集合,获取需要进行数据操作的主数据库名称;
根据所述主数据库名称查找所述数据库信息表,获取所述主数据库的地址;
根据获取的所述主数据库的地址建立与所述主数据库的连接;
对所述主数据库中的数据进行业务逻辑所需的操作。
5、根据权利要求4所述的方法,其特征在于,所述根据所述数据关联同步规则将操作后的数据同步到系统内与所述数据相关联的同步数据库中的步骤包括:
遍历与所述数据操作所需的命名SQL对应的操作信息集合中的触发信息列表,获取所述触发信息列表中的同步操作类型;
根据所述同步操作类型确定与所述数据相关联的同步数据库;
根据所述数据库信息表建立与所述同步数据库的连接,并对所述同步数据库进行数据同步操作。
6、根据权利要求5所述的方法,其特征在于,所述根据所述同步操作类型确定与所述数据相关联的同步数据库的步骤包括:
(1)判断所述同步操作类型;
(2)如果所述触发类型为普通SQL,则直接确定所述触发信息列表中的同步数据库为与所述数据相关联的同步数据库;
(3)如果所述触发类型为命名SQL,则获取所述触发信息列表中的操作信息集合标签;
(4)根据所述操作信息集合标签查找所述数据关联同步规则,获取与所述操作信息集合标签对应的命名SQL;
(5)查找与所述命名SQL对应的操作信息集合,确定所述主数据库信息中的主数据库为与所述数据相关联的同步数据库;
(6)遍历所述操作信息集合中的触发信息列表,获取所述触发信息列表中的同步操作类型;
(7)返回步骤(1)。
7、根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述数据关联同步规则将修改后的数据通知给所述系统的外部应用。
8、根据权利要求7所述的方法,其特征在于,所述根据所述数据关联同步规则将修改后的数据通知给所述系统的外部应用的步骤包括:
遍历与所述数据操作所需的命名SQL对应的操作信息集合中的触发信息列表,获取所述触发信息列表中的同步操作类型;
如果所述同步操作类型为JAVA类,则生成JAVA对象调用方法;
利用生成的JAVA对象调用方法将修改后的数据通知给所述系统的外部应用。
9、根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:
将所述数据关联同步规则存储在配置文件中,并在所述系统启动后将所述配置文件中的内容加载到缓存中。
10、一种基于SQL的数据同步装置,其特征在于,包括:
配置单元,用于建立并存储数据关联同步规则,所述数据关联同步规则包括:数据库信息表和与所述数据库相关的操作信息集合,每个操作信息集合对应一个命名SQL;
解析单元,用于获取数据操作所需的命名SQL,并根据所述命名SQL解析所述数据关联同步规则,获取主数据库及与所述主数据库相关联的同步数据库信息;
数据同步单元,用于对所述主数据库和所述同步数据库进行数据同步操作。
11、根据权利要求10所述的装置,其特征在于,
所述数据库信息表至少包括数据库名称及数据库地址;所述操作信息集合至少包括主数据库信息及与所述主数据库对应的触发信息列表,所述触发信息列表至少包括操作信息集合标签、同步数据库名库、同步操作类型。
12、根据权利要求11所述的装置,其特征在于,
所述配置单元采用SQL结构组织所述操作信息集合中的信息,并为每个操作信息集合确定一个命名SQL。
13、根据权利要求12所述的装置,其特征在于,所述解析单元包括:
参数输入子单元,用于输入数据操作所需的命名SQL;
主数据库地址获取子单元,用于查找与所述命名SQL对应的操作信息集合,获取需要进行数据操作的主数据库名称,并根据所述主数据库名称查找所述数据库信息表,获取所述主数据库的地址;
同步操作类型获取子单元,用于遍历与所述命名SQL对应的操作信息集合中的触发信息列表,获取所述触发信息列表中的同步操作类型;
同步数据库地址获取子单元,用于根据所述同步操作类型确定与所述数据相关联的同步数据库。
14、根据权利要求13所述的装置,其特征在于,
当所述同步数据库类型为普通SQL时,所述同步数据库地址获取子单元直接确定所述触发信息列表中的同步数据库为与所述数据相关联的同步数据库;
当所述同步数据库类型为命名SQL时,所述同步数据库地址获取子单元根据所述触发信息列表中的操作信息集合标签进行递归查找,确定与所述数据相关联的同步数据库。
15、根据权利要求13所述的装置,其特征在于,所述装置还包括:
事件通知单元,用于根据所述同步操作类型获取子单元获取的同步操作类型将修改后的数据通知给外部应用。
16、根据权利要求10至15任一项所述的装置,其特征在于,所述装置还包括:
缓存单元,用于系统启动时加载所述数据关联同步规则。
CNB2006101682696A 2006-12-25 2006-12-25 基于sql的数据同步方法及装置 Active CN100454311C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101682696A CN100454311C (zh) 2006-12-25 2006-12-25 基于sql的数据同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101682696A CN100454311C (zh) 2006-12-25 2006-12-25 基于sql的数据同步方法及装置

Publications (2)

Publication Number Publication Date
CN101000619A CN101000619A (zh) 2007-07-18
CN100454311C true CN100454311C (zh) 2009-01-21

Family

ID=38692591

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101682696A Active CN100454311C (zh) 2006-12-25 2006-12-25 基于sql的数据同步方法及装置

Country Status (1)

Country Link
CN (1) CN100454311C (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102065066A (zh) * 2009-11-17 2011-05-18 中国移动通信集团广东有限公司 一种数据业务门户的数据业务内容访问装置及访问方法
CN102402596B (zh) * 2011-11-07 2016-01-20 北京搜狗科技发展有限公司 一种主从分离数据库的读写方法和系统
CN102521412B (zh) * 2011-12-28 2013-04-24 用友软件股份有限公司 数据关联装置和数据关联方法
CN103514223B (zh) * 2012-06-28 2017-09-01 阿里巴巴集团控股有限公司 一种数据仓库数据同步方法和系统
CN103577465A (zh) * 2012-08-02 2014-02-12 亿赞普(北京)科技有限公司 系统数据处理系统及方法
CN102915377B (zh) * 2012-11-14 2016-08-03 深圳市宏电技术股份有限公司 数据库转换或同步方法及系统
CN103873519B (zh) * 2012-12-14 2018-03-27 北京金山云网络技术有限公司 一种数据同步方法、客户端、服务器、终端和系统
CN103020243A (zh) * 2012-12-18 2013-04-03 新浪网技术(中国)有限公司 一种数据库主从复制结构更换方法及装置
CN104111957B (zh) * 2013-04-22 2017-08-11 阿里巴巴集团控股有限公司 一种分布式事务同步的方法及系统
WO2015127607A1 (zh) * 2014-02-26 2015-09-03 宇龙计算机通信科技(深圳)有限公司 终端侧和服务器侧数据同步装置及方法
CN103955486B (zh) * 2014-04-14 2017-08-01 五八同城信息技术有限公司 分布式服务系统及其数据更新、数据查询的方法
CN105117441A (zh) * 2015-08-11 2015-12-02 北京思特奇信息技术股份有限公司 一种数据工单处理方法及系统
CN106021494A (zh) * 2016-05-19 2016-10-12 中国银联股份有限公司 一种主数据同步方法及装置
CN106302473B (zh) * 2016-08-18 2019-09-17 深圳市金证科技股份有限公司 一种SQL Server数据库的复制维护方法及系统
CN106599268A (zh) * 2016-12-22 2017-04-26 曙光信息产业(北京)有限公司 一种sql语句的处理方法和装置
CN108804457B (zh) * 2017-04-28 2021-10-08 北京京东尚科信息技术有限公司 数据同步和处理方法及装置、电子设备和计算机可读介质
CN107315764B (zh) * 2017-05-11 2020-04-21 北京奇艺世纪科技有限公司 一种非关系型数据库关联数据的更新方法及系统
CN108255434B (zh) * 2018-01-15 2021-11-02 腾讯科技(深圳)有限公司 标签管理方法、管理装置及计算机可读存储介质
CN108920670A (zh) * 2018-07-06 2018-11-30 深圳市小牛在线互联网信息咨询有限公司 缓存同步方法、装置、系统及存储介质
CN116541448B (zh) * 2023-05-10 2023-12-08 汉友科技有限公司 基于SaaS的数据集成处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030055820A1 (en) * 2001-07-30 2003-03-20 Aigen Michael L. Process for generating enterprise java bean components from an SQL database
CN1877623A (zh) * 2006-07-03 2006-12-13 华为技术有限公司 一种触发业务工作流的方法及系统
CN1945579A (zh) * 2006-10-28 2007-04-11 辽河石油勘探局 应用PL/SQL触发器实现Oracle数据库表间数据同步技术

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030055820A1 (en) * 2001-07-30 2003-03-20 Aigen Michael L. Process for generating enterprise java bean components from an SQL database
CN1877623A (zh) * 2006-07-03 2006-12-13 华为技术有限公司 一种触发业务工作流的方法及系统
CN1945579A (zh) * 2006-10-28 2007-04-11 辽河石油勘探局 应用PL/SQL触发器实现Oracle数据库表间数据同步技术

Also Published As

Publication number Publication date
CN101000619A (zh) 2007-07-18

Similar Documents

Publication Publication Date Title
CN100454311C (zh) 基于sql的数据同步方法及装置
CN104714828B (zh) 应用安装、运行方法及装置
CA2555630C (en) Integrated deployment of software projects
CN103942281B (zh) 一种对持久化存储的对象进行操作的方法及装置
CN101799826B (zh) 一种基于虚拟视图的网络化数据共享系统及方法
US7987193B2 (en) System and method for setting status flags for mobile data distribution based on distribution rules
US20140258234A1 (en) Synchronization of cms data to mobile device storage
CN102262674A (zh) 一种分布式内存数据库的数据同步方法及系统
CN102333108A (zh) 分布式缓存同步系统及方法
CN108446327A (zh) 业务系统动态生成方法、装置、计算机设备及存储介质
CN108566291A (zh) 一种事件处理的方法、服务器及系统
CN105843867A (zh) 基于元数据模型的检索方法和基于元数据模型的检索装置
CN103440285A (zh) 大型手机游戏系统及其数据库更新方法
CN1271812C (zh) 无线设备同步系统及方法
CN105608197A (zh) 一种高并发下Memcache数据的获取方法及系统
US20070245296A1 (en) Code management in a distributed software development environment
CN113438317B (zh) 一种网关数据处理的方法及装置
CN104580183A (zh) 一种跨集群的数据同步方法和装置
CN101093450A (zh) 一种多cpu互斥的方法
CN101621396A (zh) 单板自动管理装置及方法
CN112328406A (zh) 一种基于tcc的微服务分布式事务系统以及业务处理方法
CN102387264A (zh) 呼叫控制策略的处理方法、装置及呼叫中心
CN101458628A (zh) 一种程序版本管理方法
CN103870280A (zh) 基于flex与jsp的网页无缝结合处理方法
KR20170129540A (ko) 룰 관리 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant