【しーでぃーしー】
CDC(変更データキャプチャ) とは?
最終更新:
💡 データベースの変わった分を捉え、ほかの処理へつなぐ仕組み
データベースの追加・更新・削除などの変更を取得し、ほかの処理やシステムへの連携に使う技術。反映の遅延や取得できる変更の範囲は、方式や設定による。
📌 このページのポイント
CDCは何をするの?
対象のテーブルで追加・更新・削除されたデータを取得するよ。たとえば注文の変更を分析へ連携するために使える。取得する処理と、宛先へ反映する処理は分かれる場合があり、即座の反映を保証するものではないんだ。
最初から変更だけ送ればよい?
宛先に既存データが必要なら、最初のコピーも考えるよ。DebeziumのPostgreSQLコネクターは、初期スナップショットの後で変更を継続取得する。対象や方式によっては全件取得の負担を減らせるけれど、常に低負荷という保証ではないんだ。
どうやって変更を見つけるの?
ETLとは何が違うの?
使うときに注意することは?
取得の遅れとログなどの保持期間、列の追加や型変更、宛先での反映を確認しよう。保持範囲を超えると変更を取得できない場合がある。Debeziumでは障害からの復旧時に同じイベントが再送されることもあるので、重複しても正しく処理できる設計が必要だよ。
まとめ:ざっくりこれだけ覚えればOK!
「CDC」って出てきたら「DBの変更を拾い、ほかの処理へ連携する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Change Data Capture」 = 変更データキャプチャ
💬 Change(変更)+Data(データ)+Capture(捕まえる)で「変わったデータだけを捕まえる」っていう、そのままの名前だよ