分布式数据库增量数据同步方法、设备及存储介质技术

技术编号:22755011 阅读:36 留言:0更新日期:2019-12-07 03:56
本发明专利技术公开了一种分布式数据库增量数据同步方法,该方法包括:获取DBMS中的变化数据;将该变化数据转化为数据变化日志;解析数据变化日志,以生成对应的SQL语句;通过SQL语句并按照分发键信息,将所述变化数据同步至分布式数据库。此外,本发明专利技术还公开了一种设备及存储介质。采用本发明专利技术能够将DBMS数据的变化捕捉下来并实时同步到分布式数据库,根据分发策略生成SQL同步数据,功能强大且使用简单,同步过程中使用批处理以适合大数据量的数据传输和同步。

Incremental data synchronization method, equipment and storage medium of distributed database

The invention discloses a distributed database incremental data synchronization method, which includes: obtaining change data in DBMS; transforming the change data into data change log; parsing data change log to generate corresponding SQL statement; synchronizing the change data to distributed database through SQL statement and according to distribution key information. In addition, the invention also discloses a device and a storage medium. The invention can capture the changes of DBMS data and synchronize it to the distributed database in real time, generate SQL synchronization data according to the distribution strategy, which is powerful and easy to use. In the process of synchronization, batch processing is used to adapt to the data transmission and synchronization of large amount of data.

【技术实现步骤摘要】
分布式数据库增量数据同步方法、设备及存储介质
本专利技术涉及数据库
,尤其涉及一种分布式数据库增量数据同步方法、设备及存储介质。
技术介绍
为了实现数据库管理系统(DatabaseManagementSystem,DBMS)(例如:oracle、Sybase和MS、SQLServer)和分布式数据库之间的数据实时同步,现有的异构数据库之间进行数据同步时,多采用触发器捕捉。然而,触发器捕捉方式虽然简单明了,但会给业务的处理效率带来较大影响,不适合在高负荷的业务环境下采用。
技术实现思路
本专利技术的主要目的在于提出一种分布式数据库增量数据同步方法、设备及存储介质,旨在解决现有的异构数据库同步无法在高负荷的业务环境下实现的问题。为实现上述目的,本专利技术提供的一种分布式数据库增量数据同步方法,所述方法包括步骤:获取数据库管理系统DBMS中的变化数据;将所述变化数据转化为数据变化日志;解析所述数据变化日志,以生成对应的结构化查询语言SQL语句;通过所述SQL语句并按照分布式数据库表的分发信息,将所述变化数据同步至分布式数据库。此外,为实现上述目的,本专利技术还提出一种设备,所述设备包括处理器以及存储器;所述处理器用于执行存储器中存储的分布式数据库增量数据同步程序,以实现上所述的方法。此外,为实现上述目的,本专利技术还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的方法。本专利技术提出的分布式数据库增量数据同步方法、设备及计算机可读存储介质,通过获取DBMS中的变化数据,将该变化数据转化为数据变化日志,并解析数据变化日志,以生成对应的SQL语句,再通过SQL语句并按照分发键信息,将所述变化数据同步至分布式数据库,能够将DBMS数据的变化捕捉下来并实时同步到分布式数据库,根据分发策略生成SQL同步数据,功能强大且使用简单,同步过程中使用批处理以适合大数据量的数据传输和同步。附图说明图1为本专利技术第一实施例提供的分布式数据库增量数据同步方法的流程示意图;图2为本专利技术第一实施例提供的分布式数据库增量数据同步方法的子流程示意图一;图3为本专利技术第一实施例提供的分布式数据库增量数据同步方法的另一子流程示意图一;图4为本专利技术第一实施例提供的分布式数据库增量数据同步方法的子流程示意图二;图5为本专利技术第一实施例提供的分布式数据库增量数据同步方法的子流程示意图三;图6为本专利技术第一实施例提供的分布式数据库增量数据同步方法的另一流程示意图;图7为本专利技术第一实施例提供的分布式数据库增量数据同步方法的另一流程示意图;图8为本专利技术第二实施例提供的设备硬件架构的示意图;图9为图8中基于分布式数据库增量数据同步程序的模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本专利技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。第一实施例如图1所示,为本专利技术第一实施例提供的分布式数据库增量数据同步方法的流程示意图。在图1中,所述分布式数据库增量数据同步方法包括:步骤110,获取DBMS中的变化数据。具体的,获取数据库管理系统(DatabaseManagementSystem,DBMS)上所有数据操纵语言(DataManipulationLanguage,DML)的变化数据。步骤120,将所述变化数据转化为数据变化日志。具体的,数据变化日志的操作类型包括插入INSERT、更新UPDATE和删除DELETE。步骤130,解析所述数据变化日志,以生成对应的SQL语句。具体的,解析用户的数据变化日志,包括其中的操作类型、变化前后数据等。根据解析结果,拼出部分结构化查询语言(StructuredQueryLanguage,SQL)。步骤140,通过所述SQL语句并按照分布式数据库表的分发信息,将所述变化数据同步至分布式数据库。具体的,通过生成的SQL语句并按照分发键信息将数据同步至数据库,该数据库可以是分布式数据库。可选的,在本实施例中,使用登记表来记录所有需要捕捉的数据变化日志的表的名称(简称:表名),该表被称为同步源表,同步源表中详细记录了变化的表名、表所属用户名、操作类型等信息。捕捉到数据变化日志之后,通过对数据变化日志的数据解析还原出DML语句。不同的操作类型,还原DML语句的方式不同,对于INSERT语句需要根据操作类型、表名和修改后的字段值就可以还原出需要执行的SQL语句;对于UPDATE和DELETE语句,由于语句中带有where条件,如果将所有字段都逐一拼到where子句中,不但造成语句很长,例如:业务某些表可能字段上百,而且由于分布式数据库的限制,会造成在分布式数据库侧执行时无法使用索引,由此考虑到分布式数据库的特性,从而基于分布式数据库的分发属性和分布节点信息,对UPDATE和DELETE语句的同步进行了优化。本实施例通过捕获DBMS数据变化,解析变化数据日志文件,生成SQL语句,并基于分布式数据库的特性,根据分发策略来同步数据,提高了数据同步速度,同时同步过程中使用分布式数据库批处理,提高了性能,数据同步完成后通过脚本校验数据正确性,保证了数据的一致性。可选的,如图2所示,若解析的所述数据变化日志的操作类型为插入INSERT,则步骤140具体包括:步骤210,获取所述数据变化日志中存放的表的名称和字段修改值;步骤220,根据所述字段修改值,获取字段名列表和字段值列表;步骤230,从所述字段名列表和字段值列表中选择一个字段值;步骤240,判断所述字段值是否为NULL;若是,则进入步骤250,若否,则进入步骤260;步骤250,不同步所述字段值;步骤260,同步所述字段值。具体的,根据数据变化日志中存放的object_name得到表的名称,以及根据数据变化日志存放的字段修改值(new_value_list)得到字段名列表和字段值列表,当判断字段值为NULL,则说明源语句没有赋值,此字段不应该出现在insert语句的字段列表,不需要同步此字段值,否则需要同步此字段值。可选的,如图3所示,在步骤250或者步骤260之后,本实施例的分布式数据库增量数据同步方法还包括:步骤310,判断所述字段值是否为所述字段名列表和字段值列表中最后一个字段;若是,则进入步骤320,若否,则进入步骤330;步骤320,下发所述字段值至预设的存储节点;步骤330,重新从所述字段名列表和字段值列表中选择另一个字段值。具本文档来自技高网...

【技术保护点】
1.一种分布式数据库增量数据同步方法,其特征在于,所述方法包括步骤:/n获取数据库管理系统DBMS中的变化数据;/n将所述变化数据转化为数据变化日志;/n解析所述数据变化日志,以生成对应的结构化查询语言SQL语句;/n通过所述SQL语句并按照分布式数据库表的分发信息,将所述变化数据同步至分布式数据库。/n

【技术特征摘要】
1.一种分布式数据库增量数据同步方法,其特征在于,所述方法包括步骤:
获取数据库管理系统DBMS中的变化数据;
将所述变化数据转化为数据变化日志;
解析所述数据变化日志,以生成对应的结构化查询语言SQL语句;
通过所述SQL语句并按照分布式数据库表的分发信息,将所述变化数据同步至分布式数据库。


2.根据权利要求1所述的分布式数据库增量数据同步方法,其特征在于,若解析的所述数据变化日志的操作类型为插入INSERT,则将所述变化数据同步至分布式数据库包括:
获取所述数据变化日志中存放的表的名称和字段修改值;
根据所述字段修改值,获取字段名列表和字段值列表;
从所述字段名列表和字段值列表中选择一个字段值;
判断所述字段值是否为NULL;
若是,则不同步所述字段值;
若否,则同步所述字段值。


3.根据权利要求2所述的分布式数据库增量数据同步方法,其特征在于,在判断不同步所述字段值或者同步所述字段值之后,所述方法还包括:
判断所述字段值是否为所述字段名列表和字段值列表中最后一个字段;
若是,则下发所述字段值至预设的存储节点;
若否,则重新从所述字段名列表和字段值列表中选择另一个字段值。


4.根据权利要求1所述的分布式数据库增量数据同步方法,其特征在于,若解析的所述数据变化日志的操作类型为更新UPDATE,则将所述变化数据同步至分布式数据库包括:
获取所述数据变化日志中存放的表的名称和字段修改值;
获取所述字段修改值中出现的字段名和字段值以拼出预设类型的子句;
查询所述表的分发键信息;
在所述字段值中过滤出所述表在所述数据库中的分发键字段并转化成预设的条件;
同步所述字段值至所述数据库。


5....

【专利技术属性】
技术研发人员:刘素京丁鹏张军
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1