一种数据库间共有域差异数据同步系统及方法

文档序号:6632288阅读:154来源:国知局
一种数据库间共有域差异数据同步系统及方法【专利摘要】本发明涉及一种数据库间共有域差异数据同步系统及方法,包括读取差异数据,根据差异数据信息查询该数据表的相关配置信息,根据相关配置信息生成第一查询条件;根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;根据差异数据信息查询该差异数据的基准信息,根据该基准信息生成第二查询条件;根据第二查询条件在基准库中查找该差异数据的存储记录,利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句,利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。本发明保证数据同步处理时效,提高数据同步准确性,降低因操作人员的疏忽造成错误及存在风险隐患。【专利说明】一种数据库间共有域差异数据同步系统及方法【
技术领域
】_1]涉題儲職,尤其涉及-种数辦间共有域差异数_步系统及施。【
背景技术
】[0002]4业务运营支撑系统实际运行过程中,两个数据库之间存在共有域,共有域数据即在两个数据库中均存在的数据,以其在一个数据库中的状态为基准,另一个数据库的共有域处的数据应保持与基准库的数据一致。但共有域数据出现数据部一致的情况,比如^一定几率出现系统中NGCRM库和NGBOSS库的共有域会出现数据不一致的情况。数据差异的出现,会影响到业务受理成功率、计费准确率等。[0003]目前,处理双方差异数据的主要手段是人工千预,即人工编写更新(某个或者多个数据表)脚本。差异出现后,处理时效不能保证,并且人工干预方式不严谨,可能因为操作人员的疏忽造成错误,存在风险隐患。【
发明内容】[0004]本发明所要解决的技术问题是针对现有技术的不足,提供一种数据库间共有域差异数据同步系统及方法。~[0005]本发明解决上述技术问题的技术方案如下:一种数据库间共有域差异数据同步系统'包括差力"数据扫描t吴块、差异数据存储模块、配置表模块、差异情况确认模块、基准数据确认模块和数据同步模块;[0006]所述差异数据扫描模块,其用于实时扫描数据库间共有域数据状态,将扫描的差异数据存储到差异数据存储模块中;[0007]所述差异数据存储模块,其用于以数据表的形式存储数据库间的共有域差异数据集合;[0008]所述配置表模块,其用于以数据表的形式存储各数据库中数据表的主要信窗及详细信息;[0009]所述差异情况确认模块,其用于读取差异数据,获取差异数据信息,根据差异数据信息查询配置表模块中该差异数据的相关配置信息,根据相关配置信息生成第一查询条件,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记g查j句结果;>[0010]所述基准数据确认模块,其用于根据差异数据信息查询配置表模块中该差异数据的基准?目息,根据该基准信息生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录;~[0011]所述数据同步模块,其用于利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。[0012]本发明的有益效果是:本发明解决现有技术需要人工编写脚本,通过人工干预处理数据库间共有域差异数据的问题,差异出现后,能及时同步差异数据,保证处理时效,提供数据同步准确性,降低因为操作人员的疏忽造成错误及存在风险隐患。[0013]在上述技术方案的基础上,本发明还可以做如下改进。[0014]进一步,所述差异数据信息包括数据表名和主键值。[0015]进一步,所述数据表配置模块中存储有数据一致性配置表和数据一致性基础表配置表;[0016]所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;[0017]所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。[0018]进一步,所述差异情况确认模块包括第一查询条件生成单元和差异情况确认单元;[0019]所述第一查询条件生成单元,其用于根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件;[0020]所述差异情况确认单元,其用于根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果。[0021]进一步,所述基准数据确认模块包括基准库确认单元和基准库情况确认单元;[0022]所述基准库确认单元,其用于根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;[0023]所述基准库情况确认单元,其用于根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录。[0024]进一步,所述数据同步模块包括SQL语句生成单元和数据同步单元;[0025]所述SQL语句生成单元,其用于利用排列拼装的该数据表的全部字段名称在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句;[0026]所述数据同步单元,其用于根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。[0027]进一步,所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。[0028]本发明解决上述技术问题的另一技术方案如下:一种数据库间共有域差异数据同步方法,包括如下步骤:[0029]步骤1,实时扫描数据库间共有域数据状态,发现差异数据时,获取差异数据并保存;[0030]步骤2,读取一条差异数据,获取差异数据信息,根据差异数据信息查询该差异数据的相关配置信息,根据相关配置信息生成第一查询条件;[0031]步骤3,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;7[0032]步骤4,根据差异数据信息查询该差异数据的基准信息,根据该基准信息生成第二查询条件;+[0033]步骤5,根据第二查询条件在基准库中查找该差异数据的存储记录,利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句;[0034]步骤6,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。[0035]在上述技术方案的基础上,本发明还可以做如下改进。[0036]进一步,所述差异数据信息包括数据表名和主键值。[0037]进一步,还包括预先配置数据一致性配置表和数据一致性基础表配置表;[0038]所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;[0039]所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。[0040]进一步,步骤2的具体实现为:根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件。[0041]进一步,步骤4的具体实现为:[0042]步骤41,根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;[0043]步骤42,根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件;[0044]步骤43,根据第二查询条件在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句。[0045]进一步,所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。【专利附图】【附图说明】[0046]图1为本发明所述一种数据库间共有域差异数据同步系统框图;[0047]图2为本发明所述一种数据库间共有域差异数据同步方法流程图。[0048]附图中,各标号所代表的部件列表如下:[0049]1、差异数据扫描模块,2、差异数据存储模块,3、配置表模块,4、差异情况确认模块,5、基准数据确认模块,6、数据同步模块,41、第一查询条件生成单元,42、差异情况确认单元,51、基准库确认单元,52、基准库情况确认单元,61、SQL语句生成单元,62、数据同步单JL·〇【具体实施方式】[0050]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。7[0051]如图1所示,一种数据库间共有域差异数据同步系统,包括差异数据扫描模块u差异数据存储模块2、配置表模块3、差异情况确认模块4、基准数据确认模块5和数据同步模块6;所述差异数据扫描模块1,其用于实时扫描数据库间共有域数据状态,将扫描的差异数据存储到差异数据存储模块2中;所述差异数据存储模块2,其用于以数据表的形式存储数据库间的共有域差异数据集合;所述配置表模块3,其用于以数据表的形式存储各数据库中数据表的主要信息及详细信息;所述差异情况确认模块4,其用于读取一条差异数据'获取差异信息,根据差异数据信息查询配置表模块中该差异数据的相关配置信息,根据相关配置信息生成第一查询条件,根据第一查询条件分别在两个数据库的共有域处^找是否存在差异数据,并记录查询结果;所述基准数据确认模块5,其用于根据差异数据?息查询配置表模块中该差异数据的基准信息,根据该基准信息生成第二查询条件,根据if查询条件在基准库中查找该差异数据的存储记录;所述数据同步模块6,其用于利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。[0052]=述差异数据信息包括数据表名和主键值。所述数据表配置模块3中存储有数据,致性配直表和数据一致性基础表配置表;所述数据一致性配置表,其用于存储数据库中数据表的主要信息,所述数据表的主要信息包括数据表名、基准库标识和数据表编号;所述数据一致性基础配置表,其用于存储数据库中数据表的详细信息,所述数据表的详细信息包括包括数据表编号、数据表名称、字段名称、字段类型、字段在表中的唯一编号和字段在主键索引中的唯一编号。[0053]所述差异情况确认模块4包括第一查询条件生成单元41和差异情况确认单元42;所述第一查询条件生成单元41,其用于根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件;所述差异情况确认单元42,其用于根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果。[0054]所述基准数据确认模块5包括基准库确认单元51和基准库情况确认单元52;所述基准库确认单兀51,其用于根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;所述基准库情况确认单元52,其用于根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件,根据第二查询条件在基准库中查找该差异数据的存储记录。[0055]所述数据同步模块6包括SQL语句生成单元61和数据同步单元62;所述SQL语句生成单元61,其用于利用排列拼装的该数据表的全部字段名称在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句;所述数据同步单元62,其用于根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。[0056]所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。[0057]如图2所示,一种数据库间共有域差异数据同步方法,包括如下步骤:[0058]步骤1,实时扫描数据库间共有域数据状态,发现差异数据时,获取差异数据并保存;[0059]步骤2,读取一条差异数据,获取差异数据信息,根据差异数据信息查询该差异数据的相关配置信息,根据相关配置信息生成第一查询条件;[0060]步骤3,根据第一查询条件分别在两个数据库的共有域处查找是否存在差异数据,并记录查询结果;[0061]步骤4,根据差异数据信息查询该差异数据的基准信息,根据该基准信息生成第二查询条件;[0062]步骤5,根据第二查询条件在基准库中查找该差异数据的存储记录,利用第二查询条件和在基准库中查找的该差异数据的存储记录拼装出所需的SQL语句;[0063]步骤6,根据差异情况确认模块记录的查询结果利用拼装的SQL语句以基准库的记录为基准,修改非基准库的数据。[0064]步骤2的具体实现为:根据数据表名在数据性一致性基础配置表中查找主键字段名称,按既定顺序与主键值拼装形成第一查询条件。[0065]步骤4的具体实现为:[0066]步骤41,根据数据表名在数据一致性配置表中查找该数据表名对应的基准库标识,确认该数据表所属的基准库;[0067]步骤42,根据数据表名从数据一致性基础表配置表读取该数据表的全部字段名称,按照既定的顺序排列拼装生成第二查询条件;[0068]步骤43,根据第二查询条件在基准库中查询出每个字段值,并利用全部字段名称和全部字段值拼装成SQL语句。[0069]所述SQL语句包括INSERT脚本、DELETE脚本或者二者的组合。[0070]下面以CRM库和BOSS库的共有域数据同步为例进行如下说明。[0071]1.NGCRM库和NGB0SS库共有域的数据,一部分以NGCRM库为基准、其他部分以NGB0SS库为基准。对于共有域数据,进行如下设置:[0072]客户域统一由CRM管理,客户信息和订购关系以CRM为主,映射到BOSS中;[0073]用户域统一由CRM管理,用户信息以CRM为主,映射到BOSS中;[0074]帐务域统一由BOSS管理,帐户信息以CRM为主,映射到BOSS中;[0075]营销服务域统一由CRM管理;[0076]资源域统一由CRM管理;[0077]客户交互域统一由CRM管理;[0078]产品域中资费相关信息,如资费、业务资费、资费项、资费模板等由BOSS管理。其他面向客户和销售的实体由CRM管理;[0079]合作伙伴域统一由BOSS管理;[0080]通用域中地域统一由CRM管理,映射到BOSS中;知识由CRM管理;定单和工单由BOSS管理;组织机构由CRM和BOSS分别管理。[0081]目前,NGCRM和NGB0SS共有域的数据,一部分以NGCRM为基准、其他部分以NGB0SS为基准。(本文中设定NGCRM域的数据,存放在名为NGCRM的数据库中;NGB0SS域的数据,存放在名为NGB0SS的数据库中。下文如无特殊说明"NGCRM库"和"NGB0SS库"分别指代两个数据库。)设计一张配置表,用于管理存在差异的数据集合的处理方式。配置表可以放置在NGCRM库或者NGB0SS库中,这对差异数据处理无影响。[0082]此外,每一个数据表结构都不相同,如何准确的拼装出同步脚本,应是自动化处理着重实现的功能。[0083]差异数据的状况可分大体为两类。一方有数据,另一方没有数据;双方都有数据,个别字段不相同。对于前一种情况,一个INSERT脚本(或DELETE脚本)可以实现同步;后~'种情况,~个DELETE脚本+-个INSERT脚本可实现同步。[0084]ORACLE的DELETE语句的格式为DELETE[FR0M][user.]table[@db-link][Alias][WHEREcondition];[0085]ORACLE的INSERT语句的格式为INSERTINTO[user.]table[@db_link][(columnl,column2,...)]VALUE(valuel,value2,...)[0086]因此,在拼装DELETE脚本时,需要知道删除的条件,保证删除的内容唯一,通常,我们使用数据表的主键。在拼装INSERT脚本时,需要知道数据表的全部字段,并且字段名与字段值要一一对应。常见的字段类型有:数值型、字符型、时间型。各个数据表的主键、字段名、字段类型等内容维护到一张配置表中。[0087]本发明使用数据一致性配置表、数据一致性基础表配置表。在共有域数据结构发生变化时,调整配置信息,即可通过程序自动完成差异数据的同步。[0088]数据一致性配置表如表1所示,包括但不限于如下属性字段:[0089]表1[0090]【权利要求】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脚本或者二者的组合。【文档编号】G06F17/30GK104298769SQ201410594875【公开日】2015年1月21日申请日期:2014年10月29日优先权日:2014年10月29日【发明者】刘金洁申请人:北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1