一种基于表关联分析的数据表迁移的方法.pdf

上传人:00062****4422 文档编号:4267534 上传时间:2018-09-13 格式:PDF 页数:12 大小:1.46MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210289191.9

申请日:

2012.08.14

公开号:

CN102831211A

公开日:

2012.12.19

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30申请公布日:20121219|||实质审查的生效IPC(主分类):G06F 17/30申请日:20120814|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

中山大学

发明人:

罗笑南; 曾金龙; 林谋广; 孟思明; 林格

地址:

510006 广东省广州市番禺区大学城中山大学东校区教学实验中心C401

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明公开了一种基于表关联分析的数据表迁移的方法,该方法在预迁移检查模块引入表关联性分析,自动识别需要迁移数据。并采用多线程并行机制进行迁移检查,最后进行数据提取及数据转换产生目标数据,根据目标数据建立新的表以及进行共享表的特殊处理,对共享表进行复制表策略,提高系统并行性,更加适用于分布式系统。在迁移过程采用复制表策略,将对正常用户的影响降到最低。

权利要求书

1.一种基于表关联分析的数据表迁移的方法,其特征在于,该
方法在预迁移检查模块引入表关联性分析,自动识别需要迁移数据,
并采用多线程并行机制进行迁移检查;具体步骤如下:
Step1:确认迁移,用户确认需要迁移的用户数据;
Step2:预迁移检查,根据检查结果预先制定完善的转换规则和
程序;
Step3:数据提取,从源数据库中提取出数据;
Step4:数据转换,将源数据按照预处理制定的转换程序进行类
型等的转换,产生目标数据;
Step5:根据目标数据,先判断是否需要建立新的表,如果要则
建立新表,否则直接跳过;
Step6:是否进行共享表的特殊处理,若是转Step7,否则转Step8;
Step7:复制表处理,对共享表采用复制表策略,提高系统的并
发性能;
Step8:数据装载,最终将目标数据装载到目标数据库的目标表
中,完毕。
2.如权利要求1所述的方法,其特征在于,预迁移检查的具体流
程如下:
Step21:用户确认迁移;用户通过用户界面和系统交互,确认需
要进行迁移的用户数据;
Step22:分析表的关联;一个用户的数据往往不止和一个表相关;
表与表之间通过外键相关联,迁移一个用户数据可能需要迁移多个
表;
Step23:提取表元数据信息;主要包含数据库信息,连接接口信
息,Schema信息,表信息,约束信息和列类型信息;
Step24:根据表个数分配线程;采用多线程机制可以加快对元数
据的解析速度,并在大规模并行系统中适用;
Step25:数据隔离模式匹配检查;
Step26:表层数据检查;检查表一级别的信息,包含一些约束信
息;
Step27:列层信息检查;在每个表中逐列的进行匹配检查,主要
是类型的匹配和兼容检查;
Step28:生成检查结果文件XML。
3.如权利要求1或2所述的方法,其特征在于,涉及到表关联
性的分析时本发明的方法能够自动识别需要进行迁移的相关表格,具
体步骤如下:
Step1:读取中心表元数据信息;
Step2:读取列信息;
Step3:判断该列是否为外键;在数据库中可以通过检查表信息
的SQL语句foreign key(id)references outTable(id))方式即可识别,在元
数据中记录;
Step4:读取关联表信息;通过外键,读取以该外键为键的数据
表;
Step5:迁移必要性计算;主要有迁移的关联深度因素,迁移的
权限以及迁移的成本;当系统设定迁移关联深度为3时,超过的不予
考虑;当数据表权限设定不可以迁移时,不能迁移;当在目标数据库
没有该表时,需要新建该表则需要考虑在目标数据库新建该表带来的
成本和影响;
Step6:是否需要迁移;根据迁移必要性计算,得出是否需要迁
移该表;如果否则忽略该表,否则将该关联表加入到需要迁移的队列
中;
Step7:是否还有列,如果有转Step2,否则结束。
4.如权利要求2所述的方法,其特征在于,本发明是采用多线
程机制的,因为云数据中心一般是多机多线程的,所以采用多线程机
制不仅有利于提高检查速度而且也是符合分布运算需求,具体流程如
下:
Step1:主线程对象获取迁移列表中元素,getltems(),返回迁移
列表;
Step2:根据迁移列表创建等量的子线程,子进程对象返回创建
成功;
Step3:分配任务。遍历迁移列表,把每个表对应一个子线程的
分配;
Step4:子进程分配到任务,读取表的元数据信息;
Step5:进行匹配检查,每个子线程各自进行表的匹配检查,主
要是模式、表约束、列类型检查,源与目标的匹配检查;
Step6:子线程生成检查结果文件XML,并通知父线程;
Step7:父线程接收到通知并建立一个XML文件,文件中引用各
个子线程的XML文件,完毕。
5.如权利要求1所述的方法,其特征在于,在经过转换后的目标
数据在装载到目标表之前多了一步,表复制,具体为根据目标表信息
新建一个结构完全一样的MidTable中间表格,然后将转换后的目标数
据先写入到该MidTable中,当所有数据都迁移完毕后,再一次性的将
MidTable中的数据写入到目标表TargetTable中;因为MidTable和
TargetTable是同一个数据库内,所以数据传输速率非常快,这样就避
免了直接将目标数据装载到TargetTable导致的长时间锁住
TargetTable的问题,经过复制表策略的处理,将数据迁移对用户正常
使用SaaS服务的影响降到了最低。

