🏗 毎日数ペタバイトを取り込む数万件のジョブを、データ提供を一切止めずに丸ごと移行する——。Metaが「シャドウ→逆シャドウ→クリーンアップ」の3段階でレガシーを100%廃止した実戦記です。
タイトル: Migrating Data Ingestion Systems at Meta Scale
URL:
📝 概要
Metaは世界最大級のMySQL展開から、毎日数ペタバイトのソーシャルグラフデータをデータウェアハウスへ増分取り込みしています。本記事は、その数万件の取り込みジョブを、分析・レポーティング・MLの各パイプラインを止めずに、新しいセルフマネージド型サービスへ移行した方法を解説します。
❓ 解決する課題
レガシーは顧客(チーム)所有のパイプラインで、小規模では有効でもハイパースケールで不安定でした。ますます厳しくなるデータ到着時刻の要求を満たしつつ、組織全体へのデータ提供を止めずに移行する必要がありました。
💡 方法論と提案手法
3フェーズのライフサイクルで移行します。
・シャドウ:本番前環境で本番データを消費しつつ隔離テーブルへ書き込み、本番ジョブとの行数・チェックサムの不一致を継続監視します
・逆シャドウ:シャドウジョブを本番テーブルへ昇格させ、元の本番ジョブをシャドウへ。両系統の出力を比較し続けて品質シグナルを得つつ、必要なら即ロールバックします
・クリーンアップ:整合性を確認後、旧ジョブを廃止します
・各ジョブを、差異ゼロ・ランディング遅延・リソース・カスタム基準の4軸で検証し、CDC(変更データキャプチャ)でフルダンプ・デルタ・ターゲットの各テーブルを保持します
🎯 ユースケース
大規模なデータ取り込み基盤の移行、CDCパイプラインの段階的な切り替え、ゼロダウンタイムでのシステム置換の設計に役立ちます。
📊 実績
・ワークロードの100%を移行し、レガシーシステムを完全に廃止しました
・ジョブの状態シグナルをScubaへ継続送信し、各ジョブを監視してステージ間で自動昇格/降格する移行ツールで、数千件の同時移行を管理しました
・不良パーティションをメタデータでフラグし、下流ジョブへの伝播を防いでアラートを発火させました
・移行容量の制約に対し、旧システムが配信したスナップショットを初期値に再利用してフルダンプ負荷を削減し、生まれたデータ品質解析ツールは移行後もリリース検証で使われ続けています
#
DataEngineering# #
DataInfrastructure#