在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何做好大型遺留系統的數據遷移

茶棚小二a ? 2022-05-18 18:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

歷史悠久的大型企業,都會存在遺留系統。這些系統運轉著重要的業務,但使用到的技術已經跟不上時代潮流。因此有著維護成本高、難以擴展、用戶體驗差等缺陷。最終,企業一定會下決心開發一套全新的系統來替代遺留系統。除了完成新系統的開發,還有一項重要的工作,是將老系統中存留的數據遷移進新系統,也就是我們常說的數據遷移。

如果你沒有數據遷移的經驗,很容易低估其難度。數據遷移看起來只是把數據從一個 DB 轉移到另外一個 DB,select + insert + 轉換邏輯就可以輕松搞定。如果帶著這個想法開始數據遷移項目,你的團隊很快就會墜入深淵,舉步維艱。

數據遷移是一項看似簡單,實而復雜且繁瑣的工作,想要做好并不容易。

為什么數據遷移項目難做

不久前,我剛剛完成一次數據遷移項目。雖然項目結果很成功,但過程中遇到很多開始之初沒有想到的問題,導致項目過程非常痛苦。如果在項目開始時就把這些問題考慮進來,過程會輕松很多,風險也會小很多。下面我們來看看數據遷移項目所面臨的挑戰有哪些。

陌生的遺留系統 DB 設計

作為新系統的開發方,你一定熟知新系統的 DB 設計。但是遺留系統的 DB 設計想必你一定不甚了解。作為要被替換的遺留系統,其開發方肯定也不會提供技術支持。在這個情況下,如何寫好遷移規則就成為了一個難題。

古老的遺留系統數據庫

新系統一般都會采用當前主流的數據庫,例如 MySQL、Oracle 等。但遺留系統可能采用的是幾十年前古老的技術,數據庫的名字你可能聽都沒聽過。這時候不會有任何 ETL 工具可以使用,甚至于沒有主流語言的客戶端類庫可以使用。如何連接老系統的 DB,查詢出里面的數據都會是一個難題。

遷移海量數據量

遺留系統經過幾年甚至幾十年的使用,累積了海量的數據。業務一般不會輕易放棄這些數據。同時,在上線的窗口期內,留給數據遷移的時間也就短短幾個小時。如何在短時間內導入海量的數據,將會是很大的挑戰!

錯誤數據如何處理

新老系統在業務處理上肯定會有差異,此外老系統的數據也會有質量問題。這會導致有一部分數據無法進入新系統。業務人員總是希望能夠導入更多的數據到新系統。一個選擇是放松校驗,但低質量的數據進入新系統會造成很多問題。另外一個選擇是讓業務人員在老系統中修復數據。但很多問題數據無法通過界面修改。如何權衡數據的遷移準入標準也將是一個挑戰。否則遷移成功率上來了,但上線后會陷入無止境的修數據工作中。

業務部門過高的預期

業務部門往往對數據遷移抱有不切實際的幻想,例如非常高的導入成功率及導入速度。如何采用有效的策略讓業務部門降低預期,是數據遷移項目組要認真思考的問題。否則團隊的辛苦付出不被認可,對團隊傷害極大。

數據遷移程序如何兼容業務系統的改動

迫于上線時間點的壓力,往往數據遷移程序開發的同時,業務系統也還在開發中。如何做到兼容業務系統的變化,是一個難題。處理不好這個問題,會導致數據按照錯誤的邏輯導入,甚至可能遺漏新的字段。

要開發的遠不止數據遷移程序

數據遷移項目中除了開發遷移的主程序,還需要開發很多輔助的工具。比如成功率報表工具、錯誤日志分析工具、數據刪除工具、環境檢查工具等。這些工具都是數據遷移過程中必不可少的。如果項目估算時忽略了這些工作量,會造成嚴重的資源緊張。

較高的技術和工具門檻

