CN104298769A - 一种数据库间共有域差异数据同步系统及方法 - Google Patents
一种数据库间共有域差异数据同步系统及方法 Download PDFInfo
- Publication number
- CN104298769A CN104298769A CN201410594875.9A CN201410594875A CN104298769A CN 104298769 A CN104298769 A CN 104298769A CN 201410594875 A CN201410594875 A CN 201410594875A CN 104298769 A CN104298769 A CN 104298769A
- Authority
- CN
- China
- Prior art keywords
- data
- variance
- tables
- module
- pattern library
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24537—Query rewriting; Transformation of operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据库间共有域差异数据同步系统及方法,包括读取差异数据,根据差异数据信息查询该数据表的相关配置信息,根据相关配置信息生成第一查询条件;根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;根据差异数据信息查询该差异数据的基准信息,根据该基准信息生成第二查询条件;根据第二查询条件在基准库中查找该差异数据的存储记录,利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句,利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。本发明保证数据同步处理时效,提高数据同步准确性,降低因操作人员的疏忽造成错误及存在风险隐患。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据库间共有域差异数据同步系统及方法。
背景技术
在业务运营支撑系统实际运行过程中,两个数据库之间存在共有域,共有域数据即在两个数据库中均存在的数据,以其在一个数据库中的状态为基准,另一个数据库的共有域处的数据应保持与基准库的数据一致。但共有域数据出现数据部一致的情况,比如有一定几率出现系统中NGCRM库和NGBOSS库的共有域会出现数据不一致的情况。数据差异的出现,会影响到业务受理成功率、计费准确率等。
目前,处理双方差异数据的主要手段是人工干预,即人工编写更新(某个或者多个数据表)脚本。差异出现后,处理时效不能保证,并且人工干预方式不严谨,可能因为操作人员的疏忽造成错误,存在风险隐患。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种数据库间共有域差异数据同步系统及方法。
本发明解决上述技术问题的技术方案如下:一种数据库间共有域差异数据同步系统,包括差异数据扫描模块、差异数据存储模块、配置表模块、差异情况确认模块、基准数据确认模块和数据同步模块;
所述差异数据扫描模块,其用于实时扫描数据库间共有域数据状态,将扫描的差异数据存储到差异数据存储模块中;
所述差异数据存储模块,其用于以数据表的形式存储数据库间的共有域差异数据集合;
所述配置表模块,其用于以数据表的形式存储各数据库中数据表的主要信息及详细信息;
所述差异情况确认模块,其用于读取差异数据,获取差异数据信息,根据差异数据信息查询配置表模块中该差异数据的相关配置信息,根据相关配置信息生成第一查询条件,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;
所述基准数据确认模块,其用于根据差异数据信息查询配置表模块中该差异数据的基准信息,根据该基准信息生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录;
所述数据同步模块,其用于利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
本发明的有益效果是:本发明解决现有技术需要人工编写脚本,通过人工干预处理数据库间共有域差异数据的问题,差异出现后,能及时同步差异数据,保证处理时效,提供数据同步准确性,降低因为操作人员的疏忽造成错误及存在风险隐患。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述差异数据信息包括数据表名和主键值。
进一步,所述数据表配置模块中存储有数据一致性配置表和数据一致性基础表配置表;
所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;
所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。
进一步,所述差异情况确认模块包括第一查询条件生成单元和差异情况确认单元;
所述第一查询条件生成单元,其用于根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件;
所述差异情况确认单元,其用于根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果。
进一步,所述基准数据确认模块包括基准库确认单元和基准库情况确认单元;
所述基准库确认单元,其用于根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;
所述基准库情况确认单元,其用于根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录。
进一步,所述数据同步模块包括SQL语句生成单元和数据同步单元;
所述SQL语句生成单元,其用于利用排列拼装的该数据表的全部字段名称在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句;
所述数据同步单元,其用于根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
进一步,所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。
本发明解决上述技术问题的另一技术方案如下:一种数据库间共有域差异数据同步方法,包括如下步骤:
步骤1,实时扫描数据库间共有域数据状态,发现差异数据时,获取差异数据并保存;
步骤2,读取一条差异数据,获取差异数据信息,根据差异数据信息查询该差异数据的相关配置信息,根据相关配置信息生成第一查询条件;
步骤3,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;
步骤4,根据差异数据信息查询该差异数据的基准信息,根据该基准信息生成第二查询条件;
步骤5,根据第二查询条件在基准库中查找该差异数据的存储记录,利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句;
步骤6,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述差异数据信息包括数据表名和主键值。
进一步,还包括预先配置数据一致性配置表和数据一致性基础表配置表;
所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;
所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。
进一步,步骤2的具体实现为:根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件。
进一步,步骤4的具体实现为:
步骤41,根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;
步骤42,根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件;
步骤43,根据第二查询条件在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句。
进一步,所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。
附图说明
图1为本发明所述一种数据库间共有域差异数据同步系统框图;
图2为本发明所述一种数据库间共有域差异数据同步方法流程图。
附图中,各标号所代表的部件列表如下:
1、差异数据扫描模块,2、差异数据存储模块,3、配置表模块,4、差异情况确认模块,5、基准数据确认模块,6、数据同步模块,41、第一查询条件生成单元,42、差异情况确认单元,51、基准库确认单元,52、基准库情况确认单元,61、SQL语句生成单元,62、数据同步单元。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种数据库间共有域差异数据同步系统,包括差异数据扫描模块1、差异数据存储模块2、配置表模块3、差异情况确认模块4、基准数据确认模块5和数据同步模块6;所述差异数据扫描模块1,其用于实时扫描数据库间共有域数据状态,将扫描的差异数据存储到差异数据存储模块2中;所述差异数据存储模块2,其用于以数据表的形式存储数据库间的共有域差异数据集合;所述配置表模块3,其用于以数据表的形式存储各数据库中数据表的主要信息及详细信息;所述差异情况确认模块4,其用于读取一条差异数据,获取差异数据信息,根据差异数据信息查询配置表模块中该差异数据的相关配置信息,根据相关配置信息生成第一查询条件,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;所述基准数据确认模块5,其用于根据差异数据信息查询配置表模块中该差异数据的基准信息,根据该基准信息生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录;所述数据同步模块6,其用于利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
所述差异数据信息包括数据表名和主键值。所述数据表配置模块3中存储有数据一致性配置表和数据一致性基础表配置表;所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。
所述差异情况确认模块4包括第一查询条件生成单元41和差异情况确认单元42;所述第一查询条件生成单元41,其用于根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件;所述差异情况确认单元42,其用于根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果。
所述基准数据确认模块5包括基准库确认单元51和基准库情况确认单元52;所述基准库确认单元51,其用于根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;所述基准库情况确认单元52,其用于根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录。
所述数据同步模块6包括SQL语句生成单元61和数据同步单元62;所述SQL语句生成单元61,其用于利用排列拼装的该数据表的全部字段名称在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句;所述数据同步单元62,其用于根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。
如图2所示,一种数据库间共有域差异数据同步方法,包括如下步骤:
步骤1,实时扫描数据库间共有域数据状态,发现差异数据时,获取差异数据并保存;
步骤2,读取一条差异数据,获取差异数据信息,根据差异数据信息查询该差异数据的相关配置信息,根据相关配置信息生成第一查询条件;
步骤3,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;
步骤4,根据差异数据信息查询该差异数据的基准信息,根据该基准信息生成第二查询条件;
步骤5,根据第二查询条件在基准库中查找该差异数据的存储记录,利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句;
步骤6,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
步骤2的具体实现为:根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件。
步骤4的具体实现为:
步骤41,根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;
步骤42,根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件;
步骤43,根据第二查询条件在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句。
所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。
下面以CRM库和BOSS库的共有域数据同步为例进行如下说明。
1.NGCRM库和NGBOSS库共有域的数据,一部分以NGCRM库为基准、其他部分以NGBOSS库为基准。对于共有域数据,进行如下设置:
客户域统一由CRM管理,客户信息和订购关系以CRM为主,映射到BOSS中;
用户域统一由CRM管理,用户信息以CRM为主,映射到BOSS中;
帐务域统一由BOSS管理,帐户信息以CRM为主,映射到BOSS中;
营销服务域统一由CRM管理;
资源域统一由CRM管理;
客户交互域统一由CRM管理;
产品域中资费相关信息,如资费、业务资费、资费项、资费模板等由BOSS管理。其他面向客户和销售的实体由CRM管理;
合作伙伴域统一由BOSS管理;
通用域中地域统一由CRM管理,映射到BOSS中;知识由CRM管理;定单和工单由BOSS管理;组织机构由CRM和BOSS分别管理。
目前,NGCRM和NGBOSS共有域的数据,一部分以NGCRM为基准、其他部分以NGBOSS为基准。(本文中设定NGCRM域的数据,存放在名为NGCRM的数据库中;NGBOSS域的数据,存放在名为NGBOSS的数据库中。下文如无特殊说明“NGCRM库”和“NGBOSS库”分别指代两个数据库。)设计一张配置表,用于管理存在差异的数据集合的处理方式。配置表可以放置在NGCRM库或者NGBOSS库中,这对差异数据处理无影响。
此外,每一个数据表结构都不相同,如何准确的拼装出同步脚本,应是自动化处理着重实现的功能。
差异数据的状况可分大体为两类。一方有数据,另一方没有数据;双方都有数据,个别字段不相同。对于前一种情况,一个INSERT脚本(或DELETE脚本)可以实现同步;后一种情况,一个DELETE脚本+一个INSERT脚本可实现同步。
ORACLE的DELETE语句的格式为DELETE[FROM][user.]table[db_link][Alias][WHERE condition];
ORACLE的INSERT语句的格式为INSERT INTO[user.]table[db_link][(column1,column2,...)]VALUE(value1,value2,...)
因此,在拼装DELETE脚本时,需要知道删除的条件,保证删除的内容唯一,通常,我们使用数据表的主键。在拼装INSERT脚本时,需要知道数据表的全部字段,并且字段名与字段值要一一对应。常见的字段类型有:数值型、字符型、时间型。各个数据表的主键、字段名、字段类型等内容维护到一张配置表中。
本发明使用数据一致性配置表、数据一致性基础表配置表。在共有域数据结构发生变化时,调整配置信息,即可通过程序自动完成差异数据的同步。
数据一致性配置表如表1所示,包括但不限于如下属性字段:
表1
数据一致性基础表配置表如表2所示,包括但不限于如下属性字段:
表2
第一步:从差异数据存储模块中读取一条差异数据。读取的内容有:数据表名,主键值(按照既定的顺序)。
第二步:根据数据表名从数据一致性配置表中读取出基准库的标记(CRM或者BOSS)。
第三步:根据数据表名从数据一致性基础表配置表中读取出该数据表的主键字段名称,按照既定的顺序排列,与主键值拼装成以等号连接“and”分割的字符串pk1=value1and pk2=value2....。
第四步:根据数据表名从数据一致性基础表配置表读取出该数据表的全部字段名称,按照既定的顺序排列,拼装成以逗点分割的字符串colum1,colum2...。
第五步:分别在NGCRM库和NGBOSS库中,查询第一步获取到的数据表(表名)中,满足第三步中拼装的字符串作为条件的记录情况。select count(1)from table_name where pk1=value1and pk2=value2.......。
第六步:根据第二步中查询出的基准库标记,以第四步拼装的字符串作为顺序,在基准库中查询出每个字段的值,并拼装成以逗点分割的字符串,字段值的格式依据数据一致性基础表配置表中配置的信息。例如:字符型拼装为char1,char2...数值型拼装为to_number(number1),to_number(number2)...日期型拼装为to_date(date1,‘yyyymmdd hh24:mi:ss’),to_date(date2,‘yyyymmdd hh24:mi:ss’)...。
第七步:以ORACLE语法为参考,结合第四步和第六步中拼装的字符串,拼接出可执行的脚本。
例如:DELETE TABLE1WHERE pk1=value1and pk2=value2....;
INSERT INTO TABLE2(colum1,colum2...)VLAUES(to_number(number1),to_date(date1,‘yyyymmdd hh24:mi:ss’))。
第七步:结合第二步中查询出的基准库标记和第五步中查询出的数量。同步数据。规则如下
1)若以CRM为基准,CRM有数据,BOSS无数据。在BOSS库执行INSERT脚本。
2)若以CRM为基准,CRM有数据,BOSS有数据。在BOSS库依次执行DELETE脚本,INSERT脚本。
3)若以CRM为基准,CRM无数据,BOSS有数据。在BOSS库执行DELETE脚本。
4)若以BOSS为基准,CRM有数据,BOSS无数据。在CRM库执行DELETE脚本。
5)若以BOSS为基准,CRM有数据,BOSS有数据。在CRM库依次执行DELETE脚本,INSERT脚本。
6)若以BOSS为基准,CRM无数据,BOSS有数据。在CRM库执行INSERT脚本。
下面描述另一实例来具体描述本发明
假设现有数据库A、数据库B。共有域有数据表dStuMsg(学生信息表)dStuMsg的表结构为:
“数据一致性配置表”对于dStuMsg的配置信息如下:
TABLE_NAME | BASE_FLAG | TABLE_ID |
dStuMsg | A | 01 |
(BASE_FLAG说明:A代表A库为基准库。B代表B库为基准库。)
“数据一致性基础表配置表”对于dStuMsg的配置信息如下:
TABLE_ID | TABLE_NAME | COLUMN_NAME | COLUMN_TYPE | SERIAL | PKSERIAL |
1 | dStuMsg | stu_id | N | 1 | 1 |
1 | dStuMsg | stu_name | C | 2 | 0 |
1 | dStuMsg | grade | C | 3 | 0 |
1 | dStuMsg | birthday | D | 4 | 0 |
数据库A中,dStuMsg有4条记录,分别是:
stu_id | stu_name | grade | birthday |
1 | 张三 | 一年级 | 20090701 |
2 | 李四 | 二年级 | 20090801 |
3 | 王五 | 一年级 | 20090901 |
4 | 赵六 | 二年级 | 20100701 |
数据库B中,dStuMsg有4条记录,分别是:
stu_id | stu_name | grade | birthday |
1 | 张三 | 一年级 | 20090701 |
2 | 李四 | 二年级 | 20090801 |
4 | 赵六 | 二年级 | 20110701 |
5 | 啦啦啦 | 一年级 | 20110101 |
差异数据扫描模块以stu_id为唯一索引,对数据库A和数据库B中的dStuMsg表进行比较。得到差异数据结果集。
第一步:从差异数据集合表中读取一条差异数据。读取的内容有:数据表名,主键值(按照既定的顺序);
从差异数据集合表读取到这条数据:
第二步:从数据一致性配置表中读取出基准库的标记,本实施例中基准库为数据库A;
第三步:从数据一致性基础表配置表中读取出该数据表的主键字段名称,按照既定的顺序排列,与主键值拼装成以等号连接“and”分割的字符串pk1=value1and pk2=value2....。
拼装得到字符串:
stu_id=3
第四步:从数据一致性基础表配置表读取出该数据表的全部字段名称,按照既定的顺序排列,拼装成以逗点分割的字符串colum1,colum2...。
拼装得到字符串:
stu_id,stu_name,grade,birthday
第五步:分别在A库和B库中,查询第一步获取到的数据表(表名)中,满足第三步中拼装的字符串作为条件的数量值。select count(1)fromtable_name where pk1=value1and pk2=value2.......。
分别在A和B库中执行如下SQL:
select count(1)from dStuMsg where stu_id=3;
在A中执行的结果:1
在B中执行的结果:0
第六步:根据第二步中查询出的基准库标记。以第四步拼装的字符串作为顺序,在基准库中查询出每个字段的值,并拼装成以逗点分割的字符串,字段值的格式依据数据一致性基础表配置表中配置的信息。例如:字符型拼装为char1,char2...数值型拼装为to_number(number1),to_number(number2)...日期型拼装为to_date(date1,‘yyyymmdd hh24:mi:ss’),to_date(date2,‘yyyymmdd hh24:mi:ss’)...。
拼装结果:
to_number(‘3’),’王五’,’一年级’,to_date(20090901,’yyyymmdd’)
第七步:以ORACLE语法为参考,结合第四步和第六步中拼装的字符串,拼接出可执行的脚本。
拼接结果(参照第五步的查询结果,由于是A库有,B库没有,且以A为准.那么要在B执行INSERT插入操作,那么本例拼的是INSERT语句)。
INSERT INTO dStuMsg(stu_id,stu_name,grade,birthday)VLAUES(to_number(‘3’),’王五’,’一年级’,to_date(20090901,’yyyymmdd’));
第八步:结合第二步中查询出的基准库标记和第五步中查询出的数量。同步数据。
在B库,执行步骤7拼的SQL。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据库间共有域差异数据同步系统,其特征在于,包括差异数据扫描模块、差异数据存储模块、配置表模块、差异情况确认模块、基准数据确认模块和数据同步模块;
所述差异数据扫描模块,其用于实时扫描数据库间共有域数据状态,将扫描的差异数据存储到差异数据存储模块中;
所述差异数据存储模块,其用于以数据表的形式存储数据库间的共有域差异数据集合;
所述配置表模块,其用于以数据表的形式存储各数据库中数据表的主要信息及详细信息;
所述差异情况确认模块,其用于读取差异数据,获取差异数据信息,根据差异数据信息查询配置表模块中该差异数据的相关配置信息,根据相关配置信息生成第一查询条件,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;
所述基准数据确认模块,其用于根据差异数据信息查询配置表模块中该差异数据的基准信息,根据该基准信息生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录;
所述数据同步模块,其用于利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
2.根据权利要求1所述一种数据库间共有域差异数据同步系统,其特征在于,所述差异数据信息包括数据表名和主键值。
3.根据权利要求2所述一种数据库间共有域差异数据同步系统,其特征在于,所述数据表配置模块中存储有数据一致性配置表和数据一致性基础表配置表;
所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;
所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。
4.根据权利要求3所述一种数据库间共有域差异数据同步方法,其特征在于,所述差异情况确认模块包括第一查询条件生成单元和差异情况确认单元;
所述第一查询条件生成单元,其用于根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件;
所述差异情况确认单元,其用于根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果。
5.根据权利要求3所述一种数据库间共有域差异数据同步方法,其特征在于,所述基准数据确认模块包括基准库确认单元和基准库情况确认单元;
所述基准库确认单元,其用于根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;
所述基准库情况确认单元,其用于根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录。
6.根据权利要求3所述一种数据库间共有域差异数据同步方法,其特征在于,所述数据同步模块包括SQL语句生成单元和数据同步单元;
所述SQL语句生成单元,其用于利用排列拼装的该数据表的全部字段名称在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句;
所述数据同步单元,其用于根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
7.根据权利要求1所述一种数据库间共有域差异数据同步方法,其特征在于,所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。
8.一种数据库间共有域差异数据同步方法,其特征在于,包括如下步骤:
步骤1,实时扫描数据库间共有域数据状态,发现差异数据时,获取差异数据并保存;
步骤2,读取一条差异数据,获取差异数据信息,根据差异数据信息查询该差异数据的相关配置信息,根据相关配置信息生成第一查询条件;
步骤3,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;
步骤4,根据差异数据信息查询该差异数据的基准信息,根据该基准信息生成第二查询条件;
步骤5,根据第二查询条件在基准库中查找该差异数据的存储记录,利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句;
步骤6,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。
9.根据权利要求8所述一种数据库间共有域差异数据同步方法,其特征在于,所述差异数据信息包括数据表名和主键值。
10.根据权利要求8所述一种数据库间共有域差异数据同步方法,其特征在于,还包括预先配置数据一致性配置表和数据一致性基础表配置表;
所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;
所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。
11.根据权利要求10所述一种数据库间共有域差异数据同步方法,其特征在于,步骤2的具体实现为:根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件。
12.根据权利要求10所述一种数据库间共有域差异数据同步方法,其特征在于,步骤4的具体实现为:
步骤41,根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;
步骤42,根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件;
步骤43,根据第二查询条件在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句。
13.根据权利要求8所述一种数据库间共有域差异数据同步方法,其特征在于,所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594875.9A CN104298769B (zh) | 2014-10-29 | 2014-10-29 | 一种数据库间共有域差异数据同步系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594875.9A CN104298769B (zh) | 2014-10-29 | 2014-10-29 | 一种数据库间共有域差异数据同步系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298769A true CN104298769A (zh) | 2015-01-21 |
CN104298769B CN104298769B (zh) | 2017-06-13 |
Family
ID=52318494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410594875.9A Active CN104298769B (zh) | 2014-10-29 | 2014-10-29 | 一种数据库间共有域差异数据同步系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298769B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096057A (zh) * | 2016-06-30 | 2016-11-09 | 华东电网有限公司 | 可配置的数据丢失检查及监控方法及系统 |
CN106446125A (zh) * | 2016-09-19 | 2017-02-22 | 广东中标数据科技股份有限公司 | 提升数据质量的方法及装置 |
CN107818178A (zh) * | 2017-11-23 | 2018-03-20 | 郑州云海信息技术有限公司 | 一种自动生成数据库变更sql脚本的方法 |
CN110287116A (zh) * | 2019-06-27 | 2019-09-27 | 苏宁消费金融有限公司 | 多数据库校正方法 |
CN111506941A (zh) * | 2020-03-14 | 2020-08-07 | 宁波国际投资咨询有限公司 | 一种基于bim技术的装配式建筑pc构件的存储方法及其系统 |
CN111723146A (zh) * | 2019-03-18 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 监测数据库的方法、管理系统及存储介质 |
CN111831755A (zh) * | 2020-07-23 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、系统、介质及设备 |
CN112395850A (zh) * | 2020-11-05 | 2021-02-23 | 中国人寿保险股份有限公司 | 一种检查数据定义一致性的方法、装置和电子设备 |
CN113111073A (zh) * | 2019-12-24 | 2021-07-13 | 中国移动通信集团浙江有限公司 | 异常数据分拣方法、装置、计算设备及计算机存储介质 |
CN113779955A (zh) * | 2021-09-15 | 2021-12-10 | 中国农业银行股份有限公司 | 一种差异脚本的生成方法、装置和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100228768A1 (en) * | 2009-03-09 | 2010-09-09 | Hiroyuki Yamasuge | Information Providing Server, Information Providing System, Information Providing Method and Program |
CN102263798A (zh) * | 2010-05-25 | 2011-11-30 | 中国移动通信集团甘肃有限公司 | 通信系统的数据同步方法、装置及系统 |
CN102402600A (zh) * | 2011-11-18 | 2012-04-04 | 国电南瑞科技股份有限公司 | 一种维护数据库复本一致性的异步归集方法 |
-
2014
- 2014-10-29 CN CN201410594875.9A patent/CN104298769B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100228768A1 (en) * | 2009-03-09 | 2010-09-09 | Hiroyuki Yamasuge | Information Providing Server, Information Providing System, Information Providing Method and Program |
CN102263798A (zh) * | 2010-05-25 | 2011-11-30 | 中国移动通信集团甘肃有限公司 | 通信系统的数据同步方法、装置及系统 |
CN102402600A (zh) * | 2011-11-18 | 2012-04-04 | 国电南瑞科技股份有限公司 | 一种维护数据库复本一致性的异步归集方法 |
Non-Patent Citations (2)
Title |
---|
王辉等: "异构数据库间主动式差异数据同步模型研究", 《河南科技大学学报:自然科学版》 * |
郑祥云等: "数据库同步中差异数据捕获方案设计与实现", 《电脑知识与技术》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096057A (zh) * | 2016-06-30 | 2016-11-09 | 华东电网有限公司 | 可配置的数据丢失检查及监控方法及系统 |
CN106446125A (zh) * | 2016-09-19 | 2017-02-22 | 广东中标数据科技股份有限公司 | 提升数据质量的方法及装置 |
CN106446125B (zh) * | 2016-09-19 | 2019-12-24 | 广东中标数据科技股份有限公司 | 提升数据质量的方法及装置 |
CN107818178A (zh) * | 2017-11-23 | 2018-03-20 | 郑州云海信息技术有限公司 | 一种自动生成数据库变更sql脚本的方法 |
CN111723146A (zh) * | 2019-03-18 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 监测数据库的方法、管理系统及存储介质 |
CN110287116A (zh) * | 2019-06-27 | 2019-09-27 | 苏宁消费金融有限公司 | 多数据库校正方法 |
CN110287116B (zh) * | 2019-06-27 | 2022-08-02 | 苏宁消费金融有限公司 | 多数据库校正方法 |
CN113111073A (zh) * | 2019-12-24 | 2021-07-13 | 中国移动通信集团浙江有限公司 | 异常数据分拣方法、装置、计算设备及计算机存储介质 |
CN111506941A (zh) * | 2020-03-14 | 2020-08-07 | 宁波国际投资咨询有限公司 | 一种基于bim技术的装配式建筑pc构件的存储方法及其系统 |
CN111506941B (zh) * | 2020-03-14 | 2022-12-02 | 宁波国际投资咨询有限公司 | 一种基于bim技术的装配式建筑pc构件的存储方法及其系统 |
CN111831755A (zh) * | 2020-07-23 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、系统、介质及设备 |
CN111831755B (zh) * | 2020-07-23 | 2024-01-16 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、系统、介质及设备 |
CN112395850A (zh) * | 2020-11-05 | 2021-02-23 | 中国人寿保险股份有限公司 | 一种检查数据定义一致性的方法、装置和电子设备 |
CN113779955A (zh) * | 2021-09-15 | 2021-12-10 | 中国农业银行股份有限公司 | 一种差异脚本的生成方法、装置和存储介质 |
CN113779955B (zh) * | 2021-09-15 | 2023-11-03 | 中国农业银行股份有限公司 | 一种差异脚本的生成方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104298769B (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104298769A (zh) | 一种数据库间共有域差异数据同步系统及方法 | |
US20170316183A1 (en) | Clinical data management system | |
US20220083618A1 (en) | Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes | |
CN109325078A (zh) | 基于结构数据的数据血缘确定方法及装置 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
US8321390B2 (en) | Methods and apparatus for organizing data in a database | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
CN111767303A (zh) | 一种数据查询方法、装置、服务器及可读存储介质 | |
CN107015987B (zh) | 一种更新和搜索数据库的方法及设备 | |
US9805136B2 (en) | Virtualizing schema relations over a single database relation | |
CN111831755B (zh) | 一种跨数据库数据同步方法、系统、介质及设备 | |
US20150006485A1 (en) | High Scalability Data Management Techniques for Representing, Editing, and Accessing Data | |
US9514173B2 (en) | Real-time index consistency check | |
CN101464864A (zh) | 一种利用关系数据库对媒体素材进行索引和查询的方法 | |
CN109189798B (zh) | 一种基于spark同步更新数据的方法 | |
CN103176989A (zh) | 基于数据字典和可变规则的数据库表级比较方法和系统 | |
US20090132607A1 (en) | Techniques for log file processing | |
CN112015804B (zh) | 数据同步方法、装置、设备及存储介质 | |
US11138161B2 (en) | Single table multi-schema data store in a key value store | |
US20180357328A1 (en) | Functional equivalence of tuples and edges in graph databases | |
US7873607B1 (en) | Model driven consolidator of database information | |
US9703825B2 (en) | Maintenance of a pre-computed result set | |
EP3844638A1 (en) | Data deduplication and data merging | |
CN111414382A (zh) | 一种基于MongoDB的慢SQL聚合展示方法和系统 | |
US9747359B2 (en) | Using a database to translate a natural key to a surrogate key |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |