【かふかこねくと】

Kafka Connect とは?

💡 Kafkaと外の世界をつなぐ、コード不要のコンセント
📌 このページのポイント
Kafka Connect:SourceコネクタとSinkコネクタ MySQL / Postgres SaaS / REST API Source Connector 外部→Kafka (例: Debezium) Kafka Topic A Topic B Topic C Sink Connector Kafka→外部 (例: S3 Sink) S3 ES 設定はJSON/REST APIのみ——コード不要 数百種類のコネクタがOSSで提供されている
Kafka ConnectはSourceとSinkの2種類のコネクタでKafkaと外部システムをつなぐ
ひよこ ひよこ

Kafka ConnectってKafkaの仲間なの?

ペンギン先生 ペンギン先生

そうだよ。Apache Kafkaに同梱されているフレームワークで、KafkaとDB・S3・ElasticsearchSaaSなど外部システムをつなぐ役割を担うんだ

ひよこ ひよこ

「つなぐ」って具体的にどういうこと?

ペンギン先生 ペンギン先生

たとえばMySQLの更新データをリアルタイムでKafkaに流し込んだり、逆にKafkaのメッセージをS3に自動で保存したりできるよ。前者をSourceコネクタ、後者をSinkコネクタと呼ぶんだ

ひよこ ひよこ

それって自分でコードを書かないといけないの?

ペンギン先生 ペンギン先生

それがKafka Connectのすごいところで、基本はJSON設定ファイルを書くだけなんだよ。「MySQLのこのテーブルを見て、変更をこのTopicに流して」という設定をREST APIで登録するだけで動き出すんだ

ひよこ ひよこ

CDCって言葉と一緒に出てくることが多いんだけど、関係あるの?

ペンギン先生 ペンギン先生

大ありだよ!DebeziumというSourceコネクタがMySQLPostgreSQLのバイナリログを読んで変更イベントをKafkaに流す仕組みをCDC(Change Data Capture)って言うんだ。Kafka ConnectでCDCを実現するのは定番パターンだよ

ひよこ ひよこ

ETLとも関係あるの?

ペンギン先生 ペンギン先生

関係あるよ。Extract(抽出)はSourceコネクタ、Load(書き込み)はSinkコネクタが担当するんだ。Transform(変換)はKafka Streamsや軽量な変換プラグインで行うことが多いね。Kafka Connectを中心にデータパイプラインを構築するのが現代のETLの主流になってきてるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Kafka Connect」って出てきたら「Kafkaと外部システムをつなぐコネクタ基盤」と思えればだいたいOK!
📖 おまけ:英語の意味
「Kafka Connect」 = Kafkaとの接続フレームワーク
💬 Apache Kafkaの公式サブプロジェクトで、connect(接続する)という名の通り、Kafkaと外部システムをつなぐのが役割だよ
← 用語集にもどる