说明书

一种基于表关联分析的数据表迁移的方法

技术领域

本发明涉及数据处理技术领域,尤其涉及一种基于表关联分析的
数据表迁移的方法。

背景技术

随着云计算的兴起,有着大量的用户数据都存储到了云端数据库
中。但当一个云平台或者云端的存储系统需要升级改造或者兼容合并
或者是处于安全的考虑,都将会用到数据迁移技术。数据迁移技术就
是将用户数据从一个数据库中迁移到另一个数据库的过程。一个数据
迁移系统的设计必须考虑迁移过程的稳定性和可持续性以及对用户
正常使用数据库的影响应该是越小越好的。

现有的数据迁移方法有数据管道,数据库工具方法,备份复制,
磁盘内复制等方法。它们应用于不同的场景,各具优势。一般将数据
迁移,发生在一个数据库到另外一个数据库时,会包含三个主要的步
骤:数据提取、数据转换和数据装载,其结构和流程示意如图1所示。

Step1:数据提取。需要迁移的数据从源数据库中进行提取。和
一般的读取数据库操作一样,可以用jdbc或者odbc等方式,一般和所
用的数据库系统以及编程语言相关。

Step2:数据转换。包括对数据的整理和转换以及一些额外的数
据加工,以满足设计者的特殊用途。

Step3:数据装载。将经过转换的数据插入到目标数据库中的目
标表中的过程。

现有技术方案一般没有在迁移前进行迁移检查,很容易导致迁移
过程因为数据类型的不一致而导致迁移中断的问题。

有的虽然加入了迁移的预检查,但是并没有分析迁移数据表之间
的关联性,这样需要用户手工的去判断需要迁移的依赖数据,大大的
影响了迁移的效率和准确性。

有的是基于单线程的方案,在分布式的云端不易扩展,也就制约
了系统的并发性。

发明内容

本发明的目的是为了克服现有技术的缺陷,提供一种基于表关联
分析的数据表迁移的方法,通过方法可以提高系统并行性,更加适用
于分布式系统。在迁移过程采用复制表策略,将对正常用户的影响降
到最低。

一种基于表关联分析的数据表迁移的方法,该方法在预迁移检查
模块引入表关联性分析,自动识别需要迁移数据,并采用多线程并行
机制进行迁移检查;具体步骤如下:

Step1:确认迁移,用户确认需要迁移的用户数据;

Step2:预迁移检查,根据检查结果预先制定完善的转换规则和
程序;

Step3:数据提取,从源数据库中提取出数据;

Step4:数据转换,将源数据按照预处理制定的转换程序进行类
型等的转换,产生目标数据;

Step5:根据目标数据,先判断是否需要建立新的表,如果要则
建立新表,否则直接跳过;

Step6:是否进行共享表的特殊处理,若是转Step7,否则转Step8;

Step7:复制表处理,对共享表采用复制表策略,提高系统的并
发性能;

Step8:数据装载,最终将目标数据装载到目标数据库的目标表
中,完毕。

预迁移检查的具体流程如下:

Step21:用户确认迁移;用户通过用户界面和系统交互,确认需
要进行迁移的用户数据;

Step22:分析表的关联;一个用户的数据往往不止和一个表相关;
表与表之间通过外键相关联,迁移一个用户数据可能需要迁移多个
表;

Step23:提取表元数据信息;主要包含数据库信息,连接接口信
息,Schema信息,表信息,约束信息和列类型信息;

Step24:根据表个数分配线程;采用多线程机制可以加快对元数
据的解析速度,并在大规模并行系统中适用;

Step25:数据隔离模式匹配检查;

Step26:表层数据检查;检查表一级别的信息,包含一些约束信
息;

Step27:列层信息检查;在每个表中逐列的进行匹配检查,主要
是类型的匹配和兼容检查;

Step28:生成检查结果文件XML。

涉及到表关联性的分析时本发明的方法能够自动识别需要进行
迁移的相关表格,具体步骤如下:

Step1:读取中心表元数据信息;

Step2:读取列信息;

Step3:判断该列是否为外键;在数据库中可以通过检查表信息
的SQL语句foreign key(id)references outTable(id))方式即可识别,在元
数据中记录;

Step4:读取关联表信息;通过外键,读取以该外键为键的数据
表;

Step5:迁移必要性计算;主要有迁移的关联深度因素,迁移的
权限以及迁移的成本;当系统设定迁移关联深度为3时,超过的不予
考虑;当数据表权限设定不可以迁移时,不能迁移;当在目标数据库
没有该表时,需要新建该表则需要考虑在目标数据库新建该表带来的
成本和影响;

Step6:是否需要迁移;根据迁移必要性计算,得出是否需要迁
移该表;如果否则忽略该表,否则将该关联表加入到需要迁移的队列
中;

Step7:是否还有列,如果有转Step2,否则结束。

