当前位置: 首页 > 专利查询>中山大学专利>正文

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

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

【技术实现步骤摘要】

本专利技术涉及数据处理
,尤其涉及。
技术介绍
随着云计算的兴起,有着大量的用户数据都存储到了云端数据库中。但当一个云平台或者云端的存储系统需要升级改造或者兼容合并或者是处于安全的考虑,都将会用到数据迁移技术。数据迁移技术就是将用户数据从一个数据库中迁移到另一个数据库的过程。一个数据迁移系统的设计必须考虑迁移过程的稳定性和可持续性以及对用户正常使用数据库的影响应该是越小越好的。现有的数据迁移方法有数据管道,数据库工具方法,备份复制,磁盘内复制等方 法。它们应用于不同的场景,各具优势。一般将数据迁移,发生在一个数据库到另外一个数据库时,会包含三个主要的步骤数据提取、数据转换和数据装载,其结构和流程示意如图I所示。Stepl :数据提取。需要迁移的数据从源数据库中进行提取。和一般的读取数据库操作一样,可以用jdbc或者odbc等方式,一般和所用的数据库系统以及编程语言相关。Step2 :数据转换。包括对数据的整理和转换以及一些额外的数据加工,以满足设计者的特殊用途。Step3 :数据装载。将经过转换的数据插入到目标数据库中的目标表中的过程。现有技术方案一般没有在迁移前进行迁移检查,很容易导致迁移过程因为数据类型的不一致而导致迁移中断的问题。有的虽然加入了迁移的预检查,但是并没有分析迁移数据表之间的关联性,这样需要用户手工的去判断需要迁移的依赖数据,大大的影响了迁移的效率和准确性。有的是基于单线程的方案,在分布式的云端不易扩展,也就制约了系统的并发性。
技术实现思路
本专利技术的目的是为了克服现有技术的缺陷,提供,通过方法可以提高系统并行性,更加适用于分布式系统。在迁移过程采用复制表策略,将对正常用户的影响降到最低。—种基于表关联分析的数据表迁移的方法,该方法在预迁移检查模块引入表关联性分析,自动识别需要迁移数据,并采用多线程并行机制进行迁移检查;具体步骤如下Stepl :确认迁移,用户确认需要迁移的用户数据;Step2 :预迁移检查,根据检查结果预先制定完善的转换规则和程序;Step3 :数据提取,从源数据库中提取出数据;Step4:数据转换,将源数据按照预处理制定的转换程序进行类型等的转换,产生目标数据;Step5:根据目标数据,先判断是否需要建立新的表,如果要则建立新表,否则直接跳过;Step6 :是否进行共享表的特殊处理,若是转Step7,否则转Step8 ;Step7 :复制表处理,对共享表采用复制表策略,提高系统的并发性能;StepS :数据装载,最终将目标数据装载到目标数据库的目标表中,完毕。预迁移检查的具体流程如下Step21 :用户确认迁移;用户通过用户界面和系统交互,确认需要进行迁移的用户数据;Step22 :分析表的关联;一个用户的数据往往不止和一个表相关;表与表之间通过外键相关联,迁移一个用户数据可能需要迁移多个表; St印23 :提取表元数据信息;主要包含数据库信息,连接接口信息,Schema信息,表信息,约束信息和列类型信息;Step24 :根据表个数分配线程;采用多线程机制可以加快对元数据的解析速度,并在大规模并行系统中适用;St印25 :数据隔离模式匹配检查;St印26 :表层数据检查;检查表一级别的信息,包含一些约束信息;St印27 :列层信息检查;在每个表中逐列的进行匹配检查,主要是类型的匹配和兼容检查;St印28 :生成检查结果文件XML。涉及到表关联性的分析时本专利技术的方法能够自动识别需要进行迁移的相关表格,具体步骤如下Stepl :读取中心表元数据信息;St印2:读取列信息;St印3:判断该列是否为外键;在数据库中可以通过检查表信息的SQL语句foreign key (id) references outTable (id))方式即可识别,在元数据中记录;Step4 :读取关联表信息;通过外键,读取以该外键为键的数据表;Step5 :迁移必要性计算;主要有迁移的关联深度因素,迁移的权限以及迁移的成本;当系统设定迁移关联深度为3时,超过的不予考虑;当数据表权限设定不可以迁移时,不能迁移;当在目标数据库没有该表时,需要新建该表则需要考虑在目标数据库新建该表带来的成本和影响;Step6 :是否需要迁移;根据迁移必要性计算,得出是否需要迁移该表;如果否则忽略该表,否则将该关联表加入到需要迁移的队列中;St印7 :是否还有列,如果有转Step2,否则结束。本专利技术是采用多线程机制的,因为云数据中心一般是多机多线程的,所以采用多线程机制不仅有利于提高检查速度而且也是符合分布运算需求,具体流程如下Stepl :主线程对象获取迁移列表中元素,getltems (),返回迁移列表;Step2 :根据迁移列表创建等量的子线程,子进程对象返回创建成功;Step3:分配任务。遍历迁移列表,把每个表对应一个子线程的分配;Step4 :子进程分配到任务,读取表的元数据信息;Step5 :进行匹配检查,每个子线程各自进行表的匹配检查,主要是模式、表约束、列类型检查,源与目标的匹配检查;Step6 :子线程生成检查结果文件XML,并通知父线程;Step7 :父线程接收到通知并建立一个XML文件,文件中引用各个子线程的XML文件,完毕。在经过转换后的目标数据在装载到目标表之前多了一步,表复制,具体为根据目标表信息新建一个结构完全一样的MidTable中间表格,然后将转换后的目标数据先写入到该MidTable中,当所有数据都迁移完毕后,再一次性的将MidTable中的数据写入到目标表TargetTable中;因为MidTable和TargetTable是同一个数据库内,所以数据传输速率非常快,这样就避免了直接将目标数据装载到TargetTable导致的长时间锁住TargetTable的问题,经过复制表策略的处理,将数据迁移对用户正常使用SaaS服务的影响降到了最低。 本专利技术技术方案带来的有益效果I、将验证前置,即在数据迁移之前做好类型转换等工作,这样避免了传统的数据迁移方法在迁移进行后突然因为数据类型不兼容或者模式不兼容等问题导致的中断。和现有的技术相比,增加了数据表相关性的分析,自动的识别需要一并迁移的数据表,不需要用户指定。对于不熟悉该数据库设计的用户而言,人工指定是比较困难的一个工作。往往需要耗费较长时间,并且不能保证正确。2、提高系统的并行性。在检查模块中采用多线程机制,使得模块不仅运行速度提升,而且方便移植到分布式等并行系统中。在数据迁移过程中引入复制表策略也提高了系统的并行性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图I是现有技术中数据迁移的结构流程图;图2是本专利技术系统结构图;图3是本专利技术预迁移检查的流程图;图4是本专利技术中自动分析表格关联性方法流程图;图5是本专利技术中多线程并发预迁移检查序列图;图6是本专利技术数据迁移系统流程图;图7是本专利技术中复制表策略的示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述本文档来自技高网...

【技术保护点】
一种基于表关联分析的数据表迁移的方法,其特征在于,该方法在预迁移检查模块引入表关联性分析,自动识别需要迁移数据,并采用多线程并行机制进行迁移检查;具体步骤如下:Step1:确认迁移,用户确认需要迁移的用户数据;Step2:预迁移检查,根据检查结果预先制定完善的转换规则和程序;Step3:数据提取,从源数据库中提取出数据;Step4:数据转换,将源数据按照预处理制定的转换程序进行类型等的转换,产生目标数据;Step5:根据目标数据,先判断是否需要建立新的表,如果要则建立新表,否则直接跳过;Step6:是否进行共享表的特殊处理,若是转Step7,否则转Step8;Step7:复制表处理,对共享表采用复制表策略,提高系统的并发性能;Step8:数据装载,最终将目标数据装载到目标数据库的目标表中,完毕。

【技术特征摘要】

【专利技术属性】
技术研发人员:罗笑南曾金龙林谋广孟思明林格
申请(专利权)人:中山大学
类型:发明
国别省市:

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

1