メインコンテンツまでスキップ
メインコンテンツまでスキップ

Named コレクションを使用した ClickHouse と Kafka の統合

はじめに

このガイドでは、Named コレクションを使用して ClickHouse を Kafka に接続する方法を探ります。Named コレクションの構成ファイルを使用することで、いくつかの利点があります:

  • 構成設定の集中管理と簡単な管理。
  • SQL テーブル定義を変更せずに設定を変更できます。
  • 単一の構成ファイルを確認することで、設定のレビューとトラブルシューティングが容易になります。

このガイドは、Apache Kafka 3.4.1 と ClickHouse 24.5.1 でテストされています。

前提条件

この文書は、以下を前提としています:

  1. 動作する Kafka クラスターがあること。
  2. 設定されて実行中の ClickHouse クラスターがあること。
  3. SQL の基本知識と、ClickHouse および Kafka の構成に慣れていること。

事前準備

Named コレクションを作成するユーザーが必要なアクセス権限を持っていることを確認してください:

アクセス制御を有効にする詳細については、ユーザー管理ガイドを参照してください。

構成

次のセクションを 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 テーブルを作成する

最初の Kafka クラスタ用の最初の Kafka テーブルを作成します:

2 番目の Kafka クラスタ用の 2 番目の Kafka テーブルを作成します:

複製テーブルを作成する

最初の Kafka テーブル用のテーブルを作成します:

2 番目の Kafka テーブル用のテーブルを作成します:

マテリアライズドビューを作成する

最初の Kafka テーブルから最初の複製テーブルにデータを挿入するマテリアライズドビューを作成します:

2 番目の Kafka テーブルから 2 番目の複製テーブルにデータを挿入するマテリアライズドビューを作成します:

設定の確認

これで、Kafka クラスターに関する相対的なコンシューマグループが表示されるはずです:

  • cluster_1_clickhouse_consumercluster_1
  • cluster_2_clickhouse_consumercluster_2

以下のクエリを任意の ClickHouse ノードで実行して、両方のテーブルにデータがあることを確認してください:

注意

このガイドでは、両方の Kafka トピックで取り込まれたデータは同じです。あなたのケースでは異なる場合があります。必要に応じて、好きなだけの Kafka クラスターを追加できます。

出力例:

これで、Named コレクションを使用して ClickHouse と Kafka を統合する設定が完了しました。ClickHouse の config.xml ファイルに Kafka の設定を集中化することで、管理と設定の調整がより容易になり、効率的な統合が実現します。