本发明是采用多线程机制的,因为云数据中心一般是多机多线程
的,所以采用多线程机制不仅有利于提高检查速度而且也是符合分布
运算需求,具体流程如下:

Step1:主线程对象获取迁移列表中元素,getltems(),返回迁移
列表;

Step2:根据迁移列表创建等量的子线程,子进程对象返回创建
成功;

Step3:分配任务。遍历迁移列表,把每个表对应一个子线程的
分配;

Step4:子进程分配到任务,读取表的元数据信息;

Step5:进行匹配检查,每个子线程各自进行表的匹配检查,主
要是模式、表约束、列类型检查,源与目标的匹配检查;

Step6:子线程生成检查结果文件XML,并通知父线程;

Step7:父线程接收到通知并建立一个XML文件,文件中引用各
个子线程的XML文件,完毕。

在经过转换后的目标数据在装载到目标表之前多了一步,表复
制,具体为根据目标表信息新建一个结构完全一样的MidTable中间表
格,然后将转换后的目标数据先写入到该MidTable中,当所有数据都
迁移完毕后,再一次性的将MidTable中的数据写入到目标表
TargetTable中;因为MidTable和TargetTable是同一个数据库内,所以
数据传输速率非常快,这样就避免了直接将目标数据装载到
TargetTable导致的长时间锁住TargetTable的问题,经过复制表策略的
处理,将数据迁移对用户正常使用SaaS服务的影响降到了最低。

本发明技术方案带来的有益效果:

1、将验证前置,即在数据迁移之前做好类型转换等工作,这样
避免了传统的数据迁移方法在迁移进行后突然因为数据类型不兼容
或者模式不兼容等问题导致的中断。和现有的技术相比,增加了数据
表相关性的分析,自动的识别需要一并迁移的数据表,不需要用户指
定。对于不熟悉该数据库设计的用户而言,人工指定是比较困难的一
个工作。往往需要耗费较长时间,并且不能保证正确。

2、提高系统的并行性。在检查模块中采用多线程机制,使得模
块不仅运行速度提升,而且方便移植到分布式等并行系统中。在数据
迁移过程中引入复制表策略也提高了系统的并行性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面
将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而
易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域
普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些
附图获得其它的附图。

图1是现有技术中数据迁移的结构流程图;

图2是本发明系统结构图;

图3是本发明预迁移检查的流程图;

图4是本发明中自动分析表格关联性方法流程图;

图5是本发明中多线程并发预迁移检查序列图;

图6是本发明数据迁移系统流程图;

图7是本发明中复制表策略的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方
案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部
分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普
通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,
都属于本发明保护的范围。

本发明在预迁移检查模块引入表关联性分析,自动识别需要迁移
数据,并采用多线程并行机制进行迁移检查,提高系统并行性,更加
适用于分布式系统。在迁移过程采用复制表策略,将对正常用户的影
响降到最低。

本发明针对云计算中SaaS中的用户数据迁移问题提出,系统架
构包含三大模块:用户界面、预迁移检查模块和迁移主模块,如图2
所示。用户界面模块是系统用户和迁移系统进行交互的接口。预迁移
检查模块完成数据迁移之前的表关联性检查、类型检查和模式检查等
匹配检查的模块,其结果采用XML存储。迁移主模块是完成迁移的
真正过程,包含数据提取,转换和装载。

在现有技术中一种适应SaaS多租户模式的数据迁移方法中也提
出了一种预检查方法,也是用XML进行数据的持久化,但本发明增
加了重要的数据关联性的分析,使得用户不需要人工指定所有需要迁
移的数据表。如果一些表没有迁移,那么所迁移的数据不够完整也将
导致在目标数据库中不能够使用。此外,本发明采用多线程技术,使
得系统并行性增加而且适合云计算平台。

图3是预迁移检查的流程图,是一种按照由数据库模式到表列逐
层检查的过程。具体步骤如下:

Step1:用户确认迁移;用户通过用户界面和系统交互,确认需
要进行迁移的用户数据;

Step2:分析表的关联;一个用户的数据往往不止和一个表相关;
表与表之间通过外键相关联,迁移一个用户数据可能需要迁移多个
表;

Step3:提取表元数据信息;主要包含数据库信息,连接接口信
息,Schema信息,表信息,约束信息和列类型信息等;

Step4:根据表个数分配线程;采用多线程机制可以加快对元数
据的解析速度,并在大规模并行系统中可以适用;

Step5:数据隔离模式匹配检查;一般SaaS的数据都可能涉及到
不同模式的存储,现在主流的有三种,独立数据库、独立Schema和
共享表的数据隔离;

Step6:表层数据检查;检查表一级别的信息,包含一些约束信
息;

Step7:列层信息检查;在每个表中逐列的进行匹配检查;主要
是类型的匹配和兼容检查;

Step8:生成检查结果文件XML。

在上述流程中涉及到表关联性的分析。在现有的技术中需要用户
指定表格才能够进行,而本发明的方法能够自动识别需要进行迁移的
相关表格。如图4所示,具体如下:

Step1:读取中心表元数据信息。

Step2:读取列信息。

Step3:判断该列是否为外键。在数据库中可以通过检查表信息
的SQL语句foreign key(id)references outTable(id));等方式即可识别,
可以在元数据中记录。

Step4:读取关联表信息。通过外键,读取以该外键为键的数据
表。

Step5:迁移必要性计算。主要有迁移的关联深度因素,迁移的
权限以及迁移的成本。当系统设定迁移关联深度为3时,超过的不予
考虑。当数据表权限设定不可以迁移时,不能迁移。当在目标数据库
没有该表时,需要新建该表则需要考虑在目标数据库新建该表带来的
成本和影响。

Step6:是否需要迁移。根据迁移必要性计算,得出是否需要迁
移该表。如果否则忽略该表,否则将该关联表加入到需要迁移的队列
中。

Step7:是否还有列,如果有转Step2,否则结束。

上述步骤中提到本发明是采用多线程机制的,因为云数据中心一
般是多机多线程的,所以采用多线程机制不仅有利于提高检查速度而
且也是符合分布运算需求。如图5所示,具体流程如下。

Step1:主线程对象获取迁移列表中元素,getltems()。返回迁移
列表。

Step2:根据迁移列表创建等量的子线程。子进程对象返回创建
成功。

Step3:分配任务。遍历迁移列表,把每个表对应一个子线程的
分配。

Step4:子进程分配到任务,读取表的元数据信息。

Step5:进行匹配检查。每个子线程各自进行表的匹配检查。主
要是模式、表约束、列类型等检查,源与目标的匹配检查。

Step6:子线程生成检查结果文件XML,并通知父线程。

Step7:父线程接收到通知并建立一个XML文件,文件中引用各
个子线程的XML文件。完毕。

在引入了预迁移检测的迁移方法其方法流程如图6所示。在数据
提取之前增加了预迁移检查,在数据转换和数据装载之间增加了是否
新建表和共享表的特殊处理过程。具体过程如下:

Step1:确认迁移。用户确认需要迁移的用户数据。

Step2:预迁移检查。根据检查结果预先制定完善的转换规则和
程序。

Step3:数据提取。从源数据库中提取出数据。

Step4:数据转换。将源数据按照预处理制定的转换程序进行类
型等的转换,产生目标数据。

Step5:根据目标数据,先判断是否需要建立新的表,如果要则
建立新表,否则直接跳过;

Step6:是否进行共享表的特殊处理,若是转Step7,否则转Step8;

Step7:复制表处理。对共享表采用复制表策略,提高系统的并
发性能。

Step8:数据装载。最终将目标数据装载到目标数据库的目标表
中,完毕。

上述过程提及复制表策略,图7是复制表策略的示意图。在源数
据库中的数据表sourceTable需要进行迁移,它首先经过检查处理和
数据转换,这部分内容在上述章节已经有过详细的说明。而我们的策
略在于在经过转换后的目标数据在装载到目标表之前多了一步,表复
制。具体为根据目标表信息新建一个结构完全一样的MidTable中间
表格。然后将转换后的目标数据先写入到该MidTable中,当所有数
据都迁移完毕后,再一次性的将MidTable中的数据写入到目标表
TargetTable中。因为MidTable和TargetTable是同一个数据库内,所
以数据传输速率非常快。这样就避免了直接将目标数据装载到
TargetTable导致的长时间锁住TargetTable的问题。经过复制表策略的
处理,将数据迁移对用户正常使用SaaS服务的影响降到了最低。

本发明的优点:

1、将验证前置,即在数据迁移之前做好类型转换等工作,这样
避免了传统的数据迁移方法在迁移进行后突然因为数据类型不兼容
或者模式不兼容等问题导致的中断。和现有的技术相比,增加了数据
表相关性的分析,自动的识别需要一并迁移的数据表,不需要用户指
定。对于不熟悉该数据库设计的用户而言,人工指定是比较困难的一
个工作。往往需要耗费较长时间,并且不能保证正确。

2、提高系统的并行性。在检查模块中采用多线程机制,使得模
块不仅运行速度提升,而且方便移植到分布式等并行系统中。在数据
迁移过程中引入复制表策略也提高了系统的并行性能。

以上对本发明实施例所提供的一种基于表关联分析的数据表迁
移的方法,进行了详细介绍,本文中应用了具体个例对本发明的原理
及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明
的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发
明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,
本说明书内容不应理解为对本发明的限制。