數據遷移使用的技術和工具不同于業務開發,均有一定門檻。如果項目中期遇到進度吃緊,需要增加資源,往往很難短時間找到合適的資源。最終可能妥協讓沒有經驗的工程師上項目。這些工程師如何快速掌握所需技能,加速融入團隊是項目組需要提前考慮的事情。如果處理不好,會造成新人沒有產出,只能依賴項目已有人員加班趕工,使得整個團隊陷入疲憊不堪的狀態。

做好數據遷移,就這些事

看完上面數據遷移過程中的各種問題,是不是覺得很頭疼?沒關系,辦法總比困難多。根據經驗,我提煉出如下幾件數據遷移要關注的事情。

Mapping rule(映射規則) 管理

Mapping rule是數據遷移的需求。寫好 mapping rule 需要既熟悉新系統,又熟悉老系統。并且還要熟悉數據庫設計。一個人能同時做到新老系統都熟悉幾乎不可能。一般來說需要新老系統各出一位熟悉系統的成員,一起討論 mapping rule。
建議參與 mapping rule 討論和制定的是開發成員。因為此人不僅需要熟悉業務,還需要熟悉數據如何存儲。
Mapping rule 還需要明確遷移的數據范圍。哪些業務數據需要遷移,遷移多久的數據都需要明確。
Mapping rule 制定完成后,要和業務部門澄清確認。并且告知成功率不可能100%,盡量降低業務的預期。
對 Mapping rule 的變更要格外小心,尤其在開發的收尾階段,原因如下:

  1. 為了讓幾條報錯數據進入系統而改了 mapping rule,有可能導致更多數據進不來。
  2. Mapping rule的修改很可能影響系統的性能。
    如果 mapping rule 是錯誤的,必須要改,那么一定注意上面的兩個問題。千萬不要僅僅關注 mapping rule 變更的工作量。

工具、技術培訓

數據遷移一般會使用 ETL 工具,當然也可能自開發程序。遷移程序的關注點在如何高效快速的處理數據,這和業務開發關注點完全不同。因此采用的技術棧也區別很大。由于數據遷移所使用的技術在業務開發中較少使用,所以需要提前投入時間學習。并且需要制定長期的學習計劃,項目開始后也要保持團隊的學習和技術交流

注意留存學習和分享的資料,未來有新人加入時,能夠直接拿來學習,加速融入團隊的速度。

程序設計

架構師需要先行設計好代碼框架,定義好開發規范和流程,并寫好樣例代碼。這樣可以確保開發集中進項目時快速產出。程序設計要考慮如下事項:

  1. 遷移任務的記錄、解耦以及依賴管理。
  2. log 設計。需要包含任務名稱,錯誤數據業務主鍵子段等關鍵信息??傊枰奖憬y計和定位錯誤。
  3. 通過程序設計,讓開發只關注業務邏輯的實現。不需要過多關注任務記錄、異常處理等非功能性需求。
  4. 能夠方便調節并發數等性能相關參數。
  5. 成功率統計程序設計。
  6. 錯誤日志分析程序設計。
  7. 其他輔助工具。
  8. 如何兼容業務系統的新變更。

重點說一下最后一點,很多時候在遷移程序開發階段,業務系統還未開發結束。如果解決業務邏輯的改動和表變更改動對數據遷移的影響是個難題。首先業務邏輯的改動我們可以通過調業務API完成數據遷移的方式來屏蔽掉。由于不是表對表轉換后直接sql寫入,而是通過業務的API寫入。那么當API輸入有變化時,遷移程序就會報錯。此外如果邏輯有調整,數據自然也會按照最新的邏輯進入的數據庫。

對于新的字段和新的表,我們可以通過工具對比現有 mapping rule 的表和字段,識別出變化點,再分析是否需要增加 mapping rule 來遷移這些數據。

一定要在開發高峰到來前做好程序設計和框架代碼開發。否則會讓開發團隊陷入泥沼,有力氣使不上。
性能調優

