データ統合・連携

CDC(変更データキャプチャ) しーでぃーしー

CDC変更データキャプチャリアルタイム同期Debeziumバイナリログストリーミング
CDCって何のためにあるの?バッチ処理と何が違うの?

簡単に言うとこんな感じ!

CDCは「DBに変更があったら即座にその変更だけを他のシステムに届ける」仕組みだよ!バッチが「夜中に全データをコピーする」のに対し、CDCは「更新があった分だけリアルタイムで同期する」から、常に最新データが他のシステムにも反映されるんだ。


CDC(変更データキャプチャ)とは

CDC(Change Data Capture:変更データキャプチャ) とは、データベースINSERT・UPDATE・DELETE の変更を検出して、他のシステムにリアルタイムで伝播させるデータ統合技術です。

従来のバッチ処理(夜間に全データを一括同期)に代わり、CDCによりデータウェアハウス・検索エンジン・キャッシュへのリアルタイム同期が実現します。


CDCの仕組み

バイナリログ(BinLog)方式

最も一般的な実装。MySQLのbinlog・PostgreSQLのWAL(Write-Ahead Log)など、DBが内部で保持する更新ログを読み取って変更を検出します。

アプリケーション
    ↓ INSERT/UPDATE/DELETE
プライマリDB(MySQL/PostgreSQL)
    ↓ バイナリログ/WAL
CDC エンジン(Debezium等)
    ↓ メッセージストリーム(Kafka等)
各下流システム(DWH・Elasticsearch・Redis等)

主なCDCツール

ツール開発元特徴
DebeziumRed Hatオープンソース、Kafka統合
AWS DMSAWSマネージドDB移行・CDC
Kafka ConnectConfluentKafkaエコシステムと統合
AirbyteAirbyte Inc.ローコードのデータパイプライン

歴史と背景


関連用語