一种基于表关联分析的数据表迁移的方法.pdf_第1页
第1页 / 共12页
一种基于表关联分析的数据表迁移的方法.pdf_第2页
第2页 / 共12页
一种基于表关联分析的数据表迁移的方法.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种基于表关联分析的数据表迁移的方法.pdf》由会员分享,可在线阅读,更多相关《一种基于表关联分析的数据表迁移的方法.pdf(12页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102831211 A (43)申请公布日 2012.12.19 C N 1 0 2 8 3 1 2 1 1 A *CN102831211A* (21)申请号 201210289191.9 (22)申请日 2012.08.14 G06F 17/30(2006.01) (71)申请人中山大学 地址 510006 广东省广州市番禺区大学城中 山大学东校区教学实验中心C401 (72)发明人罗笑南 曾金龙 林谋广 孟思明 林格 (54) 发明名称 一种基于表关联分析的数据表迁移的方法 (57) 摘要 本发明公开了一种基于表关联分析的数据表 迁移的方法,该方法在预迁移检查模块。

2、引入表关 联性分析,自动识别需要迁移数据。并采用多线 程并行机制进行迁移检查,最后进行数据提取及 数据转换产生目标数据,根据目标数据建立新的 表以及进行共享表的特殊处理,对共享表进行复 制表策略,提高系统并行性,更加适用于分布式系 统。在迁移过程采用复制表策略,将对正常用户的 影响降到最低。 (51)Int.Cl. 权利要求书2页 说明书6页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 6 页 附图 3 页 1/2页 2 1.一种基于表关联分析的数据表迁移的方法,其特征在于,该方法在预迁移检查模块 引入表关联性分析,自动识别需要迁移数据,并。

3、采用多线程并行机制进行迁移检查;具体步 骤如下: Step1:确认迁移,用户确认需要迁移的用户数据; Step2:预迁移检查,根据检查结果预先制定完善的转换规则和程序; Step3:数据提取,从源数据库中提取出数据; Step4:数据转换,将源数据按照预处理制定的转换程序进行类型等的转换,产生目标 数据; Step5:根据目标数据,先判断是否需要建立新的表,如果要则建立新表,否则直接跳 过; Step6:是否进行共享表的特殊处理,若是转Step7,否则转Step8; Step7:复制表处理,对共享表采用复制表策略,提高系统的并发性能; Step8:数据装载,最终将目标数据装载到目标数据库的目标。

4、表中,完毕。 2.如权利要求1所述的方法,其特征在于,预迁移检查的具体流程如下: Step21:用户确认迁移;用户通过用户界面和系统交互,确认需要进行迁移的用户数 据; Step22:分析表的关联;一个用户的数据往往不止和一个表相关;表与表之间通过外 键相关联,迁移一个用户数据可能需要迁移多个表; Step23:提取表元数据信息;主要包含数据库信息,连接接口信息,Schema信息,表信 息,约束信息和列类型信息; Step24:根据表个数分配线程;采用多线程机制可以加快对元数据的解析速度,并在 大规模并行系统中适用; Step25:数据隔离模式匹配检查; Step26:表层数据检查;检查表一级。

5、别的信息,包含一些约束信息; Step27:列层信息检查;在每个表中逐列的进行匹配检查,主要是类型的匹配和兼容 检查; Step28:生成检查结果文件XML。 3.如权利要求1或2所述的方法,其特征在于,涉及到表关联性的分析时本发明的方法 能够自动识别需要进行迁移的相关表格,具体步骤如下: Step1:读取中心表元数据信息; Step2:读取列信息; Step3:判断该列是否为外键;在数据库中可以通过检查表信息的SQL语句foreign key(id)references outTable(id)方式即可识别,在元数据中记录; Step4:读取关联表信息;通过外键,读取以该外键为键的数据表; 。

6、Step5:迁移必要性计算;主要有迁移的关联深度因素,迁移的权限以及迁移的成本; 当系统设定迁移关联深度为3时,超过的不予考虑;当数据表权限设定不可以迁移时,不能 迁移;当在目标数据库没有该表时,需要新建该表则需要考虑在目标数据库新建该表带来 的成本和影响; Step6:是否需要迁移;根据迁移必要性计算,得出是否需要迁移该表;如果否则忽略 权 利 要 求 书CN 102831211 A 2/2页 3 该表,否则将该关联表加入到需要迁移的队列中; Step7:是否还有列,如果有转Step2,否则结束。 4.如权利要求2所述的方法,其特征在于,本发明是采用多线程机制的,因为云数据中 心一般是多机多。

7、线程的,所以采用多线程机制不仅有利于提高检查速度而且也是符合分布 运算需求,具体流程如下: Step1:主线程对象获取迁移列表中元素,getltems(),返回迁移列表; Step2:根据迁移列表创建等量的子线程,子进程对象返回创建成功; Step3:分配任务。遍历迁移列表,把每个表对应一个子线程的分配; Step4:子进程分配到任务,读取表的元数据信息; Step5:进行匹配检查,每个子线程各自进行表的匹配检查,主要是模式、表约束、列类 型检查,源与目标的匹配检查; Step6:子线程生成检查结果文件XML,并通知父线程; Step7:父线程接收到通知并建立一个XML文件,文件中引用各个子线。

8、程的XML文件,完 毕。 5.如权利要求1所述的方法,其特征在于,在经过转换后的目标数据在装载到目标表 之前多了一步,表复制,具体为根据目标表信息新建一个结构完全一样的MidTable中间表 格,然后将转换后的目标数据先写入到该MidTable中,当所有数据都迁移完毕后,再一次 性的将MidTable中的数据写入到目标表TargetTable中;因为MidTable和TargetTable 是同一个数据库内,所以数据传输速率非常快,这样就避免了直接将目标数据装载到 TargetTable导致的长时间锁住TargetTable的问题,经过复制表策略的处理,将数据迁移 对用户正常使用SaaS服务的。

9、影响降到了最低。 权 利 要 求 书CN 102831211 A 1/6页 4 一种基于表关联分析的数据表迁移的方法 技术领域 0001 本发明涉及数据处理技术领域,尤其涉及一种基于表关联分析的数据表迁移的方 法。 背景技术 0002 随着云计算的兴起,有着大量的用户数据都存储到了云端数据库中。但当一个云 平台或者云端的存储系统需要升级改造或者兼容合并或者是处于安全的考虑,都将会用到 数据迁移技术。数据迁移技术就是将用户数据从一个数据库中迁移到另一个数据库的过 程。一个数据迁移系统的设计必须考虑迁移过程的稳定性和可持续性以及对用户正常使用 数据库的影响应该是越小越好的。 0003 现有的数据迁。

10、移方法有数据管道,数据库工具方法,备份复制,磁盘内复制等方 法。它们应用于不同的场景,各具优势。一般将数据迁移,发生在一个数据库到另外一个数 据库时,会包含三个主要的步骤:数据提取、数据转换和数据装载,其结构和流程示意如图 1所示。 0004 Step1:数据提取。需要迁移的数据从源数据库中进行提取。和一般的读取数据库 操作一样,可以用jdbc或者odbc等方式,一般和所用的数据库系统以及编程语言相关。 0005 Step2:数据转换。包括对数据的整理和转换以及一些额外的数据加工,以满足设 计者的特殊用途。 0006 Step3:数据装载。将经过转换的数据插入到目标数据库中的目标表中的过程。 。

11、0007 现有技术方案一般没有在迁移前进行迁移检查,很容易导致迁移过程因为数据类 型的不一致而导致迁移中断的问题。 0008 有的虽然加入了迁移的预检查,但是并没有分析迁移数据表之间的关联性,这样 需要用户手工的去判断需要迁移的依赖数据,大大的影响了迁移的效率和准确性。 0009 有的是基于单线程的方案,在分布式的云端不易扩展,也就制约了系统的并发性。 发明内容 0010 本发明的目的是为了克服现有技术的缺陷,提供一种基于表关联分析的数据表迁 移的方法,通过方法可以提高系统并行性,更加适用于分布式系统。在迁移过程采用复制表 策略,将对正常用户的影响降到最低。 0011 一种基于表关联分析的数据。

12、表迁移的方法,该方法在预迁移检查模块引入表关联 性分析,自动识别需要迁移数据,并采用多线程并行机制进行迁移检查;具体步骤如下: 0012 Step1:确认迁移,用户确认需要迁移的用户数据; 0013 Step2:预迁移检查,根据检查结果预先制定完善的转换规则和程序; 0014 Step3:数据提取,从源数据库中提取出数据; 0015 Step4:数据转换,将源数据按照预处理制定的转换程序进行类型等的转换,产生 目标数据; 说 明 书CN 102831211 A 2/6页 5 0016 Step5:根据目标数据,先判断是否需要建立新的表,如果要则建立新表,否则直接 跳过; 0017 Step6:。

13、是否进行共享表的特殊处理,若是转Step7,否则转Step8; 0018 Step7:复制表处理,对共享表采用复制表策略,提高系统的并发性能; 0019 Step8:数据装载,最终将目标数据装载到目标数据库的目标表中,完毕。 0020 预迁移检查的具体流程如下: 0021 Step21:用户确认迁移;用户通过用户界面和系统交互,确认需要进行迁移的用 户数据; 0022 Step22:分析表的关联;一个用户的数据往往不止和一个表相关;表与表之间通 过外键相关联,迁移一个用户数据可能需要迁移多个表; 0023 Step23:提取表元数据信息;主要包含数据库信息,连接接口信息,Schema信息, 表。

14、信息,约束信息和列类型信息; 0024 Step24:根据表个数分配线程;采用多线程机制可以加快对元数据的解析速度, 并在大规模并行系统中适用; 0025 Step25:数据隔离模式匹配检查; 0026 Step26:表层数据检查;检查表一级别的信息,包含一些约束信息; 0027 Step27:列层信息检查;在每个表中逐列的进行匹配检查,主要是类型的匹配和 兼容检查; 0028 Step28:生成检查结果文件XML。 0029 涉及到表关联性的分析时本发明的方法能够自动识别需要进行迁移的相关表格, 具体步骤如下: 0030 Step1:读取中心表元数据信息; 0031 Step2:读取列信息;。

15、 0032 Step3:判断该列是否为外键;在数据库中可以通过检查表信息的SQL语句 foreign key(id)references outTable(id)方式即可识别,在元数据中记录; 0033 Step4:读取关联表信息;通过外键,读取以该外键为键的数据表; 0034 Step5:迁移必要性计算;主要有迁移的关联深度因素,迁移的权限以及迁移的成 本;当系统设定迁移关联深度为3时,超过的不予考虑;当数据表权限设定不可以迁移时, 不能迁移;当在目标数据库没有该表时,需要新建该表则需要考虑在目标数据库新建该表 带来的成本和影响; 0035 Step6:是否需要迁移;根据迁移必要性计算,得出。

16、是否需要迁移该表;如果否则 忽略该表,否则将该关联表加入到需要迁移的队列中; 0036 Step7:是否还有列,如果有转Step2,否则结束。 0037 本发明是采用多线程机制的,因为云数据中心一般是多机多线程的,所以采用多 线程机制不仅有利于提高检查速度而且也是符合分布运算需求,具体流程如下: 0038 Step1:主线程对象获取迁移列表中元素,getltems(),返回迁移列表; 0039 Step2:根据迁移列表创建等量的子线程,子进程对象返回创建成功; 0040 Step3:分配任务。遍历迁移列表,把每个表对应一个子线程的分配; 0041 Step4:子进程分配到任务,读取表的元数据信。

17、息; 说 明 书CN 102831211 A 3/6页 6 0042 Step5:进行匹配检查,每个子线程各自进行表的匹配检查,主要是模式、表约束、 列类型检查,源与目标的匹配检查; 0043 Step6:子线程生成检查结果文件XML,并通知父线程; 0044 Step7:父线程接收到通知并建立一个XML文件,文件中引用各个子线程的XML文 件,完毕。 0045 在经过转换后的目标数据在装载到目标表之前多了一步,表复制,具体为根据目 标表信息新建一个结构完全一样的MidTable中间表格,然后将转换后的目标数据先写 入到该MidTable中,当所有数据都迁移完毕后,再一次性的将MidTable。

18、中的数据写入 到目标表TargetTable中;因为MidTable和TargetTable是同一个数据库内,所以数据 传输速率非常快,这样就避免了直接将目标数据装载到TargetTable导致的长时间锁住 TargetTable的问题,经过复制表策略的处理,将数据迁移对用户正常使用SaaS服务的影 响降到了最低。 0046 本发明技术方案带来的有益效果: 0047 1、将验证前置,即在数据迁移之前做好类型转换等工作,这样避免了传统的数据 迁移方法在迁移进行后突然因为数据类型不兼容或者模式不兼容等问题导致的中断。和现 有的技术相比,增加了数据表相关性的分析,自动的识别需要一并迁移的数据表,不需。

19、要用 户指定。对于不熟悉该数据库设计的用户而言,人工指定是比较困难的一个工作。往往需 要耗费较长时间,并且不能保证正确。 0048 2、提高系统的并行性。在检查模块中采用多线程机制,使得模块不仅运行速度提 升,而且方便移植到分布式等并行系统中。在数据迁移过程中引入复制表策略也提高了系 统的并行性能。 附图说明 0049 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其它的附图。 0050 图1。

20、是现有技术中数据迁移的结构流程图; 0051 图2是本发明系统结构图; 0052 图3是本发明预迁移检查的流程图; 0053 图4是本发明中自动分析表格关联性方法流程图; 0054 图5是本发明中多线程并发预迁移检查序列图; 0055 图6是本发明数据迁移系统流程图; 0056 图7是本发明中复制表策略的示意图。 具体实施方式 0057 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 说 明 书CN 10283。

21、1211 A 4/6页 7 实施例,都属于本发明保护的范围。 0058 本发明在预迁移检查模块引入表关联性分析,自动识别需要迁移数据,并采用多 线程并行机制进行迁移检查,提高系统并行性,更加适用于分布式系统。在迁移过程采用复 制表策略,将对正常用户的影响降到最低。 0059 本发明针对云计算中SaaS中的用户数据迁移问题提出,系统架构包含三大模块: 用户界面、预迁移检查模块和迁移主模块,如图2所示。用户界面模块是系统用户和迁移系 统进行交互的接口。预迁移检查模块完成数据迁移之前的表关联性检查、类型检查和模式 检查等匹配检查的模块,其结果采用XML存储。迁移主模块是完成迁移的真正过程,包含数 据。

22、提取,转换和装载。 0060 在现有技术中一种适应SaaS多租户模式的数据迁移方法中也提出了一种预检查 方法,也是用XML进行数据的持久化,但本发明增加了重要的数据关联性的分析,使得用户 不需要人工指定所有需要迁移的数据表。如果一些表没有迁移,那么所迁移的数据不够完 整也将导致在目标数据库中不能够使用。此外,本发明采用多线程技术,使得系统并行性增 加而且适合云计算平台。 0061 图3是预迁移检查的流程图,是一种按照由数据库模式到表列逐层检查的过程。 具体步骤如下: 0062 Step1:用户确认迁移;用户通过用户界面和系统交互,确认需要进行迁移的用户 数据; 0063 Step2:分析表的关。

23、联;一个用户的数据往往不止和一个表相关;表与表之间通过 外键相关联,迁移一个用户数据可能需要迁移多个表; 0064 Step3:提取表元数据信息;主要包含数据库信息,连接接口信息,Schema信息,表 信息,约束信息和列类型信息等; 0065 Step4:根据表个数分配线程;采用多线程机制可以加快对元数据的解析速度,并 在大规模并行系统中可以适用; 0066 Step5:数据隔离模式匹配检查;一般SaaS的数据都可能涉及到不同模式的存储, 现在主流的有三种,独立数据库、独立Schema和共享表的数据隔离; 0067 Step6:表层数据检查;检查表一级别的信息,包含一些约束信息; 0068 S。

24、tep7:列层信息检查;在每个表中逐列的进行匹配检查;主要是类型的匹配和兼 容检查; 0069 Step8:生成检查结果文件XML。 0070 在上述流程中涉及到表关联性的分析。在现有的技术中需要用户指定表格才能够 进行,而本发明的方法能够自动识别需要进行迁移的相关表格。如图4所示,具体如下: 0071 Step1:读取中心表元数据信息。 0072 Step2:读取列信息。 0073 Step3:判断该列是否为外键。在数据库中可以通过检查表信息的SQL语句 foreign key(id)references outTable(id);等方式即可识别,可以在元数据中记录。 0074 Step4:。

25、读取关联表信息。通过外键,读取以该外键为键的数据表。 0075 Step5:迁移必要性计算。主要有迁移的关联深度因素,迁移的权限以及迁移的成 本。当系统设定迁移关联深度为3时,超过的不予考虑。当数据表权限设定不可以迁移时, 说 明 书CN 102831211 A 5/6页 8 不能迁移。当在目标数据库没有该表时,需要新建该表则需要考虑在目标数据库新建该表 带来的成本和影响。 0076 Step6:是否需要迁移。根据迁移必要性计算,得出是否需要迁移该表。如果否则 忽略该表,否则将该关联表加入到需要迁移的队列中。 0077 Step7:是否还有列,如果有转Step2,否则结束。 0078 上述步骤。

26、中提到本发明是采用多线程机制的,因为云数据中心一般是多机多线程 的,所以采用多线程机制不仅有利于提高检查速度而且也是符合分布运算需求。如图5所 示,具体流程如下。 0079 Step1:主线程对象获取迁移列表中元素,getltems()。返回迁移列表。 0080 Step2:根据迁移列表创建等量的子线程。子进程对象返回创建成功。 0081 Step3:分配任务。遍历迁移列表,把每个表对应一个子线程的分配。 0082 Step4:子进程分配到任务,读取表的元数据信息。 0083 Step5:进行匹配检查。每个子线程各自进行表的匹配检查。主要是模式、表约束、 列类型等检查,源与目标的匹配检查。 0。

27、084 Step6:子线程生成检查结果文件XML,并通知父线程。 0085 Step7:父线程接收到通知并建立一个XML文件,文件中引用各个子线程的XML文 件。完毕。 0086 在引入了预迁移检测的迁移方法其方法流程如图6所示。在数据提取之前增加了 预迁移检查,在数据转换和数据装载之间增加了是否新建表和共享表的特殊处理过程。具 体过程如下: 0087 Step1:确认迁移。用户确认需要迁移的用户数据。 0088 Step2:预迁移检查。根据检查结果预先制定完善的转换规则和程序。 0089 Step3:数据提取。从源数据库中提取出数据。 0090 Step4:数据转换。将源数据按照预处理制定的。

28、转换程序进行类型等的转换,产生 目标数据。 0091 Step5:根据目标数据,先判断是否需要建立新的表,如果要则建立新表,否则直接 跳过; 0092 Step6:是否进行共享表的特殊处理,若是转Step7,否则转Step8; 0093 Step7:复制表处理。对共享表采用复制表策略,提高系统的并发性能。 0094 Step8:数据装载。最终将目标数据装载到目标数据库的目标表中,完毕。 0095 上述过程提及复制表策略,图7是复制表策略的示意图。在源数据库中的数据表 sourceTable需要进行迁移,它首先经过检查处理和数据转换,这部分内容在上述章节已经 有过详细的说明。而我们的策略在于在经。

29、过转换后的目标数据在装载到目标表之前多了 一步,表复制。具体为根据目标表信息新建一个结构完全一样的MidTable中间表格。然 后将转换后的目标数据先写入到该MidTable中,当所有数据都迁移完毕后,再一次性的将 MidTable中的数据写入到目标表TargetTable中。因为MidTable和TargetTable是同一 个数据库内,所以数据传输速率非常快。这样就避免了直接将目标数据装载到TargetTable 导致的长时间锁住TargetTable的问题。经过复制表策略的处理,将数据迁移对用户正常 使用SaaS服务的影响降到了最低。 说 明 书CN 102831211 A 6/6页 9。

30、 0096 本发明的优点: 0097 1、将验证前置,即在数据迁移之前做好类型转换等工作,这样避免了传统的数据 迁移方法在迁移进行后突然因为数据类型不兼容或者模式不兼容等问题导致的中断。和现 有的技术相比,增加了数据表相关性的分析,自动的识别需要一并迁移的数据表,不需要用 户指定。对于不熟悉该数据库设计的用户而言,人工指定是比较困难的一个工作。往往需 要耗费较长时间,并且不能保证正确。 0098 2、提高系统的并行性。在检查模块中采用多线程机制,使得模块不仅运行速度提 升,而且方便移植到分布式等并行系统中。在数据迁移过程中引入复制表策略也提高了系 统的并行性能。 0099 以上对本发明实施例所。

31、提供的一种基于表关联分析的数据表迁移的方法,进行了 详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的 说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依 据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容 不应理解为对本发明的限制。 说 明 书CN 102831211 A 1/3页 10 图1 图2 图3 图4 说 明 书 附 图CN 102831211 A 10 2/3页 11 图5 说 明 书 附 图CN 102831211 A 11 3/3页 12 图6 图7 说 明 书 附 图CN 102831211 A 12 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1