數(shù)據(jù)遷移的實現(xiàn)可以分為三個階段:數(shù)據(jù)遷移前的準備、數(shù)據(jù)遷移的實施和數(shù)據(jù)遷移后的校驗。

    由于數(shù)據(jù)遷移的特點,大量的工作都需要在準備階段完成,充分而周到的準備工作是完成數(shù)據(jù)遷移的主要基礎。具體而言,要進行待遷移數(shù)據(jù)源的詳細說明,包括數(shù)據(jù)的存放方式、數(shù)據(jù)量、數(shù)據(jù)的時間跨度,建立新舊系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)字典,對舊系統(tǒng)的歷史數(shù)據(jù)進行質量分析,新舊系統(tǒng)數(shù)據(jù)結構的差異分析;新舊系統(tǒng)代碼數(shù)據(jù)的差異分析;建立新老系統(tǒng)數(shù)據(jù)庫表的映射關系,對無法映射字段的處理方法,開發(fā)、部屬ETL 工具,編寫數(shù)據(jù)轉換的測試計劃和校驗程序,制定數(shù)據(jù)轉換的應急措施。

    其中,數(shù)據(jù)遷移的實施是實現(xiàn)數(shù)據(jù)遷移的三個階段中最重要的環(huán)節(jié)。它要求制定數(shù)據(jù)轉換的詳細實施步驟流程;準備數(shù)據(jù)遷移環(huán)境;業(yè)務上的準備,結束未處理完的業(yè)務事項,或將其告一段落;對數(shù)據(jù)遷移涉及的技術都得到測試;最后實施數(shù)據(jù)遷移。

    數(shù)據(jù)遷移后的校驗是對遷移工作的檢查,數(shù)據(jù)校驗的結果是判斷新系統(tǒng)能否正式啟用的重要依據(jù)。可以通過質量檢查工具或編寫檢查程序進行數(shù)據(jù)校驗,通過試運行新系統(tǒng)的功能模塊,特別是查詢、報表功能,檢查數(shù)據(jù)的準確性。

    6.3.1 數(shù)據(jù)遷移的技術準備

    數(shù)據(jù)轉換與遷移通常包括多項工作:舊系統(tǒng)數(shù)據(jù)字典整理、舊系統(tǒng)數(shù)據(jù)質量分析、新系統(tǒng)數(shù)據(jù)字典整理、新舊系統(tǒng)數(shù)據(jù)差異分析、建立新舊系統(tǒng)數(shù)據(jù)之間的影射關系、開發(fā)部署數(shù)據(jù)轉換與遷移程序、制定數(shù)據(jù)轉換與遷移過程中的應急方案、實施舊系統(tǒng)數(shù)據(jù)到新系統(tǒng)的轉換與遷移工作、檢查轉換與遷移后數(shù)據(jù)的完整性與正確性。

    數(shù)據(jù)轉換與遷移程序,即ETL 的過程大致可以分為抽取、轉換、裝載三個步驟。數(shù)據(jù)抽取、轉換是根據(jù)新舊系統(tǒng)數(shù)據(jù)庫的映射關系進行的,而數(shù)據(jù)差異分析是建立映射關系的前提,這其中還包括對代碼數(shù)據(jù)的差異分析。轉換步驟一般還要包含數(shù)據(jù)清洗的過程,數(shù)據(jù)清洗主要是針對源數(shù)據(jù)庫中,對出現(xiàn)二義性、重復、不完整、違反業(yè)務或邏輯規(guī)則等問題的數(shù)據(jù)進行相應的清洗操作,在清洗之前需要進行數(shù)據(jù)質量分析,以找出存在問題的數(shù)據(jù),否則數(shù)據(jù)清洗將無從談起。數(shù)據(jù)裝載是通過裝載工具或自行編寫的SQL 程序將抽取、轉換后的結果數(shù)據(jù)加載到目標數(shù)據(jù)庫中。

    對數(shù)據(jù)的檢查

    數(shù)據(jù)格式檢查:檢查數(shù)據(jù)的格式是否一致和可用,目標數(shù)據(jù)要求為number 型。

    數(shù)據(jù)長度檢查:檢查數(shù)據(jù)的有效長度。對于char 類型的字段轉換到varchar 類型中,需要特別關注。

    區(qū)間范圍檢查:檢查數(shù)據(jù)是否包含在定義的最大值和最小值的區(qū)間中;例如年齡為300,或錄入日期在4000-1-1。

    空值、默認值檢查:檢查新舊系統(tǒng)定義的空值、默認值是否相同,不同數(shù)據(jù)庫系統(tǒng)對空值的定義可能不同,需要特別關注。

    完整性檢查:檢查數(shù)據(jù)的關聯(lián)完整性。如記錄引用的代碼值是否存在,特別需要注意的是有些系統(tǒng)在使用一段時間后,為了提高效率而去掉了外鍵約束。

    一致性檢查:檢查邏輯上是否存在違反一致性的數(shù)據(jù),特別是存在分別提交操作的系統(tǒng)。

    6.4.2 數(shù)據(jù)遷移工具的選擇

    數(shù)據(jù)遷移程序的開發(fā)、部署主要有兩種選擇,即自主開發(fā)程序或購買成熟的產(chǎn)品。這兩種選擇都有各自不同的特點,選擇時還要根據(jù)具體情況進行分析??v觀目前國內一些大型項目,在數(shù)據(jù)遷移時多是采用相對成熟的ETL 產(chǎn)品??梢钥吹竭@些項目有一些共同特點,主要包括:遷移時有大量的歷史數(shù)據(jù)、允許的宕機時間很短、面對大量的客戶或用戶、存在第三方系統(tǒng)接入、一旦失敗所產(chǎn)生的影響面將很廣。同時也應該看到,自主開發(fā)程序也被廣泛地采用。

    相關的ETL 產(chǎn)品

    目前,許多數(shù)據(jù)庫廠商都提供數(shù)據(jù)抽取工具,如Informix 的InfoMover、Microsoft SQL Server7 的DTS 和Oracle 的Oracle Warehouse Builder 等,這些工具在一定范圍內解決了數(shù)據(jù)的提取和轉換。但這些工具基本都不能自動完成數(shù)據(jù)的抽取,用戶還需利用這些工具編寫適當?shù)霓D換程序。

    例如Oracle 的Oracle Warehouse Builder 數(shù)據(jù)抽取工具,簡稱OWB,提供的功能包括:模型構造和設計;數(shù)據(jù)提取、移動和裝載;元數(shù)據(jù)管理等。但OWB 提供的流程繁瑣,維護很困難,不易于使用。

    在第三方產(chǎn)品中,Ascential Software 公司的DataStage 是一套相對比較完善的產(chǎn)品。DataStage 可以從多個不同的業(yè)務系統(tǒng)中,從多個平臺的數(shù)據(jù)源中抽取數(shù)據(jù),完成轉換和清洗,裝載到各種系統(tǒng)里面。其中每步都可以在圖形化工具里完成,同樣可以靈活的被外部系統(tǒng)調度,提供專門的設計工具來設計轉換規(guī)則和清洗規(guī)則等,實現(xiàn)了增量抽取、任務調度等多種復雜而實用的功能。其中簡單的數(shù)據(jù)轉換可以通過在界面上拖拉操作和調用一些DataStage 預定義轉換函數(shù)來實現(xiàn),復雜轉換可以通過編寫腳本或結合其他語言的擴展來實現(xiàn),并且DataStage 提供調試環(huán)境,可以極大地提高開發(fā)和調試抽取、轉換程序的效率。

分享到

多易

相關推薦