【かふかこねくと】

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と外部システムをつなぐのが役割だよ
← 用語集にもどる