Apache KafkaおよびKafka Connectフレームワーク

このトピックでは、Apache KafkaおよびKafka Connectフレームワークの基本概念について説明します。

Apache Kafkaソフトウェアは、メッセージキューやエンタープライズメッセージシステムと同様に、パブリッシュおよびサブスクライブモデルを使用してレコードのストリームを読み書きします。Kafkaを使用すると、プロセスはメッセージを非同期で読み書きできます。サブスクライバーはパブリッシャーに直接接続する必要はありません。パブリッシャーはKafkaでメッセージをキューに入れて、サブスクライバーが後で受信できるようにします。

アプリケーションはメッセージを トピック に発行し、アプリケーションはトピックをサブスクライブしてそれらのメッセージを受信します。

Kafka Connectは、Kafkaをデータベースなどの外部システムと接続するためのフレームワークです。Kafka Connectクラスタは、Kafkaクラスタとは別のクラスタです。Kafka Connectクラスターは、コネクタ(外部システムでの読み取りおよび書き込みをサポートするコンポーネント)の実行とスケールアウトをサポートします。

Kafka Connectは、2種類のコネクタで使用できます。

  • ソースコネクタ:外部システムからKafkaトピックへのデータをインポートします。

  • シンクコネクタ:Kafkaトピックから外部システムにデータをエクスポートします。

Kafka対応の高性能Snowflakeコネクタは、Kafkaトピックからデータを読み取り、Snowflakeテーブルにロードするシンクコネクタです。

Kafka Connectは、次のような一般的な運用上の問題に対処します。

  • スケーラビリティ:Kafka Connectは、クラスターにワーカーノードを追加することで水平方向にスケールできます。

  • フォールトトレランス:ワーカーノードに障害が発生した場合、Kafka Connectは自動的に他の利用可能なノードに作業を再分散します。

  • オフセット管理:Kafka Connectは、どの記録が処理されたかを追跡し、障害が発生した場合にデータが失われたり、重複したりしないようにします。

  • 構成管理:コネクタは RESTAPI を介して構成および管理できるため、データパイプラインの展開と監視が容易になります。