一种跨网间的数据库同步方法和系统

文档序号:32847212发布日期:2023-01-06 22:29阅读:59来源:国知局
一种跨网间的数据库同步方法和系统

1.本技术涉及数据同步应用领域,具体而言涉及一种跨网间的数据库同步方法和系统。


背景技术:

2.数据库是目前应用系统处理核心,不但应用系统需要向数据库进行增/删改/查操作,同样数据仓库也需要从众多的数据库中获取不同交易数据来完善自身的数据集市。数据量的快速增长导致对主机负荷的过重要求,特别是数据查询统计分析等需求更是把硬件升级推到了扩容的边缘,越来越多的企业开始把查询从主业务数据库转移到建立单独的查询服务器来满足日益增长的查询需求。
3.关系数据库是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。关系数据库同时也是一个被组织成一组拥有正式描述性的表格,该表格实质是装载着数据项的特殊收集体,表格中的数据能以不同的方式被存取(或重新召集)而不需要重新组织数据库表格。但是,关系型数据库也有许多的不足:1.大量数据的写入处理;2.为有数据更新的表做索引或表结构(schema)变更;3.字段不固定时应用;4.对简单查询需要快速返回结果的处理。
4.针对以上难题,nosql应运而生。nosql数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。


技术实现要素:

5.本技术公开了一种跨网间的数据库同步方法和系统,对关系型数据库中修改的数据同步到非关系型数据库中。
6.为达到上述目的,本技术提供了以下方案:
7.一种跨网间的数据库同步方法和系统,包括一下步骤:
8.s1.统计关系型数据库的变更信息;
9.s2.根据所述变更信息锁定该变更信息在关系型数据库中的具体位置;
10.s3.根据所述变更信息与该变更信息的具体位置信息进行整合包装,生成待处理文件;
11.s4.利用所述待处理文件对非关系型数据库数据进行数据同步;
12.s5.在非关系型数据库中对同步后的数据进行去重,得到同步去重后的数据,完成数据同步。
13.优选的,所述s1中,所述统计关系型数据库变更信息的方法包括:
14.统计关系型数据库中的insert语句出现的频次和操作对象,得到关系型数据库中“增”功能带来的变更数据;
15.统计关系型数据库中的update语句出现的频次和操作对象,得到关系型数据库中“改”功能带来的变更数据;
16.统计关系型数据库中的delete语句出现的频次和操作对象,得到关系型数据库中“删”功能带来的变更数据。
17.优选的,所述s2中,所述根据变更信息锁定变更信息在关系型数据库中的具体位置包括:
18.基于所述关系型数据库变更信息的变更数据,提取出数据变更位置信息与数据变更内容信息。
19.优选的,对所述数据变更位置信息与数据变更内容信息整合包装的方法包括:
20.将所述提取的数据变更位置信息与数据变更内容信息按照“insert”“update”“delete”分类;
21.通过索引确认比对数据,将所述比对数据与所述数据变更位置信息、所述数据变更内容进行整合形成待处理文件。
22.优选的,利用所述待处理文件对非关系型数据库进行数据同步的方法包括;
23.根据待处理文件中的比对数据在非关系型数据库中进行遍历搜索,根据比对数据的比对情况、遍历搜索的情况得到非关系型数据库中需要修改的数据;
24.将比对数据对应的变更数据信息同步到选中的非关系型数据库需要修改的数据中得到初步同步数据。
25.优选的,对同步后的数据进行去重的方法包括:
26.根据所述比对数据的比对情况排查是否出现重复数据;
27.对重复数据进行融合,确保比对数据在非关系型数据库中只能搜索到一条数据,得到去重后的数据。
28.根据所述比对数据的比对情况排查是否出现重复数据;
29.优选的,根据比对情况排查是否出现重复数据的方法包括:
30.根据比对数据的比对情况、遍历搜索的情况来排查重复数据:当比对数据的比对情况、遍历搜索的情况查询结果不唯一,则判定数据存在重复值。
31.本技术还提供了一种跨网间的数据库同步系统,其特征在于,包括:监测变更模块、变更数据定位模块、数据包装模块、同步模块和去重模块;
32.监测变更模块用于统计关系型数据库的变更信息;
33.变更数据定位模块用于根据所述变更信息锁定该变更信息在关系型数据库中的具体位置;
34.数据包装模块用于根据所述变更信息与该变更信息的具体位置信息进行整合包装,生成待处理文件;
35.同步模块用于利用所述待处理文件对非关系型数据库数据进行数据同步;
36.去重模块用于在非关系型数据库中对同步后的数据进行去重,得到同步去重后的数据,完成数据同步。
37.本技术的有益效果为:
38.本发明可实现关系型数据库与非关系型数据库之间的数据同步与去重,解决了关系型数据库扩充困难、读写能力弱、多表查询繁琐的问题,充分实现海量数据存储与可视化,方便快捷。
附图说明
39.为了更清楚地说明本技术的技术方案,下面对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术实施例一种跨网间的数据库同步方法的流程示意图;
41.图2为本技术实施例一种跨网间的数据库同步系统的结构示意图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
44.实施例一
45.在本实施例一中,如图1所示,一种跨网间的数据库同步方法,包括以下步骤:
46.s1.统计关系型数据库的变更信息。
47.具体包括:记录并统计“insert”语句的出现以及该语句对数据库的修改内容,得到“增加”信息;记录并统计“update”语句的出现以及该语句对数据库的修改内容,得到“修改”信息;记录并统计“delete”语句的出现以及该语句对数据库的修改内容,得到“删除”信息;根据所述“增加”信息、“修改”信息、“删除”信息得到关系型数据库的变更信息。
48.其中,保留“insert”、“update”、“delete”语句的相关sql语句,并生成结构化的sql语句分析表,便于获取查询语句操作的类型、是否成功、索引关系、以及相应的sql语句。
49.结构化sql语句分析表如表1所示:
50.表1
[0051][0052]
s2.根据变更信息锁定变更信息在关系型数据库中的具体位置。
[0053]
根据关系型数据库的变更信息得到关系型数据库中修改数据的唯一索引。以此确保修改数据信息的唯一性。
[0054]
本实施例中,包含三个索引信息:唯一索引、两个主键索引,若相关的sql语句中并没有相关索引信息,那么在查询语句表中对应生成所需的三个索引信息,可以在保证不改变关系型数据库原有索引关系的情况下,根据三个索引信息确定变更信息在关系型数据库中的具体位置,生成所需的三个索引信息如表2所示:
[0055]
表2
[0056][0057]
s3.根据变更信息与变更信息的位置进行整合包装,生成待处理文件。
[0058]
整合包装方法具体包括:
[0059]
s301.根据sql语句查询表中的sql语句类型,将“insert”、“update”、“delete”语句分类;
[0060]
s302.提取sql语句查询表中修改数据的主键索引,作为第一项比对数据,第一项比对数据用于根据主键索引确定非关系型数据库中的待修改数据的唯一性;
[0061]
s303.提取sql语句查询表中修改数据的任意两个索引相结合形成一级连接主键,作为第二项比对数据,当主键索引与非关系型数据库中的数据比对不成功时,利用第二项比对数据确定非关系型数据库中的待修改数据的唯一性;
[0062]
s304.再次提取sql语句查询表中修改数据的任一索引与第二项比对数据中的一级连接主键再次结合形成二级连接主键,作为第三项比对数据,当第一项比对数据与第二项比对数据均不能与非关系型数据库比对成功时,采用第三项比对数据确定非关系型数据库中的待修改数据的唯一性;
[0063]
s305.将分类的sql语句类型与第一项比对数据、第二项比对数据、第三项比对数据与需要修改的数据内容生成待处理文件。
[0064]
s4.利用待处理文件对非关系型数据库数据进行数据同步。
[0065]
先根据待处理文件中的第一项比对数据和相应变更数据遍历并修改非关系型数
据库中的相关数据,实现数据同步;
[0066]
如果在非关系型数据库中没有发现第一项比对数据,那么根据第二项比对数据和相应变更数据遍历并修改非关系型数据库中的相关数据,实现数据同步;
[0067]
如果第二比对数据依然无法确定非关系型数据库中待同步数据的唯一性,那么根据第三比对数据和相应变更数据遍历并修改非关系型数据库中的相关数据,实现数据同步。
[0068]
s5.在非关系型数据库中对同步后的数据进行去重,得到同步去重后的数据。
[0069]
s501.s4中第二比对数据无法确定待同步数据唯一性,需要调取第三比对数据的,则判定存在重复数据,将第二比对数据遍历后的每一条数据进行数值对比与整合,形成一条数据。确保第二比对数据只能查询到一条数据信息,实现去重的功能;
[0070]
s502.对同步后的非关系型数据库根据修改日期倒序排列:
[0071]
将同步后的数据按照修改日期倒叙排序,得到修改过的数据在下,未修改的数据在上形式的排序后的非关系型数据库;
[0072]
非关系型数据的扩展性较好,可存储数据较多,将数据按照修改日期降序排列,在待处理文件比对数据时节省更多的时间;
[0073]
s503.对同步以及排序后的非关系型数据库的唯一性id、键值对根据ascii码进行再次排序。
[0074]
实施例二
[0075]
在本实施例二中,如图2所示,一种跨网间的数据库同步系统,包括:监测变更模块、变更数据定位模块、数据包装模块、同步模块和去重模块;
[0076]
监测变更模块用于统计关系型数据库的变更信息;具体包括:记录并统计“insert”语句的出现以及该语句对数据库的修改内容,得到“增加”信息;记录并统计“update”语句的出现以及该语句对数据库的修改内容,得到“修改”信息;记录并统计“delete”语句的出现以及该语句对数据库的修改内容,得到“删除”信息;根据所述“增加”信息、“修改”信息、“删除”信息得到关系型数据库的变更信息。
[0077]
其中,保留“insert”、“update”、“delete”语句的相关sql语句,并生成结构化的sql语句分析表,便于获取查询语句操作的类型、是否成功、索引关系、以及相应的sql语句。
[0078]
结构化sql语句分析表如表3所示:
[0079]
表3
[0080][0081]
变更数据定位模块用于根据所述变更信息锁定该变更信息在关系型数据库中的具体位置;在本实施例二中,关系型数据库的变更信息得到关系型数据库中修改数据的唯一索引。以此确保修改数据信息的唯一性。
[0082]
本实施例中,包含三个索引信息:唯一索引、两个主键索引,若相关的sql语句中并没有相关索引信息,那么在查询语句表中对应生成所需的三个索引信息,可以在保证不改变关系型数据库原有索引关系的情况下,根据三个索引信息确定变更信息在关系型数据库中的具体位置,生成所需的三个索引信息如表4所示:
[0083]
表4
[0084][0085]
数据包装模块用于根据所述变更信息与该变更信息的具体位置信息进行整合包装,生成待处理文件;在实施例二中,根据sql语句查询表中的sql语句类型,将“insert”、“update”、“delete”语句分类;提取sql语句查询表中修改数据的主键索引,作为第一项比
对数据,第一项比对数据用于根据主键索引确定非关系型数据库中的待修改数据的唯一性;提取sql语句查询表中修改数据的任意两个索引相结合形成一级连接主键,作为第二项比对数据,当主键索引与非关系型数据库中的数据比对不成功时,利用第二项比对数据确定非关系型数据库中的待修改数据的唯一性;再次提取sql语句查询表中修改数据的任一索引与第二项比对数据中的一级连接主键再次结合形成二级连接主键,作为第三项比对数据,当第一项比对数据与第二项比对数据均不能与非关系型数据库比对成功时,采用第三项比对数据确定非关系型数据库中的待修改数据的唯一性;将分类的sql语句类型与第一项比对数据、第二项比对数据、第三项比对数据与需要修改的数据内容生成待处理文件。
[0086]
同步模块用于利用所述待处理文件对非关系型数据库数据进行数据同步;在本实施例二中,先根据待处理文件中的第一项比对数据和相应变更数据遍历并修改非关系型数据库中的相关数据,实现数据同步;
[0087]
如果在非关系型数据库中没有发现第一项比对数据,那么根据第二项比对数据和相应变更数据遍历并修改非关系型数据库中的相关数据,实现数据同步;
[0088]
如果第二比对数据依然无法确定非关系型数据库中待同步数据的唯一性,那么根据第三比对数据和相应变更数据遍历并修改非关系型数据库中的相关数据,实现数据同步。
[0089]
去重模块用于在非关系型数据库中对同步后的数据进行去重,得到同步去重后的数据,完成数据同步;在本实施例二中,
[0090]
若第二比对数据无法确定待同步数据唯一性,需要调取第三比对数据的,则判定存在重复数据,将第二比对数据遍历后的每一条数据进行数值对比与整合,形成一条数据。确保第二比对数据只能查询到一条数据信息,实现去重的功能;
[0091]
将同步后的数据按照修改日期倒叙排序,得到修改过的数据在下,未修改的数据在上形式的排序后的非关系型数据库;
[0092]
非关系型数据的扩展性较好,可存储数据较多,将数据按照修改日期降序排列,在待处理文件比对数据时节省更多的时间;
[0093]
对同步以及排序后的非关系型数据库的唯一性id、键值对根据ascii码进行再次排序。
[0094]
以上所述的实施例仅是对本技术优选方式进行的描述,并非对本技术的范围进行限定,在不脱离本技术设计精神的前提下,本领域普通技术人员对本技术的技术方案做出的各种变形和改进,均应落入本技术权利要求书确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1