- Published on
CDC とデータ統合 2026 完全ガイド — Debezium 3 · Estuary · Flink CDC · Airbyte · Fivetran · Sling · Hightouch · Census · Sequin 徹底比較
- Authors

- Name
- Youngju Kim
- @fjvbn20031
プロローグ — 「うちのデータ、結局どこで合流するの?」
2026 年、あるデータプラットフォームチームの会議。
PM: 「新モデルの学習用に決済データをリアルタイムで欲しい。」 DBA: 「またですか? 先週レコメンドチームも同じこと言ってましたよ。」 プラットフォーム: 「Debezium にトピック一つ追加すればいい。」 DBA: 「replication slot は既に 5 個開いてて、lag が 30 分です。」
この短いやり取りに、2026 年のデータ統合のすべてが詰まっている。OLTP は真実の源泉だが、分析・AI・SaaS はその真実を別の形で欲しがる。その間を埋めるのが CDC (Change Data Capture) とデータ統合だ。
この領域はここ 5 年で爆発的に成熟した。一方には Debezium・Flink CDC のような OSS 陣営があり、もう一方には Fivetran・Airbyte・Estuary のようなマネージド SaaS がある。そしてその上に Hightouch・Census のような reverse ETL が載り、Sling・Sequin のような軽量ツールが隙間を埋める。
この記事はその全体地図を整理する。Debezium 3.0 の変化、Estuary Flow のマネージドな野心、Flink CDC がいかに ELT ツールへ進化したか、Airbyte と Fivetran の本質的な違い、Postgres logical replication や MongoDB Change Streams といった DB ネイティブの仕組み、outbox パターン、そして reverse ETL がなぜ別カテゴリになったか、までを扱う。
第 1 章 · CDC 基礎 — ログ vs トリガー vs ポーリング
CDC とは「DB の変更を検知してどこかへ流す」行為全般だ。実装方式は 3 種類しかない。
| 方式 | 仕組み | 長所 | 短所 |
|---|---|---|---|
| Polling | SELECT ... WHERE updated_at > ? | 最も単純 | レイテンシ大、削除を捉えられない、DB 負荷 |
| Trigger | DB トリガー → 別テーブルへ記録 | どんな DB でも動く | トランザクション性能を犠牲 |
| Log-based | WAL / binlog / redo を直接読む | ほぼゼロオーバーヘッド | DB 権限・複雑度 |
2026 年の本格的な CDC はほぼすべて log-based だ。MySQL は binlog、Postgres は WAL (Write-Ahead Log) + logical replication、MongoDB は oplog / Change Streams、SQL Server は CDC テーブル、Oracle は redo log を LogMiner や XStream で読む。
ポーリングは小規模システムでは今でも有効。トリガーは他に手段が無く、変更頻度が極めて低い場合の最終手段だ。
もう一つの軸は snapshot + incremental。CDC を始めた瞬間に既にテーブルに 1 億行ある場合、それを全部読んでから (snapshot)、その時点以降の変更を追う (incremental) 必要がある。Debezium は incremental snapshot、Flink CDC は parallel snapshot で解いた。
第 2 章 · なぜ今 CDC なのか — 4 つのユースケース
なぜ CDC が突然必須インフラになったのか。4 つのユースケースが同時に爆発したからだ。
- リアルタイム分析 / Operational analytics — 売上ダッシュボードを 5 分レイテンシで vs 24 時間バッチで。
- マイクロサービス統合 — サービス A の DB 変更をサービス B が知る必要があるが、直接 API 呼び出しは結合度が高すぎる。イベント発行で分離。
- 監査 / Audit / コンプライアンス — 誰がいつ何を変えたかを immutable log として保管。
- AI 学習データ / Feature store sync — モデルの学習データセット、ベクトルストア、レコメンド feature を OLTP と同期。
特に 4 番が 2024 〜 2026 年に爆増した。モデルはより頻繁に学習され、RAG システムは鮮度 SLA を要求する。「昨日追加された文書が今日の検索に出てこない」はもはや許されない。
これら 4 つに共通するのは、OLTP に余計な負荷を掛けずに変更を伝搬する必要があるという制約だ。だから log-based CDC が勝った。
第 3 章 · Debezium 3.0 (Red Hat, Apache 2.0) — Kafka Connect の王
Debezium は事実上 OSS CDC の標準だ。Red Hat がスポンサーし、Apache 2.0 ライセンス。2025 年初に Debezium 3.0 がリリースされ、2026 年現在 3.x ラインが活発に更新されている。
対応 DB:
- MySQL, MariaDB
- PostgreSQL (logical replication, pgoutput / decoderbufs / wal2json)
- MongoDB (Change Streams, レプリカセット必須)
- SQL Server (native CDC)
- Oracle (LogMiner)
- IBM Db2
- Apache Cassandra
- Vitess
- Spanner (preview)
伝統的には Debezium は Kafka Connect 上で動く。JSON / Avro / Protobuf にシリアライズして Kafka トピックへ投げる。メッセージキーは PK、値は before / after / source / op の構造だ。
{
"before": { "id": 42, "email": "a@x.com" },
"after": { "id": 42, "email": "b@x.com" },
"op": "u",
"source": { "db": "shop", "table": "users", "lsn": 12345 },
"ts_ms": 1731700000000
}
3.0 の主な変更:
- Kafka 3.x / 4.0 互換 — share groups まで活用可能
- Java 17+ 必須
- Schema history 改善 — トピック以外の外部ストレージにも保存可能
- Incremental snapshot の安定化 — 運用中に新テーブル追加が無停止
- Debezium UI — 独立した管理コンソール
長所: 実績ある安定性、大きなコミュニティ、主要 DB を全部カバー。 短所: Kafka Connect の運用負荷、JVM 依存、メモリが重い。
第 4 章 · Debezium Server / Engine — 組み込みモード
すべてのチームが Kafka Connect を立てる余裕があるわけではない。Debezium は 2 つの軽量モードを提供する。
Debezium Server — スタンドアロンで動くコンテナ。Kafka 以外の sink へ直接送れる。
- Kinesis, Pub/Sub, Pulsar
- EventHubs, Event Grid
- HTTP, NATS, Redis Streams
- ファイル, S3
debezium:
sink:
type: pubsub
pubsub:
project.id: my-project
source:
connector.class: io.debezium.connector.postgresql.PostgresConnector
database.hostname: pg.internal
database.dbname: shop
plugin.name: pgoutput
slot.name: debezium
publication.name: debezium_pub
topic.prefix: shop
Debezium Engine — Java ライブラリとしてアプリに組み込み、自分のアプリ内で直接 CDC イベントを受け取る。トラフィックが少なく単一ノードのユースケースに向く。HA は無い。
2026 年、Debezium Server は「Kafka 無し Debezium」のスローガンで人気を集めている。NATS JetStream や Redis Streams との組合せが特に速い。
第 5 章 · Estuary Flow — マネージド CDC SaaS
Estuary Flow は 2020 年創業のマネージド CDC + 統合プラットフォーム。2024 〜 2025 年に急成長し、Fivetran の有力代替として定着した。
特徴:
- リアルタイム CDC — 平均レイテンシ 100ms 以内を謳う
- 毎秒数百万行 の事例 — 巨大ワークロードに対応
- Source 200+ / Destination 100+ で急速に増加
- オープンソースコア (Flow は Apache 2.0) + マネージドホスティング
- Materializations — 単純コピーではなく、sink 側で継続更新される materialized view 概念
価格は GB 処理量ベース。Fivetran の MAR (Monthly Active Rows) より予測しやすい。
# flow.yaml
captures:
shop/postgres:
endpoint:
connector:
image: ghcr.io/estuary/source-postgres:dev
config:
address: pg.internal:5432
database: shop
user: estuary
bindings:
- resource:
stream: public.users
mode: Normal
target: shop/users
materializations:
shop/snowflake:
endpoint:
connector:
image: ghcr.io/estuary/materialize-snowflake:dev
config:
account: xy12345.us-east-1
database: ANALYTICS
warehouse: COMPUTE_WH
bindings:
- source: shop/users
resource: { table: USERS }
長所: 本物のリアルタイム、予測可能な価格、OSS コア。 短所: 新興、エコシステムはまだ Airbyte より小さい。
第 6 章 · Apache Flink CDC 3.x — Flink 上の ELT
Flink CDC (旧 Ververica CDC connectors) は 2024 年に Apache インキュベーションを経て、Flink CDC 3.0 から 完全な ELT パイプラインツール へ進化した。単なるコネクタではない。
中心概念:
- Source — MySQL, Postgres, MongoDB, Oracle, SQL Server, TiDB, OceanBase
- Sink — Doris, StarRocks, Iceberg, Paimon, Kafka, Elasticsearch
- Pipeline — Source → Transformation → Sink を単一の YAML で定義
- Schema evolution — sink が対応していれば ALTER TABLE を自動伝搬
- Parallel snapshot — 大テーブルを chunk に分けて並列読み込み。1 億行テーブルも 1 時間以内。
# pipeline.yaml
source:
type: mysql
hostname: mysql.internal
username: flinkcdc
password: ${MYSQL_PASS}
tables: shop.\.*
server-id: 5400-5404
sink:
type: paimon
catalog.properties.metastore: filesystem
catalog.properties.warehouse: s3://lake/paimon
route:
- source-table: shop.\.*
sink-table: ods_shop.<>
pipeline:
name: shop-to-paimon
parallelism: 8
Flink CDC が魅力的なのは lakehouse 連携 だ。Iceberg や Paimon に流し込めば Trino / Spark / Doris がそのままクエリできる。Trino + Iceberg + Flink CDC は 2026 年のモダンデータスタック人気構成。
第 7 章 · Airbyte 1.x (Y Combinator W20) — OSS ELT 標準
Airbyte は YC W20 出身、2024 年に 1.0 に達し、2026 年現在 1.x 後半。OSS ELT の標準になった。
特徴:
- 350+ コネクタ — ほぼあらゆる SaaS と DB
- オープンソース (MIT / ELv2 混在) + Cloud マネージド
- Airbyte Protocol — 誰でも標準インターフェースで新コネクタを作れる
- CDK — Python / Java でカスタムコネクタ、low-code CDK もあり
- Embedded — 自社製品の中に Airbyte を組み込むオプション
CDC 対応: MySQL, Postgres, MongoDB, SQL Server など。内部的に Debezium を使う (以前は Debezium Embedded、現在は Airbyte 独自実装と Debezium の併用)。
長所: 圧倒的なコネクタ数、OSS、セルフホスト可能。 短所: リアルタイム CDC は弱い (バッチ / マイクロバッチ志向)、運用は軽くない。
2024 年にはマネージド価格の議論があり、2025 年に価格モデルが再整理された。セルフホストが依然として魅力的な理由。
第 8 章 · Fivetran — マネージド ELT の王座
Fivetran はマネージド ELT の代名詞だ。クローズドソースで価格は高い悪名だが、「ただ動く」という運用安定性で企業市場を支配した。
特徴:
- 600+ コネクタ — Salesforce, Hubspot, Stripe, Zendesk, NetSuite, Workday などほぼ全 SaaS
- MAR ベース価格 — Monthly Active Rows。一度でも変更された行をカウント。予測不能と批判が多い
- HVR 買収 — エンタープライズ CDC (Oracle, SAP HANA) を強化
- dbt 連携 — Transformations 機能
- Hubspot 連携 — マーケティングデータ領域に強い
2025 〜 2026 年のトレンド: 大企業は依然 Fivetran を使う。スタートアップやデータエンジニアリングチームは Airbyte / Estuary / Sling へ移行中。
第 9 章 · Stitch (Talend → Qlik) / Hevo / Meltano — その他 ELT
Stitch (Singer ベース、Talend が買収 → Qlik が Talend を買収) は 2025 年に EOL が発表され、ユーザは Airbyte / Fivetran / Estuary へ移行した。Singer プロトコルは OSS として生き残っている。
Hevo Data — インド発 ELT。150+ コネクタ、競争力ある価格。インド・東南アジアで強い。
Meltano — GitLab からスピンアウトした OSS ELT。Singer ベース。CLI 中心で dbt との結合度が高い。「ELT をコードで」の哲学が強いチームに人気。
Rivery — イスラエル発、ELT + ワークフロー結合。小規模だが熱心なユーザがいる。
これらの共通点: SaaS コネクタの幅が本業で、CDC は副次的。
第 10 章 · Sling CLI — 高速ローカル・CLI 統合
Sling は単一バイナリ CLI でデータを動かすツール。Go で書かれており非常に速く、データエンジニアがその場で書ける。
# Postgres → Snowflake
sling run \
--src-conn POSTGRES \
--src-stream "public.users" \
--tgt-conn SNOWFLAKE \
--tgt-object "ANALYTICS.PUBLIC.USERS" \
--mode full-refresh
特徴:
- 100+ DB / クラウドストレージ対応
- YAML でパイプライン定義 (
replication.yaml) - Sling Cloud (マネージド) + OSS CLI
- CDC は incremental モードで対応 (binlog ベースの本格 CDC ではない)
長所: 圧倒的に速い、シンプル、セルフホストが自然。 短所: 本格 CDC は無い、dbt のような変換は別。
「この DB からあの DB へ毎日 1 回」というユースケースを CI/CD で回すのに圧倒的。
第 11 章 · Sequin — Postgres → どこへでも
Sequin は Postgres CDC に特化した OSS ツール。コアメッセージは「Postgres を Kafka のように使え」。
- Postgres logical replication を読む
- Sink: Kafka, Webhook (HTTP POST), Redis Streams, SQS, GCP Pub/Sub, NATS
- Elixir で書かれている (BEAM VM の並行性)
- マネージド + セルフホストの両方
# sequin.yaml
streams:
- name: orders_stream
source:
type: postgres
database: orders
tables: ["public.orders", "public.order_items"]
consumers:
- name: webhook_to_shipping
type: http_push
endpoint: https://shipping.internal/webhook
max_ack_pending: 100
- name: kafka_to_warehouse
type: kafka
topic: orders-cdc
bootstrap_servers: kafka.internal:9092
Sequin は「Debezium は重すぎる、Postgres 一つだけなのに Kafka まで立てたくない」というチームに強い。2024 〜 2025 年に急成長した。
第 12 章 · Striim / Qlik Replicate / Oracle GoldenGate — エンタープライズ
エンタープライズには別の市場がある。
Striim — エンタープライズストリーミング統合。SAP, Oracle, SQL Server, メインフレームまでカバー。価格は高いが大企業の標準。
Qlik Replicate (旧 Attunity) — Qlik が 2019 年に Attunity を買収。Oracle, SQL Server, SAP HANA, Db2 をほぼ網羅。金融業界でよく見る。
Oracle GoldenGate — Oracle CDC の標準。Oracle 同士のレプリケーションが本業だが heterogeneous も対応。価格は容赦ない。
IBM InfoSphere Data Replication (CDC) — メインフレーム + Db2 環境。
SAP Data Services / SAP SLT — SAP システム統合専用。
スタートアップではほぼ見ないが、金融・通信・政府では依然標準だ。
第 13 章 · AWS DMS · GCP Datastream · Azure Data Factory — クラウドネイティブ
3 大クラウドすべてがマネージド CDC を提供する。
AWS DMS (Database Migration Service) — Oracle / SQL Server / MySQL / Postgres → RDS / Aurora / Redshift / S3 への移行 + 継続 CDC。名前は「マイグレーション」だが実際は CDC として使うケースが多い。2024 年に Serverless DMS が GA。
AWS DMS + Kinesis Data Streams + Lambda — DMS が Kinesis に変更イベントを投げ、Lambda が処理するパターン。
GCP Datastream — Oracle / MySQL / Postgres / SQL Server → BigQuery / Cloud Storage。BigQuery へのリアルタイム CDC が本業。コンソールで一発。
GCP Datastream + Dataflow — データを Dataflow (Flink / Beam) で加工してから BigQuery に着地。
Azure Data Factory + Synapse Link — Synapse Link for SQL / Dataverse / Cosmos DB は OLTP → analytics をワンクリックで繋ぐ。Synapse Link for Cosmos DB は NoSQL と分析をミラーする。
Azure Database Migration Service — Azure 版 DMS。
長所: 自分のクラウドにきれいに統合される、コンソールクリックで完了。 短所: マルチクラウド / オンプレが混ざると限界がすぐに来る。
第 14 章 · Postgres logical replication · MySQL binlog · MongoDB Change Streams
CDC の根本は DB が提供する機能だ。この 3 つは押さえておくべき。
Postgres logical replication:
wal_level = logicalが必要max_replication_slots,max_wal_sendersの調整- Publication / Subscription モデル
pgoutput(built-in),wal2json,decoderbufs(Debezium プラグイン)- Logical slot は 進めないとディスクを食い尽くす。正常運用ではコンシューマが LSN を進めなければならない
ALTER SYSTEM SET wal_level = logical;
SELECT pg_create_logical_replication_slot('debezium', 'pgoutput');
CREATE PUBLICATION dbz_pub FOR ALL TABLES;
罠: pg_repack, VACUUM FULL, 一部の ALTER TABLE は logical replication と衝突する。本番で行が流れなくなったら、ほぼ slot の詰まりだ。
MySQL binlog:
log_bin = ON,binlog_format = ROWgtid_mode = ONを強く推奨 (フェイルオーバが容易になる)expire_logs_daysが短すぎるとコンシューマが追い付けず欠損
MongoDB Change Streams:
- レプリカセット必須。スタンドアロンでは使えない
db.collection.watch()でサブスクライブ- Resume token でクラッシュ後の再開
第 15 章 · Reverse ETL — Hightouch · Census · Polytomic · Grouparoo
伝統的な ETL が SaaS / DB → ウェアハウスなら、reverse ETL はウェアハウス → SaaS だ。「データチームが作ったモデル結果を営業 / マーケティングツールに戻したい」という要求が爆発し、別カテゴリになった。
Hightouch — リーダー。Snowflake / BigQuery / Databricks / Redshift → Salesforce / Hubspot / Iterable / Segment / 広告ツール。SQL で audience を定義、sync mode 多彩 (upsert, mirror, update only)。
Census — Hightouch の最も強い対抗馬。似たポジショニング、価格・可観測性・監査で差別化。
Polytomic — より新興。AI / ML モデル出力の sync を強調。
Grouparoo — OSS reverse ETL だったが 2022 年に Airbyte に買収され、事実上 EOL。Airbyte が reverse ETL を吸収する試みだったが、市場は別カテゴリとして定着した。
Workato — より広い iPaaS。reverse ETL も含むが RPA / ワークフロー自動化が本業。
2026 年の reverse ETL の大きな変化: AI レコメンド結果を運用ツールへ push することが主要ユースケースになった。モデルが作る lead score, churn risk, NBA (next best action) を Salesforce へ流す。
第 16 章 · dbt + ウェアハウス — Transformation 層
CDC / ELT がデータを動かすなら、dbt はそれを変換する。Modern Data Stack の T。
- dbt Core (OSS, Apache 2.0)
- dbt Cloud (マネージド)
- SQL でモデル定義、jinja templating、自動 lineage
- 対応ウェアハウス: Snowflake, BigQuery, Databricks, Redshift, Postgres, DuckDB, Trino, Athena など
Modern Data Stack 標準フロー:
Source (Postgres, Salesforce, Stripe)
→ CDC/ELT (Airbyte/Fivetran/Estuary/Debezium)
→ Warehouse (Snowflake/BigQuery/Databricks)
→ Transform (dbt)
→ BI (Looker/Mode/Hex)
→ Reverse ETL (Hightouch/Census) → SaaS
2024 年 dbt Labs は SDF Labs を買収して SQL コンパイラを強化、2025 〜 2026 年には dbt Core 上に Fusion エンジンを載せると発表した。
第 17 章 · パイプラインオーケストレーション — Airflow · Dagster · Prefect · Mage · Kestra
CDC 自体はストリームだが、それを受けて dbt を回し ML 学習をトリガーするのはバッチ / スケジュール仕事だ。オーケストレータが必要。
Apache Airflow — 事実上の標準。2024 年に Airflow 3.0 が大規模リファクタとともに登場。UI 改善、scheduler 分離、より優れた dynamic DAG。
Dagster — Software-defined assets という概念。データ資産を一級市民として扱う。モダンなデータチームで急成長。
Prefect — Python first, dynamic workflow, 軽量。
Mage — UI 中心の ETL。非開発者でもアクセス可能。
Kestra — YAML ベースオーケストレーション。データパイプライン + 一般自動化。
2026 年の流れ: Dagster が Airflow のデータエンジニアリング市場を浸食中。Airflow は依然最大の導入実績だが、新規プロジェクトは Dagster を選ぶ割合が増えた。
第 18 章 · Schema Registry — Confluent · Karapace · Apicurio
CDC イベントはスキーマが進化する。Avro / Protobuf / JSON Schema をどこかで管理する必要がある。
Confluent Schema Registry — Kafka 標準。ライセンスは Confluent Community License で「偽 OSS」という批判もある。
Karapace — Aiven が作った Apache 2.0 互換 Schema Registry。Confluent の真の OSS 代替。
Apicurio Registry — Red Hat 製。Apache 2.0。スキーマだけでなく OpenAPI / AsyncAPI も管理。
互換性ポリシー (Confluent 規約):
BACKWARD— 新スキーマが古いデータを読めることFORWARD— 古いスキーマが新データを読めることFULL— 双方向NONE— チェック無し (危険)
CDC 運用でよくある事故: 誰かが DB カラムを drop し、schema registry が BACKWARD で、下流が壊れる。
第 19 章 · CDC パターン — Outbox · Transactional Outbox · Saga
CDC をマイクロサービス統合として使う際に最も一般的なパターン。
Outbox パターン: ドメイン DB に「outbox」テーブルを置き、ビジネストランザクションと同一トランザクションでイベントを outbox に INSERT する。CDC がその outbox テーブルを読みメッセージブローカに送る。at-least-once 配信が保証されるのが要点。
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
INSERT INTO outbox (aggregate_id, event_type, payload)
VALUES (1, 'AccountDebited', '{"amount":100}');
COMMIT;
CDC は outbox テーブルの変更だけを追跡し、Kafka に転送する。Debezium には outbox event router が組み込まれている。
Transactional Outbox — 同じ概念。Eventuate.io のようなライブラリ。
Saga パターン — 分散トランザクションの代替。一連のローカルトランザクション + 補償トランザクション。CDC で saga ステップ間通信。
Change feed — DocumentDB, Cosmos DB, DynamoDB のネイティブ change stream。同じ概念の別名。
Dual write アンチパターン — DB に書いた後 Kafka にも直接書くコード。どちらかが失敗しうる。絶対に避けるべき。outbox パターンが答え。
第 20 章 · 信頼性 — Exactly-once · Ordering · Schema Evolution
CDC を本番で運用するといずれ突き当たる 3 つ。
Exactly-once semantics:
- Debezium は基本 at-least-once だ。重複が発生しうる。
- Kafka transactions (Kafka 3.x) + idempotent consumer で実用的 exactly-once は達成可能
- Flink は checkpoint + 2PC で exactly-once を標準サポート
Ordering guarantees:
- 同じ PK のイベントは同じパーティションに行く必要 → producer がキーを PK にする
- 異なる PK 間の順序は保証されない
- Postgres logical replication は単一 publication 内では commit 順序を保証
Schema evolution:
- Avro + Confluent Schema Registry + BACKWARD compatibility が標準
- カラム追加: 安全
- カラム削除: 下流影響、段階的 deprecate
- カラム型変更: 最も危険、新カラム + マイグレーション
第 21 章 · CDC for AI — Feature store / Vector store sync
2024 〜 2026 年の最大のユースケース変化は AI 学習 / 推論データの鮮度 だ。
Feature store sync — Tecton, Feast, Hopsworks のような feature store は OLTP / イベントと同期する必要がある。リアルタイム feature (例: 直近 1 時間の売上) は CDC + Flink / Kafka Streams で計算。
Vector store sync — RAG システムの source of truth が OLTP にある場合、Pinecone / Weaviate / pgvector をどう更新するか。CDC → embedding pipeline → vector store が標準アーキテクチャ。
LLM 学習データ freshness SLA — 「昨日追加された文書は今日の検索に出るべき」という SLA。CDC が基盤。
ML モデル学習 — バッチ CDC dump を S3 に送り、Spark / Ray で学習。
この領域は 2026 年の fastest growing。Estuary, Sequin, Striim 等が皆 「AI」 で売り込んでいる。
第 22 章 · 韓国事例 — Coupang / Kakao / Naver / Woowa Brothers
Coupang — Kafka + Debezium の組み合わせがよく知られた事例。注文 / 在庫変更を Kafka へ流し、多くのマイクロサービスが購読。
Kakao — 技術ブログに Debezium + Kafka Connect の運用事例多数。Kakao Bank / Kakao Pay は厳密な CDC 運用。
Naver — 自社データプラットフォームに binlog ベース CDC を多用。NCloud のデータ統合サービスもある。
Woowa Brothers (Baemin) — Debezium 導入記と運用ノウハウの技術ブログが多い。
NCsoft / Nexon — ゲームログ / セーブデータ CDC。Kafka + 自社ツール。
Toss — Toss 技術ブログに散発的に CDC 記事。Postgres logical replication + 自社コンシューマ。
共通点: 多くは Debezium + Kafka を自社運用し、Fivetran のようなマネージドはグローバル SaaS のローカル支社で主に使われる。
第 23 章 · 日本事例 — Mercari · LINE · Cookpad · ZOZO
Mercari — ML プラットフォームで CDC が中核。Tech blog に Debezium + GCP Pub/Sub 事例。
LINE (LY Corporation、ヤフー統合後) — データエンジニアリングブログに Kafka + Debezium + Hadoop / Trino lakehouse 事例多数。PrivateMode CDC 運用が非常に大規模。
Cookpad — レシピデータ + ユーザログ CDC。Aurora + DMS + Redshift の組合せ。
ZOZO — ファッション EC。Snowflake への CDC で Fivetran / 自社ツールを併用。
CyberAgent — 広告 / ゲーム / メディア事業多様。Kafka + Debezium が社内標準。
Recruit / Indeed — データプラットフォームに自社 CDC インフラ。
日本は Snowflake / Databricks 導入が加速中で、それに伴い Airbyte / Fivetran の比重が高まっている。
第 24 章 · 意思決定 — どれを選ぶか
チェックリスト:
- DB 一つ、リアルタイム不要 → Sling CLI + cron / dbt
- Postgres 一つ、リアルタイム必要 → Sequin または Debezium Server
- 複数 DB + Kafka が既にある → Debezium + Kafka Connect
- Flink が既にある or 一括導入 → Flink CDC 3.x + Iceberg / Paimon
- SaaS コネクタ大量必要、予算 OK → Fivetran
- SaaS コネクタ大量必要、予算厳しい → Airbyte (セルフホスト / Cloud)
- マネージド + 真のリアルタイム + 価格予測可能 → Estuary Flow
- OLTP の真実を SaaS へ push → Hightouch / Census (reverse ETL)
- AWS だけ → AWS DMS + Kinesis
- GCP だけ、BigQuery → GCP Datastream
- エンタープライズ Oracle / SAP → Striim / Qlik Replicate / GoldenGate
避けるべきアンチパターン:
- Dual write — DB と Kafka に直接両方書くコード。絶対禁止。outbox パターンを使え。
- ポーリングで分単位 lag — 運用 DB に圧迫。log-based へ移行。
- MAR 爆発 — Fivetran 請求書を見て驚く前に価格モデルをシミュレートせよ。
- Schema BACKWARD 無視 — カラム drop 一発で全下流ダウン。
第 25 章 · 運用知見 — よく遭遇する問題
Postgres logical slot が減らない:
SELECT slot_name, active, restart_lsn, confirmed_flush_lsn,
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS retained_wal
FROM pg_replication_slots;
retained_wal が GB に達するならコンシューマが lag しているか死んでいる。対応:
- コンシューマを再起動
- 駄目なら slot を削除し再作成 + 初回 snapshot をやり直し
Kafka トピック rebalance が 5 分かかる: KIP-848 (next-gen consumer rebalance) 有効化、Static membership (group.instance.id) 設定。
Debezium が最初に lag 爆発: snapshot 中。incremental.snapshot.chunk.size と snapshot.fetch.size を調整。Flink CDC は parallel snapshot でこの問題が少ない。
MySQL binlog が早く expire → コンシューマ lag 時にデータ欠損。binlog_expire_logs_seconds を伸ばすか、S3 アーカイブを追加。
Snowflake コスト爆発 — CDC が micro-batch で入り small file が爆発。compaction 周期と warehouse サイズを調整。dbt incremental model で整理。
エピローグ — データは運ぶものではなく約束だ
2026 年の CDC とデータ統合は結局 契約 (contract) に収束する。Schema 進化、ordering、exactly-once、freshness SLA — これらすべてが producer と consumer の間の契約だ。
ツールは豊富にある。Debezium も良い。Estuary も良い。Flink CDC も良い。Airbyte も良い。だが、間違ったツールをうまく運用するより、正しいツールをうまく扱えないことの方が、よくある失敗だ。
問う順序が重要:
- このデータのオーナーは誰か? — source of truth はどこ
- 誰がどれだけ速く必要か? — freshness SLA
- 再処理可能か? — 保持期間、replay コスト
- schema はどう進化するか? — 契約変更を誰が承認するか
- 障害をどう検知・復旧するか? — observability, lag 監視
この 5 つに答えを持つチームはどのツールでもうまくいく。答えを持たないチームは Fivetran の請求書を見て初めてデータガバナンスを始める。
CDC はインフラではない。データ契約の表現だ。そう扱おう。
参考 / References
- Debezium 公式ドキュメント
- Debezium 3.0 Release Notes
- Debezium Server ガイド
- Estuary Flow Docs
- Apache Flink CDC
- Flink CDC 3.x Documentation
- Airbyte Documentation
- Airbyte Protocol Spec
- Fivetran Docs
- Sling Documentation
- Sequin Docs
- Meltano Hub
- Striim Platform
- Qlik Replicate
- Oracle GoldenGate
- AWS DMS Documentation
- GCP Datastream
- Azure Data Factory CDC
- Hightouch Documentation
- Census Documentation
- dbt Documentation
- Apache Airflow
- Dagster Docs
- Confluent Schema Registry
- Karapace OSS Schema Registry
- Apicurio Registry
- Postgres Logical Replication
- MongoDB Change Streams
- Outbox Pattern (microservices.io)
- Mercari Engineering Blog