APP下载

基于多种迁移策略的元数据驱动数据迁移研究

2015-05-15张杰

电脑知识与技术 2015年8期

张杰

摘要:该文从迁移策略上介绍了包括历史数据迁移、实时数据迁移、手动数据迁移多种策略。从迁移的形式上介绍了包括了从增量迁移和全量迁移;实际中采用了元数据驱动技术,构建从旧系统到新系统的映射元模型并制定了映射规则;技术上使用了优秀的JavaScript框架——Jquery和SQL语句完成了数据库数据的迁移。目前该系统已在数据中心建设中得到应用。

关键词:历史数据迁移;实时数据迁移;元数据驱动技术;映射元模型; 增量迁移;全量迁移

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)08-0251-03

Abstract: This paper describes the migration strategy, including historical data on migration, real-time data migration, data migration manually variety of strategies. From the migration way ,Introduced Incremental migration and Full amount of migration, Realization of using metadata driven technology; From implementation using metadata driven technology, building a mapping meta-model from the old system to the new system and developed mapping rules; From the technology use good JavaScript framework - Jquery and SQL statements to complete the database data migration. Currently the system has been applied in China Petroleum.

Key words: historical data migration; real-time data migration; metadata-driven technology; mapping meta-model; incremental migration; full amount of migration

1 概述

随着目前企业信息化进程的加速,企业数据中心的建设日益重要。很多企业的应用系统已经运行数年或者更长的时间,因此积累了大量的数据。如“中石油大庆油田公司A2施工总结数据”。数据迁移是将这些旧应用系统的数据迁移到新系统中,而有些旧系统还会继续运行,还会产生新的数据,根据实际情况迫切需要找到将历史数据实时合理地迁移到新系统中去的一种新方法.

2 介绍传统数据的迁移方法

四种传统的迁移方法有:先迁后录[1]、先录后迁、分次迁、一次性迁。

先迁后录是指:在系统单轨运行前通过市场用的迁移工具或自行开发的程序,将老系统数据转入到新系统模型中,再利用新系统功能,也可自行开发配套程序,把迁移到新系统中的老数据,再根据需要生成原有的结果数据。这种方法大大减少遷移量。

先录后迁是指:在系统单轨前,首先把部分数据输到新系统中,系统单轨时再把以前的老数据导入新系统数据库中。这种方法主要适用于新老系统数据结构差别很大情况,不能将重要的历史数据导入到新系统中。这些必须的重要数据在应用新系统前通过手工录入到新系统中。

分次迁移是指:利用市场用的迁移工具或自行开发的程序,把老数据库中的重要的历史数据分几次做迁移。这种方法把大任务分成小任务,避免了数据量大和宕机时间短之间的相矛盾的发生。这种方法的缺点是:由于数据多次合并导致了出错的概率升高,同时为了保持整体数据的一致性,这种方法要求把先导入的数据进行同步,由此使导入数据的难度增加。

一次迁移是指:利用市场用的迁移工具或自行开发的程序,把老数据库中的数据通过这种方法一次性全部导入到新数据库中。这种方法的优点是:过程用时短,与分次迁移相比较,问题涉及的较少,风险较低,其缺点是:迁移过程不太受控,而且劳动强度大。

而这些迁移策略不能够满足用户对于数据及时迁移的需要。因此本文提出了历史数据迁移、实时数据迁移、手动数据迁移多种策略,这些策略满足了数据进入新系统的及时性要求,目前此系统已经在中石油大庆油田井下数据中心中投入使用。

3 数据迁移策略框架体系模型设计

图1为基于多种迁移策略的迁移体系结构模型。对于历史数据和实时数据给予不同的迁移策略,实现了多种形式数据的迁移。

3.1 数据模型映射

数据模型映射[2]通过多种迁移方法来实现。什么是数据模型映射?它是通过一个映射规则,建立起一个目标模型和源模型之间的关系。在源模型和目标模型的描述已存在的情况下开始映射。模型映射即是数据映射。

一些数据映射关系的基本概念如下:

映射属性和映射实体。反映源系统与目标系统在概念模型上的对应关系[3]是用户可以见到的较高视图的映射实体。也是映射关系的最底层,属于规则处理的最小单位。表格与实体的对应,说明了引用和实体的完整性,属性映射是实现映射实体和映射属性的基础。不论引用完整性和实体完整性,都需要属性来实现。映射实体可分为目标映射实体和源映射实体;映射属性又可分为:分为目标映射属性和源映射属性。

映射关系

映射关系是指:目标实体和源实体属性之间的关系。有向线段和映射模式(MM)构成映射关系。映射源映射实体的映射属性就是映射关联起始节点,映射的目标实体的映射属性就是映射关联的目标节点。

三种形式的映射模式分别为为:语义映射模式(SEMA_MM)[4]、数据映射模式和算数映射模式。语义映射模式用于解决属性概念的语义计算。数据映射模式表示常量数值。算数映射用于表示属性间的加减等算数操作运算。

什么是数据映射关系