大數量級的數據遷移,肯定會有性能的問題。數據遷移時,新老系統都不可用。因此,業務部門肯定希望數據遷移時間越短越好。這對性能是極大的挑戰。關于性能優化,我有如下建議:

  1. 一定要有 APM 工具。還要有虛機、DB 等資源的監控工具。有了工具才能將性能狀況透明出來。性能瓶頸在哪里一目了然,否則就是胡亂抓藥。
  2. 性能要全局考慮,不要只考慮某個運算單點的性能。很多時候,性能是相互制約的。
  3. 減少網絡IO的次數,讓單次請求傳輸更多數據。但并不是越多越好,需要找到性能的平衡點。
  4. 數據量太大的話,可以分幾個批次遷移,分批上線。
  5. 變化不大的非交易數據可以提前上線。甚至交易數據也可以考慮提前上線,真正上線時再做增量遷移。這種方式需要額外開發增量遷移程序。
  6. 在高并發的遷移過程中,任何關于性能的參數調整都可能有想不到的影響。要不斷試驗,不能想當然。

成功率及錯誤分析報告

沒有數據遷移經驗的團隊很可能在項目初期遺漏掉這兩部分的開發工作。數據遷移的核心關注點是遷移沒錯,但是業務最關心的是成功率。

這兩種報告要提前設計好。遷移程序的設計和開發要考慮報表的需求來記錄任務成功率和日志。否則等到程序開發完再去思考報告程序的開發,很可能會對原有遷移程序的造成比較大的返工。

這兩份報告要和業務部門澄清,確定錯誤數據如何處理。錯誤數據處理一般分為如下三類:

  1. 數據問題,業務可以改數據。讓業務自行修改。
  2. 數據問題,業務不能直接修改。通知業務數據無法導入,自行備份。
  3. Mapping rule 未考慮的場景。修改 Mapping rule 來適配這些數據。

除了這兩個報告,遷移過程中需要開發很多小工具,比如數據清理、環境狀態檢查工具等等。對這些工具的開發工作量要有預期。

上線演練

上線前如果有條件,一定要使用真實環境和數據進行演練。演練的時間和執行步驟也盡量和上線計劃一致。

上線演練的不能過早進行,否則會造成演練的數據和上線時差異過大,減弱了演練的效果。但演練的時間也不能過晚,否則發現問題沒有時間解決。我的經驗是上線前兩周進行演練。

由于演練的時間點已經比較接近上線時間,除非發現嚴重 bug 才做修改。小問題寧可帶著上線,以后再修數。此時千萬不要輕易修改代碼,因為很可能會引起其它 bug 或者性能問題。

上線失敗方案

雖然你經歷的上線可能從來沒有失敗過,但不要以為這一次也一定會成功。如果出現問題,全部回滾還是部分回滾,都要提前計劃好。先上線后面再補歷史數據是一種方案。直接終止上線,再次開啟老系統也是一種方案。不管什么方案,都需要提前和業務溝通好。因為上線期間的時間十分寶貴。一定避免臨時定方案,這會造成決策困難,甚至無人拍板。

上線

經過數輪測試和演練,終于迎來了上線,關于上線我有如下建議:

  1. 分配好資源。如果晚上通宵上線,不要全部開發都來支持上線。一定留有人手第二天線上支持。
  2. 根據上線計劃,一步步小心執行,確保每個操作至少兩個同事 pair 完成。
  3. 每一步操作完成都要做相應的檢查。
  4. 上線前預測可能出現的異常,準備好處理方案。如果出現預料之外的錯誤也不要驚慌,冷靜思考解決方案。

上線后的支持

我向你保證,遷移進來的數據一定會有各種各樣的問題。一般來說修復數據有如下幾種方式:

  1. SQL 腳本修復。適用于修復問題數據涉及的表,在同一個 DB 中,邏輯也不復雜的情況。
  2. 存儲過程修復。適用于修復問題數據涉及的表,在同一個 DB 中,邏輯比較復雜的情況。存儲過程的優點是不需要發布程序。缺點是不好調試和維護。
  3. 程序修復。修復問題數據需要跨 DB 時,只能通過開發程序來修復。這種場景也是最復雜的。
    無論采用哪種方式,都需要經過充分的測試。數據修復是很危險的操作,一旦程序有問題,可能會把沒問題的數據修壞。此外還要測試修復程序的性能,對執行時長要有預估。最后切記修復前一定要好做數據備份。

