Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338510
  • 博文数量: 282
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3260
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-26 14:38
文章分类

全部博文(282)

文章存档

2011年(1)

2008年(281)

我的朋友
最近访客

分类: 服务器与存储

2008-07-27 10:10:12

  数据迁移,就是将历史数据进行清洗、转换,并装载到新系统中的过程。在新旧系统的切换过程中,必然要面临数据迁移的问题。本文将介绍需要为数据迁移做哪些技术准备工作和数据迁移的方法。

  原有的旧系统从启用到被新系统取代,在其使用期间必然会积累大量的历史数据,其中许多历史数据都是新系统顺利启用所必需的。另外,这些历史数据也是进行决策分析的重要依据。

  数据迁移主要适用于一套旧系统切换到另一套新系统,或多套旧系统切换到同一套新系统时,需要将旧系统中的历史数据转换到新系统中的情况。

  数据迁移的技术准备

  数据转换与迁移通常包括多项工作:旧系统数据字典整理、旧系统数据质量分析、新系统数据字典整理、新旧系统数据差异分析、建立新旧系统数据之间的映射关系、开发部署数据转换与迁移程序、制定数据转换与迁移过程中的应急方案、实施旧系统数据到新系统的转换与迁移工作、检查转换与迁移后数据的完整性与正确性。

  数据转换与迁移程序ETL(Extract Transform Load)的过程大致可以分为抽取、转换、装载三个步骤。数据抽取、转换是根据新旧系统数据库的映射关系进行的,而数据差异分析是建立映射关系的前提,这其中还包括对代码数据的差异分析。

  转换步骤一般还要包含数据清洗的过程,数据清洗主要是针对源数据库中出现二义性、重复、不完整、违反业务或逻辑规则等问题的数据进行相应的清洗操作。在清洗之前需要进行数据质量分析,以找出存在问题的数据,否则数据清洗将无从谈起。数据装载是通过装载工具或自行编写的SQL程序将抽取、转换后的结果数据加载到目标数据库中。

  数据迁移的四种方法

  数据迁移可以采取不同的方法进行,归纳起来主要有四种方法。

  ·系统切换前通过工具迁移。在系统切换前,利用ETL工具把旧系统中的历史数据抽取、转换,并装载到新系统中去。这种方法是数据迁移最主要的方法之一,也是最快捷的方法之一。其实施的前提是,历史数据可用并且能够映射到新系统中。

  ·编写后台数据库程序。在系统切换前,将旧系统涉及到的迁移数据,在新系统中建立相应的数据库表结构,并将旧数据导入相应的表中,然后在新系统中编写后台程序,将历史数据迁移到新系统中。

  ·系统切换前采用手工录入。在系统切换前,组织相关人员把需要的数据手工录入到新系统中。主要是对无法转换到新系统中的数据和新系统必需而旧系统无法提供的数据采用这种方法。这种方法可作为第一种方法的有益补充。

  ·系统切换后通过新系统生成。系统切换后,通过新系统的相关功能或为此专门开发的配套程序生成所需要的数据。通常根据已经迁移到新系统中的数据来生成所需的信息。其实施的前提是这些数据能够通过其他数据产生。

  数据迁移的实现

  数据迁移的实现可以分为三个阶段:数据迁移前的准备、数据迁移的实施和数据迁移后的校验。

  鉴于数据迁移的特点,大量的工作都需要在准备阶段完成,充分而周到的准备工作是完成数据迁移的主要基础。

  具体而言,要进行待迁移数据源的详细说明,包括数据的存放方式、数据量、数据的时间跨度,建立新旧系统数据库的数据字典,对旧系统的历史数据进行质量分析,新旧系统数据结构的差异分析,建立新老系统数据库表的映射关系,对无法映射字段的处理方法,开发、部署ETL工具,编写数据转换的测试计划和校验程序,制定数据转换的应急措施等。

  其中,数据迁移的实施是实现数据迁移的三个阶段中最重要的环节。它要求制定数据转换的详细实施步骤流程;准备数据迁移环境;结束未处理完的业务事项或将其告一段落;对数据迁移涉及的技术进行测试;最后实施数据迁移。

  数据迁移后的校验是对迁移工作的检查,数据校验的结果是判断新系统能否正式启用的重要依据。 (Dwway供稿)

  

  ● 相关链接 ●

  数据迁移的特点

  系统切换时的数据迁移不同于从生产系统OLTP(On-line Transaction Processing),到数据仓库(Data Warehouse)的数据抽取。后者主要将生产系统在上次抽取后所发生的数据变化同步到数据仓库,这种同步在每个抽取周期都进行,一般以天为单位。而数据迁移是将需要的历史数据一次或几次转换到新的生产系统,其最主要的特点是需要在短时间内完成大批量数据的抽取、清洗和装载。

  数据迁移的内容是整个数据迁移的基础,需要从信息系统规划的角度统一考虑。划分内容时,可以从横向的时间和纵向的模块两个角度去考虑。

  ·横向划分。以产生数据的时间为划分依据,需要考虑比较久远的历史数据如何迁移的问题。新系统每天往往需要比旧系统存储更多的信息,同时为了解决数据量高增长带来的性能瓶颈,新系统一般只保留一定时期的数据,比如1年,而把超过保存周期的数据转移到数据仓库中,以便用于决策分析(需建立决策支持系统)。对于这种新系统的数据迁移,主要迁移1年以内的数据。

  ·纵向划分。以处理数据的功能模块为划分依据,需要考虑在新系统中没有被包含的功能模块和所涉及数据的处理问题。这类数据由于无法建立映射关系,一般不需要迁移到新系统中。但对于模块间耦合度比较紧密的旧系统,在纵向划分时需要注意数据的完整性。
阅读(1022) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~