数据映射关系是: 如M就是一个三元组,映射关系名称用M表示,映射关联集合用R表示,映射算子集合用MO表示。映射关系语法的表示方法可用BNF范式表示,术语符号用”...”:表示;尖括号表示必须选择项;定义为用::=表示;中括号用业表示可选项;大括号表示可重复无限次;左右两边的任意选择项用|:表示;分组用于(...)表示:;参数用斜体字表示。描述映射关系规则如下:映射关系的语法描述如下。

3.2 元数据设计

根据以上对映射关系描述,映射模式又可分类为:从源映射实体到目标映射实体间的映射关系,对每一类映射关系又可定义为一类映射模式。但是,每一类映射模式又是一类数据转换规则;通过对油田A2数据模型的研究,由映射模式的三大类,被细分为16种映射模式。由支撑元数据可定制映射模式元数据。对应数据库间对应字段的映射模式是映射模式元数据的核心,它定义了数据表结构的转换以及处理方式,这些信息集中存储在元模型中。映射元数据模型见图 2映射元数据模型图。

3.3多策略数据迁移系统工具框架结构图

工具的总体设计思想是:由于迁移的数据量很大,首先对历史数据进行历史数据迁移;对于各个应用系统产生的实时数据,通过定时迁移模块进行定时触发迁移;还提供了手动触发迁移模式,在手动触发模块中用户可以通过选择表及其父表、选择实体(井、施工事件)实现实时数据迁移的触发。历史数据和实时数据在迁移的过程中产生的迁移日志存入相应的文件中(图 3多策略数据迁移系统工具框架结构图)

4 工具实现与应用

4.1手动迁移模块的具体实现

手动迁移模块中提供了两种对象间的对应关系:实体对应关系;表格对应关系。

筛选重复表:

在A2施工总结迁移工具中,不仅提供单表之间的对应关系还提供单表及其父表的对应关系。当用户在选择表的时候可能会出现多个表的父表重复的情况。如果对每一个被选择的表及其父表都进行迁移必然会增加系统负担,降低执行效率,因此需要对用户选择的所有表进行遍历,形成一个有序的集合进行迁移。

有两种基本机构:在初始化的过程中,把A2施工总结中所有的表组成一个顺序线性链表[5],每张表相当于树中的一个节点,每个节点存储着表代码(code)、确认标志(sign)、节点路径(path)三种节点信息。而树的继承关系由表的父子关系来描述的。(如图 4表组成的有序树与节点所示)

步骤1:初始化树节点

当选择表格以后,首先对树的节点进行初始化,所有节点形成一个顺序线性链表。节点的顺序使用各个表所在的父子关系来描述。在映射表顺序信息中每个表的继承顺序采用目录方式进行存储,实现的SQL语句如下所示:

Select * from sequ_t t where t.sequence is not null order by length(t.sequence),t.sequence

步骤2:得到被选择的一个表的顺序表

对于选择的第i个节点使用递归方式找出其所有的父表,得到一个顺序表:Ui{Tmi,Tmi+1,T mi+2,…….,T mi+n}。使用Li代表节点Ti的路径的目录数,prev()是获得上一级节点的函数,那么得到节点Ti根节点递归表达式为:

步骤3:修改顺序线性链表

然后与初始化得到的顺序数进行比对并修改确认标志。

重复以上的过程直到最后一个被选择的节点操作完毕。操作过程如图 5 筛选重复表流程

4.2实现历史迁移模块的过程

4.2.1、实时获取迁移信息

由于历史数据迁移量较大,客户端向服务器的请求时间很长,所以出现了页面失效的问题。故采用Ajax[7]异步方式使迁移模块在服务器后台运行来实现历史数据的迁移,并把迁移过程中产生的日志信息存入日志文件中。为了读取所产生的日志信息,采用Jquery [6] 定时器定时以同步方式从服务器取回迁移信息,并在客户端进行显示,使用Jquery框架能够很好的实现前台与后台的交互。如图 6同步获取迁移信息的流程

5 结束语

该文描述了一个基于多种迁移策略的数据迁移的架构,构建了元数据模型,点讨论了映射规则和具体的实现,解决了各个应用系统的历史数据和实时数据的迁移。以上提到的迁移策略在实际工作中已经被采用,顺利的实现的源系统与目标系统数据的迁移,保证了系统的正常运转。

参考文献:

[1] 王东,文必龙,林冬梅.数据映射工具设计[J].大庆石油学院学报,1997(4).

[2] 徐茜,吕良双. MIS数据迁移中的映射规则[J].计算机与现代化,2007(8).

[3] 张小波,成良玉,邱科宁,.基于协同数据库的数据迁移模型研究与实现[J].计算机工程与设计,2005(5).

[4] 张珈珣.用电管理系统数据迁移的设计与实现[D].吉林大学,2009.

[5] 左正康,游珍,薛錦云.后序遍历二叉树非递归算法的推导及形式化证明[J].计算机工程与科学,2010(3).

[6] jQuery官方网站[EB/OL].http://www.jquery.com.

[7] 阳峰,徐建波. AJAX技术的性能改进研究[J].计算机工程与科学,2008(6).