摘要:討論了信息系統升級后面臨的數據遷移問題,闡述了數據遷移的概念、方法和策略,強調了數據遷移中應注意的主要問題。
關鍵詞:數據遷移;系統升級;數據導入;數據抽取
中圖分類號:TP 文獻標識碼:A 文章編號:1672-3198(2010)11-0291-02
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數據的情形下,設計者們更需要仔細衡量歷史數據的有效性和對新系統的影響以及數據遷移的方式和方法。而這決不僅僅像異構數據庫、不同存儲設備之間數據遷移那么簡單,它更像是對以前業務數據和業務流程的重新審視和梳理。解決好系統替換過程中的數據遷移問題不僅是新系統成功上線的重要前提和保障,同時也是對已有系統的一次全面總結和反思。