Skip to main content

はじめに

このガイドでは、named collections を使用して ClickHouse を Kafka に接続する方法を紹介します。named collections の設定ファイルを使用することで、次のような利点があります。
  • 設定を一元化し、より簡単に管理できます。
  • SQL のテーブル定義を変更することなく、設定を変更できます。
  • 単一の設定ファイルを確認するだけで、設定のレビューやトラブルシューティングをより容易に行えます。
このガイドは、Apache Kafka 3.4.1 および ClickHouse 24.5.1 で検証されています。

前提

このドキュメントでは、以下を前提としています。
  1. 稼働中のKafkaクラスターがあること。
  2. ClickHouseクラスターが構成済みで、稼働していること。
  3. SQLの基本的な知識があり、ClickHouseおよびKafkaの設定に精通していること。

前提条件

named collection を作成するユーザーに必要なアクセス権限があることを確認してください。
アクセス制御を有効にする方法の詳細については、ユーザー管理ガイドを参照してください。

設定

以下のセクションを ClickHouse の config.xml ファイルに追加します。

設定に関する注意事項

  1. Kafka のアドレスと関連設定は、ご使用の Kafka クラスター構成に合わせて調整してください。
  2. <kafka> の前のセクションには、ClickHouse の Kafka エンジンパラメータが含まれています。パラメータの一覧については、Kafka エンジンパラメータ を参照してください。
  3. <kafka> 内のセクションには、Kafka の拡張設定オプションが含まれています。その他のオプションについては、librdkafka の設定を参照してください。
  4. この例では、SASL_SSL セキュリティプロトコルと PLAIN メカニズムを使用しています。これらの設定は、Kafka クラスターの構成に応じて調整してください。

テーブルとデータベースの作成

ClickHouseクラスター上に必要なデータベースとテーブルを作成します。ClickHouseを単一ノードで実行している場合は、SQLコマンドのクラスター指定部分を省略し、ReplicatedMergeTree の代わりに別のエンジンを使用してください。

データベースを作成する

Kafkaテーブルを作成する

1つ目のKafkaクラスター用に、1つ目のKafkaテーブルを作成します。
2 つ目の Kafka クラスター用に、2 つ目の Kafka テーブルを作成します。

レプリケートテーブルを作成する

最初のKafkaテーブル用に、次のテーブルを作成します:
2つ目のKafkaテーブル用のテーブルを作成します:

materialized view を作成する

最初の Kafka テーブルから最初のレプリケートテーブルへデータを挿入する materialized view を作成します。
2 つ目の Kafka テーブルから 2 つ目のレプリケートテーブルへデータを挿入するための materialized view を作成します。

セットアップの確認

これで、Kafkaクラスター上に対応するコンシューマグループが表示されているはずです。
  • cluster_1_clickhouse_consumer (cluster_1 上)
  • cluster_2_clickhouse_consumer (cluster_2 上)
両方のテーブルのデータを確認するには、いずれかの ClickHouse ノードで次のクエリを実行します。

このガイドでは、両方のKafkaトピックに取り込まれるデータは同一です。実際の環境では、異なるデータになるはずです。Kafkaクラスターは必要な数だけ追加できます。 出力例:
これで、named collections を使用して ClickHouse と Kafka を統合するためのセットアップは完了です。Kafka の設定を ClickHouse の config.xml ファイルに集約することで、設定の管理や調整が容易になり、よりシンプルで効率的なインテグレーションを実現できます。
最終更新日 2026年7月3日