信息系统升级后的数据迁移研究
讨论了信息系统升级后面临的数据迁移问题,阐述了数据迁移的概念、方法和策略,强调了数据迁移中应注意的主要问题。
标签:数据迁移;系统升级;数据导入;数据抽取
1 引言
在信息化建设过程中,随着业务需求的变化与信息技术的发展,原有的系统不断被功能更强大的新系统所取代。在旧系统运行期间往往积累了大量珍贵的历史数据,而在系统更换前,现有系统中有效数据的倒入,对系统切换以及新系统正常运行有着至关重要的影响,面临数据迁移的问题。数据迁移稍有不慎,便会造成新系统不能正常启动;而迁移过多垃圾数据,将有可能使新系统运行缓慢、甚至瘫痪,因此数据迁移往往是系统更替时最后、也是最重要的环节。
2 数据迁移概念
所谓数据迁移,就是将系统使用期间积累的历史数据进行清洗、转换,并装载到新系统中的过程。主要是用于将一套旧系统切换到另一套新系统,或将多套旧系统切换到同一套新系统时。需要将旧系统中的历史数据转换到新系统中的情况。它最主要的特点是需要在短时间内完成大批量数据的抽取、清洗和装载。
3 数据迁移方法
数据迁移一般可以采取三种方法来实现;一是系统切换前采用手工录入,二是系统切换前通过工具迁移。三是系统切换后通过新系统生成。这三种方法在数据迁移过程中各有利弊。
3.1 系统切换前采用手工录入
这种方法是在系统切换前,组织相关人员把需要的数据手工录人到新系统中去。其优点是自主性强,比较灵活,但是消耗的人力、物力比较大,同时出错率也比较高。主要适用于一些无法转换到新系统中的数据以及新系统启用时必需而旧系统无法提供的数据,多作为通过工具迁移方式的补充。
3.2 系统切换前通过工具迁移
这种方法是在系统切换前,利用ETL(Extract Trans-form Load)工具把旧系统中的历史数据抽取、转换,并装载到新系统中去。其中ETL工具可以购买成熟的产品,也可以是自主开发的程序。这种方法的优点是快捷、可以批量处理,但是应用前提是历史数据可用并且能够映射到新系统中。主要适用于静态数据的迁移,目前它是数据迁移最主要的方法。
3.3 系统切换后通过新系统生成
这种方法是在系统切换后,通过新系统的相关功能,或为此专门开发的配套程序生成所需要的数据。这种方法的优点是快速准确,但是应用前提是这些数据能够通过其它数据产生。通常是根据已经迁移到新系统中的数据来生成所需的信息,主要适用于生成动态基础数据。
目前,最普遍的方式是通过工具迁移,但是在使用时经常遇到的是原来系统中的数据不是所需要的准确数字,还需要专门检查导人数据的准确性和有效性,因此更多的是采用工具迁移和手工录入相结合的方式。即少量数据通过手工导人,大量数据通过工具迁移,既减轻繁琐程度,又保证迁移的准确性。
4 数据迁移策略
数据迁移策略是指采用什么方式进行数据的迁移。结合不同的迁移方法,主要有一次迁移、分次迁移、先录后迁、先迁后补等几种方式。
4.1 一次迁移
一次迁移是通过数据迁移工具或迁移程序,将需要的历史数据一次性全部迁移到新系统中。一次迁移的优点是迁移实施的过程短,相对分次迁移,迁移时涉及的问题少,风险相对比较低。其缺点是迁移所需的时间比较长,工作强度比较大。一次迁移的前提是新旧系统数据库差异不大,在允许的系统宕机时间内可以完成所有数据量的迁移。
4.2 分次迁移
分次迁移是通过数据迁移工具或迁移程序,将需要的历史数据分几次迁移到新系统中。其优点是可以将任务分开,解决数据量大和系统宕机时间短之间的矛盾;缺点是分次切换导致数据多次合并,增加了出错的概率;同时为了保持整体数据的一致性,需要对先切换的数据进行同步,增加了迁移的复杂度。分次迁移一般在系统切换前先迁移静态数据和变化不频繁的数据,然后在系统切换时迁移动态数据。对于静态数据迁移之后发生的数据变更,可以每天同步到新系统中,也可以在系统切换时通过增量的方式一次同步到新系统中。
4.3 先录后迁
先录后迁是在系统切换前,先通过手工把一些数据录入到新系统中,系统切换时再迁移其它的历史数据。先录后迁主要针对新旧系统数据结构存在特定差异的情况,即对于新系统启用时必需的初始数据,无法从现有的历史数据中得到。对于这部分初始数据,就可以在系统切换前通过手工录入。
4.4 先迁后补
先迁后补是指在系统切换前通过数据迁移工具或迁移程序,将原始数据迁移到新系统中,然后基于已迁移到新系统中的原始数据,通过新系统的相关功能,或为此专门编写的配套程序,生成所需要的结果数据。先迁后补可以减少迁移的数据量。
5 数据迁移应注意的问题
5.1 数据迁移忌完整
历史数据的迁移绝对不是孤立存在的。它虽然看似一个简单的数据库更替问题,但是,它涉及到从一个系统到另一个系统,从一个应用模式到另一个应用模式的转变。
如果系统是同一厂商的产品,那么由于是在同一数据库基础上开发,存储逻辑或方法基本相同,所以旧系统中的数据利用率会很高,可以达到70%;但如果是不同厂商的产品,其旧数据利用率会很低,而且旧系统中数据利用得越多,新系统的负担就越大、性能越差。另外即使产品的模块可能相同,但是在相应实现方法、数据库记录的表结构以及业务工作流程方面却是大相径庭。因此,系统替换过程中的数据迁移不仅仅是数据的导人、导出问题,更是系统的更换、工作方式的改变。所以,在进行数据迁移时,设计人员不应只强调数据的完整性,而更应考虑到如何选择有效的历史数据以及如何对旧系统中的历史数据进行导人等问题。
5.2 数据迁移有条件
在系统替换过程中,并不是所有的历史数据都可以平滑过渡到新的系统。要保证进入到新系统中的数据符合规范,两套不同的系统之间就不能照搬数据。首先应考察原系统在使用过程中是否运行良好,流程是否合理,运行是否稳定;然后确定数据是否准确;最后再搞清楚哪些数据对于新系统来说是有用的,为新系统所需要。
通常,系统中的数据分为两大类:一类是基础数据,一类是业务数据。其中,基础数据是开展业务活动所需要的基本数据,如人员信息、产品资料、供应商资料、库房信息等数据。基础数据的特点是它是业务数据的基础,在整个系统使用过程中基本保持不变,属于静态数据。而业务数据包括采购订单、采购入库、销售订单、销售出库,帐目凭证等数据,它是在业务进行过程中所产生的动态数据。一般情况下,基础数据在新旧系统中可以共用,因此这些数据基本上可以导人到新的系统当中。而对于每次交易所发生的业务数据,由于起所占存储空间比较大,而且相对而言比较复杂,不宜直接进行数据迁移,而应在新系统中生成新的帐务。
5.3 数据检验要靠人判断
在对旧系统数据迁移完成后,相关人员还需要对迁移后的数据进行校验。而
检验的指标应包括数据的准确性、有效性、一致性三部分。要判断数据的有效和准确,可以编制一些小软件,依照业务流程和一些数据进行模拟,但是计算机程序没有智能行为,因此除程序检测外,最好还要通过系统外的方法,要靠实施人员和关键用户,检查最后的数据结果和报表是否正确。
6 结束语
综上所述,在进行新旧系统替换过程中,设计人员除了要对新系统进行项目需求、规划、设计、实施,解决用户应用习惯以及开发相关接口外,还要认真考虑历史数据的导入问题。尤其是在现有系统运行数年,积累了上百GB数据的情形下,设计者们更需要仔细衡量历史数据的有效性和对新系统的影响以及数据迁移的方式和方法。而这决不仅仅像异构数据库、不同存储设备之间数据迁移那么简单,它更像是对以前业务数据和业务流程的重新审视和梳理。解决好系统替换过程中的数据迁移问题不仅是新系统成功上线的重要前提和保障,同时也是对已有系统的一次全面总结和反思。