必威电竞|足球世界杯竞猜平台

數據遷移
來源:互聯網

數據遷移(又稱分級存儲管理,hierarchical storage management,hsm)是一種將離線存儲與在線存儲融合的技術。它將高速、高容量的非在線存儲設備作為磁盤設備的下一級設備,然后將磁盤中常用的數據按指定的策略自動遷移到磁帶庫(簡稱帶庫)等二級大容量存儲設備上。當需要使用這些數據時,分級存儲系統(tǒng)會自動將這些數據從下一級存儲設備調回到上一級磁盤上。對于用戶來說,上述數據遷移操作完全是透明的,只是在訪問磁盤的速度上略有怠慢,而在邏輯磁盤的容量上明顯感覺大大提高了。

數據遷移是將很少使用或不用的文件移到輔助存儲系統(tǒng)(如磁帶或光盤)的存檔過程。這些文件通常是需要在未來任何時間可進行方便訪問的圖像文檔或歷史信息。遷移工作與備份策略相結合,并且仍要求定期備份。還包括電腦數據遷移,遷移舊電腦(舊系統(tǒng))中的數據、應用程序、個性化設置等到新電腦(新系統(tǒng)),在系統(tǒng)升級后很有必要。

方法

數據遷移可以采取不同的方法進行,歸納起來主要有三種方法,即系統(tǒng)切換前通過工具遷移、系統(tǒng)切換前采用手工錄入、系統(tǒng)切換后通過新系統(tǒng)生成。

遷移(和回遷)是將文件從珍貴的高速磁盤空間移出并移到輔助高容量主媒體光盤的過程。文件在脫機時仍可用,但用戶需通過網絡訪問它們。

該過程是通過將存檔文件的名稱列表保留在主媒體上實現的。當用戶需要存檔的文件時,他們在該目錄中查找該文件,找到后像普通的文件一樣打開它。隨機文件從輔助存儲器(光盤)上回遷到主存儲器(磁盤)上。整個過程在后臺發(fā)生,用戶可能不知道文件已經從光盤中回遷出來。當用戶處理完Q時,文件又遷回至輔助存儲器中。遷移過程在某個特定的時間段后或按用戶或網絡管理員的意愿立即發(fā)生。

Novell NetWare高容量存儲系統(tǒng)(HCSS)是支持脫機光盤自動換盤機存儲設備的數據存檔系統(tǒng)。光盤自動換盤機是可以從可重寫光盤庫中選盤的自動換盤設備。HCSS使用數據遷移技術在高速、低容量存儲設備(服務器的硬盤)和低速、大容量存儲設備(光盤庫)之間移動文件。用戶在一個特殊的目錄中仍能采用文件的清單,這些文件看起來就像被聯機存儲一樣。

HCSS系統(tǒng)將管理員作上標記的文件“遷移”到脫機光盤庫存儲設備中。如果用戶需要已遷移的文件,他只需按普通方法對其進行訪問。HCSS系統(tǒng)反向遷移文件到磁盤,用戶就能對其訪問。除了很短的訪問延遲,用戶將不會意識到訪問的是歸檔文件。一段時間后,文件又重新遷移回光盤。

技術準備

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

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

對數據的檢查包括以下6個方面。

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

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

(3)區(qū)間范圍檢查。檢查數據是否包含在定義的最大值和最小值的區(qū)間中。例如年齡為300或錄入日期為4000—1—1顯然有問題。

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

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

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

工具選擇

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

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

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

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

數據抽取轉換

數據抽取前,需要作大量的準備工作,具體歸納為如下4個部分。

(1)針對目標數據庫中的每張數據表,根據映射關系中記錄的轉換加工描述,建立抽取函數。該映射關系為前期數據差異分析的結果。抽取函數的命名規(guī)則為:F_目標數據表名_E。

(2)根據抽取函數的SQL進行優(yōu)化。可以采用的優(yōu)化方式為:調整SORTAREA_SIZE和HASH_AREA_SIZE等參數設置、啟動并行查詢、采用提示指定優(yōu)化器、創(chuàng)建臨時表、對源數據表作ANALYZES、增加索引。

(3)建立調度控制表,包括ETL函數定義表(記錄抽取函數、轉換函數、清洗函數和裝載函數的名稱和參數)、抽取調度表(記錄待調度的抽取函數)、裝載調度表(記錄待調度的裝載信息)、抽取日志表(記錄各個抽取函數調度的起始時間和結束時間以及抽取的正確或錯誤信息)、裝載日志表(記錄各個裝載過程調度的起始時間和結束時間以及裝載過程執(zhí)行的正確或錯誤信息)。

(4)建立調度控制程序,根據抽取調度表動態(tài)調度抽取函數,并將抽取的數據保存入平面文件。平面文件的命名規(guī)則為:目標數據表名.txt。

數據轉換的工作在ETL過程中主要體現為對源數據的清洗和代碼數據的轉換。數據清洗主要用于清洗源數據中的垃圾數據,可以分為抽取前清洗、抽取中清洗和抽取后清洗。ETL對源數據主要采用抽取前清洗。對代碼表的轉換可以考慮在抽取前轉換和在抽取過程中進行轉換,具體如下。

(1)針對ETL涉及的源數據庫中數據表,根據數據質量分析的結果,建立數據抽取前的清洗函數。該清洗函數可由調度控制程序在數據抽取前進行統(tǒng)一調度,也可分散到各個抽取函數中調度。清洗函數的命名規(guī)則為:F_源數據表名_T_C。

(2)針對ETL涉及的源數據庫中數據表,根據代碼數據差異分析的結果,如果需要轉換的代碼數據值長度無變化或變化不大,考慮對源數據表中引用的代碼在抽取前進行轉換。抽取前轉換需要建立代碼轉換函數,代碼轉換函數由調度控制程序在數據抽取前進行統(tǒng)一調度。代碼轉換函數的命名規(guī)則為:F_源數據表名_T_DM。

(3)對新舊代碼編碼規(guī)則差異較大的代碼,考慮在抽取過程中進行轉換。根據代碼數據差異分析的結果,調整所有涉及該代碼數據的抽取函數。

遷移后校驗

在數據遷移完成后,需要對遷移后的數據進行校驗。數據遷移后的校驗是對遷移質量的檢查,同時數據校驗的結果也是判斷新系統(tǒng)能否正式啟用的重要依據。

可以通過以下2種方式對遷移后的數據進行校驗:新舊系統(tǒng)查詢數據對比檢查,通過新舊系統(tǒng)各自的查詢工具,對相同指標的數據進行查詢,并比較最終的查詢結果;先將新系統(tǒng)的數據恢復到舊系統(tǒng)遷移前一天的狀態(tài),然后將最后一天發(fā)生在舊系統(tǒng)上的業(yè)務全部補錄到新系統(tǒng),檢查有無異常,并和舊系統(tǒng)比較最終產生的結果。

對遷移后的數據進行質量分析,可以通過數據質量檢查工具或編寫有針對性的檢查程序進行檢查。對遷移后數據的校驗有別于遷移前歷史數據的質量分析,主要是檢查指標的不同。遷移后數據校驗的指標主要包括5方面:完整性檢查,引用的外鍵是否存在;一致性檢查,相同含義的數據在不同位置的值是否一致;總分平衡檢查,例如欠稅指標的總和與分部門、分戶不同數據的合計對比;記錄條數檢查,檢查新舊數據庫對應的記錄條數是否一致;特殊樣本數據的檢查,檢查同一樣本在新舊數據庫中是否一致。

特點

直接映射

原來是什么就是什么,原封不動照搬過來,對這樣的規(guī)則,如果數據源字段和目標字段長度或精度不符,需要特別注意看是否真的可以直接映射還是需要做一些簡單運算。

字段運算

數據源的一個或多個字段進行數學運算得到的目標字段,這種規(guī)則一般對數值型字段而言。

參照轉換

在轉換中通常要用數據源的一個或多個字段作為Key,去一個關聯數組中去搜索特定值,而且應該只能得到唯一值。這個關聯數組使用Hash算法實現是比較合適也是最常見的,在整個ETL開始之前,它就裝入內存,對性能提高的幫助非常大。

字符串處理

從數據源某個字符串字段中經常可以獲取特定信息,例如身份證號。而且,經常會有數值型值以字符串形式體現。對字符串的操作通常有類型轉換、字符串截取等。但是由于字符類型字段的隨意性也造成了臟數據的隱患,所以在處理這種規(guī)則的時候,一定要加上異常處理。

空值判斷

對于空值的處理是數據倉庫中一個常見問題,是將它作為臟數據還是作為特定一種維成員?這恐怕還要看應用的情況,也是需要進一步探求的。但是無論怎樣,對于可能有NULL值的字段,不要采用“直接映射”的規(guī)則類型,必須對空值進行判斷,我們的建議是將它轉換成特定的值。

日期轉換

在數據倉庫中日期值一般都會有特定的,不同于日期類型值的表示方法,例如使用8位整型20040801表示日期。而在數據源中,這種字段基本都是日期類型的,所以對于這樣的規(guī)則,需要一些共通函數來處理將日期轉換為8位日期值、6位月份值等。

日期運算

基于日期,我們通常會計算日差、月差、時長等。一般數據庫提供的日期運算函數都是基于日期型的,而在數據倉庫中采用特定類型來表示日期的話,必須有一套自己的日期運算函數集。

聚集運算

對于事實表中的度量字段,他們通常是通過數據源一個或多個字段運用聚集函數得來的,這些聚集函數為SQL標準中,包括sum,count,avg,min,max。

既定取值

這種規(guī)則和以上各種類型規(guī)則的差別就在于它不依賴于數據源字段,對目標字段取一個固定的或是依賴系統(tǒng)的值。

通俗地講,數據遷移 是一種可以把大量不經常訪問的數據存放在帶庫、盤庫等離線介質上,只在盤陣上保存少量訪問頻率高的數據的技術。當那些磁帶等介質上的數據被訪問時,系統(tǒng)自動清除得把這些數據回遷到盤陣中;同樣,盤陣中很久未訪問的數據被自動遷移到磁帶介質上,從而大大降低投入和管理成本。

參考資料 >

生活家百科家居網