一种数据库增量数据转换迁移方法和系统与流程

文档序号:12364483阅读:474来源:国知局
一种数据库增量数据转换迁移方法和系统与流程

本发明涉及数据库转换技术,尤其涉及一种数据库增量数据转换迁移方法和系统。



背景技术:

技术词解释:

NoSQL:泛指非关系型的数据库。

SERD:数据库的实体关系图(ERD)描述了与之相对应的数据库的模式以及结构状态,包含了数据库中的表,表中的属性,以及表与表之间的关系信息。而模式转换模型中,不需要考虑关系图中表的属性信息,同时,自引用关系不影响模式转换,因此,为简化增量模式转换模型的复杂性,去除关系图中表的属性信息、自引用关系信息和循环依赖关系信息,以构成新的简化关系图(SERD)。

INC_SERD:关系数据库在完成模式转换后,关系数据库中的部分表新增了数据,将产生增量数据的表所对应的节点称为增量数据节点,增量数据节点集中的节点间直接相连的边称为增量数据边,以增量数据节点集为顶点集合,增量数据边集为边集合,所构成的图称为SERD图的增量图(INC_SERD)。

NoSQL数据库具有易扩展、高灵活性、高性能和高可用的特征,适用于对海量数据进行处理,因此,目前常常会采用NoSQL数据库来替代原有的关系数据库,即将现有的存储系统从关系数据库迁移至NoSQL数据库。然而,当完成数据库中的数据以及表与表之间的关联关系的迁移之后,存储系统已经平滑地从关系数据库过渡到NoSQL数据库时,关系数据库中的表在迁移完成之后可能会产生增量数据,也就是说,此时关系数据库和NoSQL数据库之间的数据并非一致。因此,为了维持关系数据库和NoSQL数据库之间的数据一致性,则应该提供一种有效的、且可避免全量数据重复迁移的增量数据转换迁移方案,从而可快速且准确地将关系数据库中的增量数据转换迁移至NoSQL数据库。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种可维持关系数据库和NoSQL数据库之间的数据一致性、有效的、可避免全量数据重复迁移的增量数据转换迁移方法。

本发明的另一目的是提供一种可维持关系数据库和NoSQL数据库之间的数据一致性、有效的、可避免全量数据重复迁移的增量数据转换迁移系统。

本发明所采用的技术方案是:一种数据库增量数据转换迁移方法,该方法包括:

A、对增量图中的孤立节点和/或叶子节点进行增量数据的转换和迁移处理;

B、将增量图中入度不为0且出度为0的节点添加至第一节点集合中;

C、利用所述的第一节点集合,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步,所述步骤C具体为:

对第一节点集合中的节点进行访问操作,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步,所述步骤C包括:

C1、将第一节点集合中的节点从第一节点集合中移除;

C2、获取步骤C1中被移除的节点在增量图中的父亲节点集,将获得的父亲节点集中的父亲节点的出度减1,然后,对父亲节点集中的父亲节点的出度进行判断,从而从父亲节点集中找出出度为0的父亲节点,跟着,将找出的父亲节点添加至第一节点集合中,接着,对找出的父亲节点进行增量数据的转换和迁移处理,接着,将找出的父亲节点在SERD图中的所有后继节点扩展合并至该父亲节点中;

C3、判断第一节点集合是否为空集,若是,则结束,反之,则返回执行步骤C1。

进一步,所述步骤A具体为:

遍历增量图中的孤立点集和/或叶子点集,从而对孤立节点中的增量数据和/或叶子节点中的增量数据进行转换和迁移处理。

本发明所采用的另一技术方案是:一种数据库增量数据转换迁移系统,该系统包括:

第一转换迁移单元,用于对增量图中的孤立节点和/或叶子节点进行增量数据的转换和迁移处理;

集合生成单元,用于将增量图中入度不为0且出度为0的节点添加至第一节点集合中;

第二转换迁移单元,用于利用所述的第一节点集合,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步,所述第二转换迁移单元具体用于对第一节点集合中的节点进行访问操作,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步,所述第二转换迁移单元包括:

移除模块,用于将第一节点集合中的节点从第一节点集合中移除;

节点处理模块,用于获取移除模块中被移除的节点在增量图中的父亲节点集,将获得的父亲节点集中的父亲节点的出度减1,然后,对父亲节点集中的父亲节点的出度进行判断,从而从父亲节点集中找出出度为0的父亲节点,跟着,将找出的父亲节点添加至第一节点集合中,接着,对找出的父亲节点进行增量数据的转换和迁移处理,接着,将找出的父亲节点在SERD图中的所有后继节点扩展合并至该父亲节点中;

判断模块,用于判断第一节点集合是否为空集,若是,则结束,反之,则返回执行移除模块。

进一步,所述第一转换迁移单元具体用于遍历增量图中的孤立点集和/或叶子点集,从而对孤立节点中的增量数据和/或叶子节点中的增量数据进行转换和迁移处理。

本发明的有益效果是:通过使用本发明的方法,能够达到维持关系数据库和NoSQL数据库之间的数据一致性的目的,而且在增量数据转换迁移的过程中,本发明的方法可避免全量数据的重复迁移,因此,本发明的方法具有效率高、处理速度快的优点。另外,本发明的方法还具有步骤简单、易于实现等优点。

本发明的另一有益效果是:通过使用本发明的系统,能够达到维持关系数据库和NoSQL数据库之间的数据一致性的目的,而且在增量数据转换迁移的过程中,可避免全量数据的重复迁移,因此,本发明的系统具有效率高、处理速度快的优点。另外,本发明的系统还具有结构简单、易于实现等优点。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明一种数据库增量数据转换迁移方法的步骤流程图;

图2是本发明一种数据库增量数据转换迁移方法的一具体实施例步骤流程图;

图3是本发明一种数据库增量数据转换迁移系统的结构框图。

具体实施方式

如图1所示,一种数据库增量数据转换迁移方法,该方法包括:

A、对增量图中的孤立节点和/或叶子节点进行增量数据的转换和迁移处理;

B、将增量图中入度不为0且出度为0的节点添加至第一节点集合中;

C、利用所述的第一节点集合,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步作为优选的实施方式,所述步骤C具体为:

对第一节点集合中的节点进行访问操作,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步作为优选的实施方式,所述步骤C包括:

C1、将第一节点集合中的节点从第一节点集合中移除;

C2、获取步骤C1中被移除的节点在增量图中的父亲节点集,将获得的父亲节点集中的父亲节点的出度减1,然后,对父亲节点集中的父亲节点的出度进行判断,从而从父亲节点集中找出出度为0的父亲节点,跟着,将找出的父亲节点添加至第一节点集合中,接着,对找出的父亲节点进行增量数据的转换和迁移处理,接着,将找出的父亲节点在SERD图中的所有后继节点扩展合并至该父亲节点中;

例如,找出的父亲节点为父亲节点H,即父亲节点H的出度为0,那么,则将父亲节点H添加至第一节点集合P中,然后,对父亲节点H进行增量数据的转换和迁移处理,接着,将父亲节点H在SERD图中的所有后继节点扩展合并至父亲节点H中;

另,若将获得的父亲节点集中的父亲节点的出度减1后,该父亲节点集中的父亲节点的出度均不为0,那么则直接执行步骤C3;

C3、判断第一节点集合是否为空集,若是,则结束,反之,则返回执行步骤C1。

进一步作为优选的实施方式,所述步骤A具体为:

遍历增量图中的孤立点集和/或叶子点集,从而对孤立节点中的增量数据和/或叶子节点中的增量数据进行转换和迁移处理。

本发明方法一具体实施例

如图2所示,一种数据库增量数据转换迁移方法,其具体包括:

S1、遍历增量图中的孤立点集和叶子点集,从而对增量图中的孤立节点中的增量数据和叶子节点中的增量数据进行转换和迁移处理;

S2、对第一节点集合P进行初始化,从而将增强图中入度不为0且出度为0的节点添加至第一节点集合P中;

S3、将第一节点集合P中的节点a从第一节点集合P中移除;

S4、获取节点a在增量图中的父亲节点集M,然后对获得的父亲节点集M做出如下的处理:

将获得的父亲节点集M中的父亲节点的出度减1,然后,对父亲节点集M中的节点的出度进行判断,进而从父亲节点集M中找出出度为0的节点,然后,将找出的节点添加至第一节点集合P中,接着,对找出的节点进行增量数据的转换和迁移处理,跟着,将找出的节点在SERD图中的所有后继节点信息扩展合并至该节点中;

S5、判断第一节点集合P是否为空集,若是,则结束;

反之,则返回执行步骤S3,从而对第一节点集合P中的下一个节点,如节点b,进行相应的处理,具体为:将第一节点集合P中的节点b从第一节点集合P中移除,然后,获取节点b在增量图中的父亲节点集N,接着,将获得的父亲节点集N中的父亲节点的出度减1,接着,对父亲节点集N中的节点的出度进行判断,进而从父亲节点集N中找出出度为0的节点,接着,将找出的节点添加至第一节点集合P中,接着,对找出的节点进行增量数据的转换和迁移处理,接着,将找出的节点在SERD图中的所有后继节点信息扩展合并至该节点中。

上述本发明方法实施例中的内容均适用于以下系统实施例中。

如图3所示,一种数据库增量数据转换迁移系统,该系统包括:

第一转换迁移单元1,用于对增量图中的孤立节点和/或叶子节点进行增量数据的转换和迁移处理;

集合生成单元2,用于将增量图中入度不为0且出度为0的节点添加至第一节点集合中;

第二转换迁移单元3,用于利用所述的第一节点集合,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步作为优选的实施方式,所述第二转换迁移单元3具体用于对第一节点集合中的节点进行访问操作,从而对增强图中的其余节点进行增量数据的转换和迁移处理。

进一步作为优选的实施方式,所述第二转换迁移单元3包括:

移除模块301,用于将第一节点集合中的节点从第一节点集合中移除;

节点处理模块302,用于获取移除模块301中被移除的节点在增量图中的父亲节点集,将获得的父亲节点集中的父亲节点的出度减1,然后,对父亲节点集中的父亲节点的出度进行判断,从而从父亲节点集中找出出度为0的父亲节点,跟着,将找出的父亲节点添加至第一节点集合中,接着,对找出的父亲节点进行增量数据的转换和迁移处理,接着,将找出的父亲节点在SERD图中的所有后继节点扩展合并至该父亲节点中;

判断模块303,用于判断第一节点集合是否为空集,若是,则结束,反之,则返回执行移除模块301。

进一步作为优选的实施方式,所述第一转换迁移单元1具体用于遍历增量图中的孤立点集和/或叶子点集,从而对孤立节点中的增量数据和/或叶子节点中的增量数据进行转换和迁移处理。

对于增量数据,该部分数据依赖于其子孙节点以及子孙节点的增量。因此,增量数据转换的过程中,需要将其子孙点集以及子孙点集的增量扩至增量数据中。而由上述可得,对增量数据进行扩展的核心思想为:递归地完成后继节点的增量的扩展,随后将后继点集扩展至该节点的增量数据之中。因此,转换的过程中,在增量图中消除叶子节点与其所有的父亲节点的依赖关系,当其中一个父亲节点的出度为0时,将其在SERD图中的所有的后继节点扩展至其中,从而可完成该父亲节点的增量数据的转换。

通过使用上述的本发明,能够达到维持关系数据库和NoSQL数据库之间的数据一致性的目的,而且在增量数据转换迁移的过程中,本发明的方法可避免全量数据的重复迁移,因此,本发明的方法具有效率高、处理速度快等优点。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1