![]()
作者 | Renato Losio
譯者 | 明知山
Meta 的工程團隊最近介紹了 Meta 如何 對一個數據攝取平臺進行遷移,以提高可靠性和運營效率,該平臺每天傳輸數 PB 量級的 MySQL 社交圖譜數據。團隊使用了反向影子和持續校驗和監控等技術,確保在遷移過程中實現零停機。
Meta 運營著 全球最大的 MySQL 集群之一,其數據攝取平臺為數據分析、報表生成、機器學習和內部產品開發工作負載提供支撐。Meta 最近進行了架構重構,用集中式、自管理的數據倉庫服務取代了由各個業務團隊獨立維護的數據流轉管道。
通過這次遷移,Meta 用集中式托管系統替代了分散的、由各管道各自運維的基礎設施,通過分階段遷移、自動化驗證、回滾控制和兼容層,在不中斷下游分析和機器學習工作負載的情況下,完成了數千條數據攝取管道的遷移。
在超大規模分布式系統部署場景下,Meta 將數據攝取作業的遷移劃分為三個階段:影子階段,使用生產數據對新系統進行驗證;反向影子階段,將生產權限切換至新系統并保留回滾能力;清理階段,待一致性與性能檢測通過后,下線原有數據管道。Meta 軟件工程師 Zihao Tao 及其工程團隊成員解釋道:
我們持續監控生產作業與影子作業之間的行數及校驗和異常。一旦出現數據不匹配,我們會快速排查原因,將修復方案部署至預生產環境,再驗證問題是否已解決。與此同時,我們還會統計影子作業的計算與存儲資源占用,確保生產環境在繼續推進前資源充足。
![]()
來源:Meta 工程博客
在完成整個數據攝取工作負載的遷移并淘汰舊系統后,團隊總結了這次大規模基礎設施轉型過程中遇到的挑戰:
要實現無縫遷移,我們必須高效跟蹤數千項作業的全遷移周期,并搭建可靠的發布與回滾機制,應對遷移過程中可能出現的各種問題。
每個遷移作業在上線前都必須經過嚴格的正確性和性能檢查,比較新舊系統之間的行數和校驗和,監控延遲和資源使用是否出現退化,并對依賴方使用的關鍵表增加額外的規范。團隊解釋道:
我們的舊系統和新數據攝取系統都使用變更數據捕獲(CDC)來將增量數據攝取到目標表。每個數據攝取作業都有自己的內部表用于源數據庫的全量轉儲,一張用于捕獲源數據庫變更的內部表和數據消費方使用的目標表。作業相關的所有實體信息,包括表名與表結構,都由集中管理服務統一存儲和維護。
![]()
來源:Meta 工程博客
Syed Moeen Kazmi 評論 道:
以 Meta 的業務體量來看,數據攝取遷移并非簡單的系統升級,而是對核心業務進行的高難度改造。挑戰不只在于數據遷移本身,更要保障數據一致性、實現零停機。
由于 CDC 架構需要依靠成本較高的全量快照完成初始加載與故障修復恢復,Meta 將非必要影子作業的創建延后至數據質量問題解決完畢。這避免了重復執行大規模全量轉儲,大幅提升了遷移效率。團隊還在遷移初期復用舊系統的快照分區,以此降低基礎設施的運行負載。
查看英文原文:
https://www.infoq.com/news/2026/05/meta-cdc-migration/
聲明:本文由 InfoQ 翻譯,未經許可禁止轉載。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.