B端產品新老系統切換過程中的數據遷移總結

7 評論 7657 瀏覽 44 收藏 7 分鐘

作為工作多年的B端產品經理,或多或少會遇到新系統替換老系統或系統重構升級的場景,數據遷移是系統切換過程中非常重要的一環,數據遷移的成功與否直接影響到后續系統的穩定運行。不同的切換場景會面臨不同的數據遷移的問題,一套全面的數據遷移方案,能夠指導數據遷移工作順利的進行。

01 數據遷移場景

企業業務發現,原系統無法滿足業務需求,需要開發新的系統替換原有系統,而原系統中的歷史數據或正在進行中的業務數據需要在新系統中體現,新系統上線前,需要完成舊系統向新系統的數據遷移。

02 系統切換方式

系統的切換方式,會影響數據遷移方式的選擇。新老系統進行切換時,常見的幾種操作方式:

  1. 確定新系統上線時間后,新老系統并行運行,新訂單使用新系統,在途訂單使用老系統,待老系統所有在途訂單都完成后,將歷史數據一次性遷移至新系統。
  2. 確認新系統上線時間后,老系統停用,所有數據及功能全部切換至新系統。
  3. 新系統的調整比較大,業務流程也進行了大規模調整的情況下,也會采用選擇年或月的結算區間選擇上線時間進行切換,切換后,業務數據不進行遷移,歷史數據保留在舊系統進行查看。

03 數據遷移內容

1、數據:

  1. 基礎數據:支撐各個模塊及各業務的主數據,如客戶、資產、項目、產品、車輛、工具信息等
  2. 字典數據:系統全局的字典數據
  3. 用戶數據:用戶賬號、組織、角色、權限等
  4. 業務數據:業務進行過程中產生的數據,如訂單數據、交易數據、賬單數據、操作數據、各環節的流轉數據等。業務數據還包括:
  5. 歷史數據:業務上已經完成結算的或其他完成節點已經產生的數據。
  6. 在途數據:系統升級或切換的同時,業務也在正常的運行,系統中會存在很多在途數據,如未完成的訂單數據,在途中的運單數據等;在途數據的處理需要特別關注。

2、數據間的關聯關系:關系型數據通過ID或主鍵進行數據關聯,遷移時數據之間的關聯關系需要進行重新對應

3、文件:部分附件、圖片等數據和業務數據直接關聯,需要重新存儲和建立聯系,一些單獨存儲的文件可直接轉移到新服務器,同時需要存儲對應的URL等

04 遷移方式

影響遷移方式選擇的要素很多:遷移數據量的大小、傳輸的時長、業務是否可暫停。

1、離線遷移:

  1. Excel導出-導入:通過導出-導入Excel的方式,將數據導入到新系統,導出的數據可根據新系統的數據格式進行調整后導入;
  2. 數據庫同步:通過Sql或數據庫同步工具,將新系統和老系統的字段進行對應,批量導入到新系統中;

2、在線遷移:

  1. 接口傳輸,通過定義和編寫接口,實現新老系統之間的數據同步,新舊系統切換需要雙系統并行的場景下,接口傳輸可實現新老系統之間的雙向同步。企業在信息化建設過程中,會存在外采轉自研的場景,項目不可控時,盡量實現系統一次性切換升級,避免系統并行。
  2. 數據庫同步:面對遷移數據量比較大,耗時比較久的項目時,可以借助數據庫遷移工具等,采用部分數據會進行全量+增量遷移的方式,數據全量遷移到新系統,然后執行每天的自動增量遷移或手動增量遷移,系統切換前,要完成最后一次增量備份。

05 數據驗證

遷移的過程中和遷移后需要做數據的驗證,確保數據的準確性、完整性、一致性,如:新舊系統的數據數量、數據內容、遷移過程中未產生增量數據等。數據遷移一般需要多次的預演和多次的驗證,保證正式系統正式切換時,數據遷移的成功率。

驗證需要準備詳細的驗證用例,和測試用例相似:

  1. 基礎數據、數據字典的變化頻率較低,可預先進行數據同步,屬于上線前的環境準備工作,可提前同步到新系統并完成測試;
  2. 已經完成的業務歷史數據,同步后通過查詢、導出、BI等關聯功能驗證數據是否正確,完整;
  3. 未完成的業務在途數據,需額外進行業務操作流程的驗證,根據數據所處的流程階段,進行下一步的業務正逆向業務操作,確保在途數據能順利完成。

06 結語

近幾年傳統行業進行信息化建設,完成了多個項目的外采轉自研,經歷了多次的數據遷移,關系型數據庫、非關系型數據庫、生產系統、辦公系統。嘗試將數據遷移的一點經驗總結下來,還有很多欠缺,每日一點成長,以此自勉。

歡迎大家一起討論。

本文由@特立獨行俠 原創發布于人人都是產品經理,未經許可,禁止轉載。

題圖來自 Unsplash,基于 CC0 協議。

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. SAAS系統在數據遷移中做半標準化處理,這方面想請教下怎么入手比較好?

    來自上海 回復
  2. 假如新菜單基本都變了,角色關聯的菜單也要跟著變,這種情況請問你們是怎么處理的?

    來自廣東 回復
    1. 菜單屬于基礎數據,菜單除角色外不和其他數據關聯(SaaS另說),且一次性處理,不存在未完成等狀態屬性,屬于系統初始化,導出導入應該就能解決這種問題。

      來自北京 回復
  3. 舊系統是二十多年前的系統,新系統是現在流行的架構和技術,新老系統的數據對接有點惱火,老的歷史數據和新的數據的融合,數據字段命名方式都不一樣。

    來自四川 回復
    1. 這種情況數據庫層面的融合難度會很高,尤其是關聯數據的對應,可以考慮采用導出導入的方式,或者API接口的方式,從功能層面進行數據的融合??礃I務數據量的大小,合理的考慮用哪種方式,數據量小,導入導出就能滿足要求,數據量大,API后臺任務先同步完歷史數據,再同步新數據。

      來自北京 回復
  4. 系統升級是非常非常燒腦的事情

    來自上海 回復
    1. 是呀,系統升級涉及到的內容非常多,系統升級設計時就需要進行全面的考慮,1、新老系統并行運行問題;2、內外部系統的對接問題;3、數據遷移問題;4、新技術切換問題等等

      來自北京 回復