總結

美國管理學家 哈羅德·孔茨 曾經說過:雖然計劃不能完全準確地預測將來,但如果沒有計劃,組織地工作往往陷入盲目,或者碰運氣。千萬不要低估數據遷移項目的難度,參考本文內容提前做好規劃,會讓你的數據遷移項目有一個好的開始。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據遷移
    +關注

    關注

    0

    文章

    83

    瀏覽量

    7098
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    大型前端應用如何做系統融合?

    1. 背景介紹 1.1. 業務介紹 A平臺與B平臺同屬于同一系統鏈路上,前者主要致力于為用戶提供注冊入駐服務,后者則專注于提供具體業務操作服務。兩者皆為運營人員所依賴的在線管理工具。 1.2. 現狀
    的頭像 發表于 05-20 14:41 ?121次閱讀
    <b class='flag-5'>大型</b>前端應用<b class='flag-5'>如何做</b><b class='flag-5'>系統</b>融合?

    嵌入式軟件開發中遺留代碼的挑戰

    遺留代碼通常難以集成到其他系統、適配新數據格式或部署到現代平臺及云端托管環境。相關代碼可能已不再提供安全更新和補丁,供應商或開源社區的支持也可能逐漸減少甚至消失。然而,如果使用遺留代碼
    的頭像 發表于 02-26 10:05 ?395次閱讀
    嵌入式軟件開發中<b class='flag-5'>遺留</b>代碼的挑戰

    HarmonyOS Next 應用元服務開發-應用接續動態配置遷移按需遷移頁面

    按需遷移頁面棧,支持應用動態選擇是否進行頁面?;謴停J進行頁面棧信息恢復)。如果應用不想使用系統默認恢復的頁面棧,則可以設置不進行頁面棧遷移,而需要在onWindowStageRestore設置
    發表于 12-26 15:23

    大型建筑用能該如何做到自動計量?

    摘要 建筑能耗系統在實現大型公共建筑能源管理中發揮了關鍵作用。本文基于安科瑞建筑能耗監測系統的解決方案,闡述了其背景、技術標準、系統結構、功能及應用案例,分析了其對建筑節能管理的實際意
    的頭像 發表于 12-24 15:30 ?470次閱讀
    <b class='flag-5'>大型</b>建筑用能該<b class='flag-5'>如何做</b>到自動計量?

    HarmonyOS Next 應用元服務開發-分布式數據對象遷移數據文件資產遷移

    提供了async版本供該場景使用。 當前,wantParams中“sessionId”字段在遷移流程中被系統占用,建議開發者在wantParams中定義其他key值存儲該分布式數據對象生成的id,避免
    發表于 12-24 10:11

    HarmonyOS Next 應用元服務開發-分布式數據對象遷移數據權限與基礎數據

    提供了async版本供該場景使用。 當前,wantParams中“sessionId”字段在遷移流程中被系統占用,建議開發者在wantParams中定義其他key值存儲該分布式數據對象生成的id,避免
    發表于 12-24 09:40

    維諦技術:如何讓貴州醫科大學數據中心遷移0業務影響?

    ——數據中心遷移做到了高效、快捷,甚至“無感”,而且實現了PUE﹤1.25的節能目標。如此順滑的數據中心遷移,出色的PUE水平,貴州醫科大學是如何做
    的頭像 發表于 12-18 15:20 ?462次閱讀
    維諦技術:如何讓貴州醫科大學<b class='flag-5'>數據</b>中心<b class='flag-5'>遷移</b>0業務影響?

    SAR ADC如何做好布線布局?

    SAR ADC如何做好布線布局?
    發表于 12-17 08:27

    MySQL數據遷移的流程介紹

    數據表存儲在同一個數據庫中。當其他業務出現慢 SQL 等異常情況時,可能會直接影響到預約業務,從而降低系統整體的可靠性和穩定性。為了盡可能提高系統的穩定性和
    的頭像 發表于 11-25 09:20 ?507次閱讀
    MySQL<b class='flag-5'>數據</b><b class='flag-5'>遷移</b>的流程介紹

    如何做好芯片質檢?

    做好芯片質檢操作,需要遵循一系列細致而嚴格的步驟,以確保芯片的質量、性能和可靠性符合既定標準。以下是一些關鍵的操作指南: 一、了解芯片質檢的基本內容 芯片質檢通常包括外觀檢查、功能測試、性能測試
    的頭像 發表于 11-23 14:17 ?847次閱讀

    刻蝕工藝評價的工藝參數以及如何做好刻蝕工藝

    在本篇文章中,我們主要介紹刻蝕工藝評價的工藝參數以及如何做好刻蝕工藝。 一、刻蝕工藝質量評價 1)刻蝕速率 刻蝕速率是指在蝕刻過程中被去除的材料的速率,通常以單位時間內的厚度減少量來
    的頭像 發表于 11-15 10:15 ?1859次閱讀
    刻蝕工藝評價的工藝參數以及<b class='flag-5'>如何做好</b>刻蝕工藝

    emc數據遷移工具的使用指南

    在當今快速發展的信息技術領域,數據遷移成為了企業IT戰略中不可或缺的一部分。隨著數據量的激增和業務需求的變化,企業需要將數據從一個存儲系統
    的頭像 發表于 11-01 15:55 ?814次閱讀

    云計算遷移的步驟與注意事項

    評估,確保其能滿足業務需求。 制定遷移計劃 :包括時間表、任務分解、責任分配等,確保遷移過程有條不紊。 備份數據 :使用專業備份軟件或工具,對原有數據進行全面備份,確保
    的頭像 發表于 10-24 09:20 ?1253次閱讀

    運放在采用雙電源供電時,如何做好電源的濾波?

    運放在采用雙電源供電時,該如何做好電源的濾波。一直搞不清如何選擇濾波電容的容值大小,耐壓值和電源電壓的關系。 如下圖中,我采用的是±15V給OPA4170供電,濾波電容采用的是10uF/25V
    發表于 09-12 08:02

    如何做好大功率環形電感選型工作

    電子發燒友網站提供《如何做好大功率環形電感選型工作.docx》資料免費下載
    發表于 07-04 17:08 ?1次下載
    主站蜘蛛池模板: 色在线视频播放 | 午夜一级毛片看看 | 欧美一区二区三区影院 | 亚洲一区二区高清 | 日本一区二区在线免费观看 | 丁香花免费观看视频 | 日韩一级片免费 | aa黄色毛片 | 一品毛片| 国产精品视频网站你懂得 | 真人实干一级毛片aa免费 | 欧美涩色| 日韩免费精品视频 | 国内自拍网红在综合图区 | 十三以下岁女子毛片免费播放 | 欧美一级视频在线观看 | 黄色三级三级三级免费看 | 亚洲最大的成人网 | 中文一区 | 青草青青产国视频在线 | 欧美性天天影院 | 国产精品久久久久久一级毛片 | 流不尽奶水的大乳h | 日本三级三级三级免费看 | 一级毛片一级毛片一级毛片 | 2018天天操夜夜操 | 天堂在线网站 | 国产内地激情精品毛片在线一 | 久久夜色精品国产亚洲噜噜 | 大又大粗又爽又黄少妇毛片 | 午夜精品国产 | 久久久久女人精品毛片九一 | 亚洲综合色在线观看 | 中文字幕天天躁夜夜狠狠综合 | 激情五月激情综合网 | 欧美性一级交视频 | 特黄特色大片免费播放器9 特黄特色大片免费视频播放 | 日日拍夜夜嗷嗷叫狠狠 | 中文字字幕码一二区 | 男人天堂网在线 | 真实国产伦子系 |