關於數據遷移的方法、步驟和心得


關於數據遷移的方法、步驟和心得

在項目中經常會遇到系統完全更換后的歷史數據遷移問題,以示對客戶歷史工作的尊重,何況很多數據仍有保留的必要。
那怎么做歷史數據遷移呢?

系統分析:
1、分析原有的業務系統
精確到大致的系統功能模塊、大致的處理流程即可
2、分析現有的業務系統
精確到大致的系統功能模塊、大致的處理流程即可
3、分析兩者自己的區別和差異
大致分析一下兩個業務系統之間的區別,有助於確定工作量和工作進度
4、分析用戶對舊有數據的需求
分析對舊有數據的需求,才不至於盲目的全部性的進行遷移
5、分析用戶對舊有數據的處理規則

舊有數據的處理規則,一般分為以下幾類:
1、基礎數據,通常這一類容易遷移,數據格式簡單,但是會影響所有的相關業務數據,關注點為數據的主鍵和唯一鍵的方式。
2、純歷史數據的導入,僅供參考用的,這一類數據導入容易
 2.1 純歷史數據
 這一類數據處理起來會比較容易,一次性導入即可,后續采用增量數據導入。
 2.2 流程性數據
 這一類數據只有在記錄完全關閉后才能結束,需要進行增量導入和數據更新,同時還要進行相關查詢界面的開發,以保證舊有數據能夠在新系統中查詢的到。
3、新老系統表結構變化較大的歷史數據
 這一類數據的工作量是最重的,就需要仔細去研究新老業務系統的數據結構了。
 1、盡量通過甲方單位來收集齊全相關原系統的相關設計文檔,這一點對數據分析很有幫助,通過人的感覺和對數據的觀察來分析畢竟不太靠譜。
 2、在原系統上進行相關數據的觀察,了解數據的變化和數據表數據的關系(對於比較難以理解的相關字段很有幫助)
 3、比較新老系統數據的差異,如果實在很不靠譜的話,建議按2.2去處理。

系統設計:
1、做完系統分析之后,對相關數據進行歸類,基礎數據、純歷史數據、變化較大的歷史數據
2、先從簡單的入手,給自己點信心
3、在excel表中進行相關表的數據字典對照,勾畫出對應字段、轉換邏輯、依賴關系、必要時在新系統表上做相應的冗余,等數據遷移完畢后再清除。
關鍵點:
不同數據庫的字段類型的匹配問題,比如SQLServer的text,在oracle應該對應clob,但是寧願轉換成幾個varchar2,從實現角度相對容易些。
關於主鍵的問題,一致的數據類型盡量維持現有狀態,不一致的盡量采用oracle的序列或sqlserver的identity int,但是遷移完畢后,要注意序列值的更新

系統實現:
1、PL/SQL或T-SQL,DTS、SSIS或者PowerBuilder的管道作為數據遷移的方式
2、相關業務邏輯的遷移,與數據完整性和業務相關的存儲過程、觸發器、函數的改寫,甚至SQL的改寫
3、業務查詢頁面的編寫

后話:
1、數據遷移沒有特別或高級的方法
2、對業務數據的分析最為關鍵,需要不斷的嘗試在新系統上不斷的測試
3、數據遷移技術,主要通過SQL、存儲過程、甚至游標來實現,優先級也如上

還有一種數據遷移僅僅是數據庫的平遷或異構數據庫遷移
數據庫平遷,即為了性能擴展需要從一台服務器遷移到另外一台服務器上,用數據庫的導出導入或備份恢復工具處理即可,當然也要考慮遷移后的一些序列字段的初始值。
異構數據遷移,即從一個數據庫平台遷移到另外一個數據庫平台,用ETL工具或SQL均可實現,不過要注意業務邏輯的遷移,即存儲過程、函數、觸發器之類的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM