メインコンテンツへスキップ
メインコンテンツへスキップ

Confluent Platform と ClickHouse の連携

前提条件

以下の内容に精通していることを前提とします:

Confluent Platform 向け ClickHouse 公式 Kafka コネクタ

Confluent Platform へのインストール

本ガイドは、Confluent Platform 上で ClickHouse Sink Connector を使い始めるためのクイックスタートです。 詳細については、Confluent 公式ドキュメントを参照してください。

トピックの作成

Confluent Platform 上でトピックを作成するのは比較的容易で、詳細な手順はこちらに記載されています。

重要な注意事項

  • Kafka のトピック名は ClickHouse のテーブル名と同一である必要があります。これを調整するには、トランスフォーム(たとえば ExtractTopic など)を利用します。
  • パーティション数を増やせば常に性能が向上するとは限りません。詳細およびパフォーマンスに関するヒントについては、今後公開予定のガイドで説明します。

コネクタのインストール

コネクタはリポジトリからダウンロードできます。コメントや issue もぜひそちらに投稿してください。

「Connector Plugins」→「Add plugin」に移動し、次の設定を使用します。

'Connector Class' - 'com.clickhouse.kafka.connect.ClickHouseSinkConnector'
'Connector type' - Sink
'Sensitive properties' - 'password'。これにより、設定中にClickHouseパスワードの入力がマスクされます。

例:

ClickHouse のカスタムコネクタを追加するための設定を表示している Confluent Platform の UI

接続情報を収集する

HTTP(S) で ClickHouse に接続するには、次の情報が必要です。

Parameter(s)Description
HOST and PORT通常、TLS を使用する場合のポートは 8443、TLS を使用しない場合のポートは 8123 です。
DATABASE NAME既定で default という名前のデータベースが用意されています。接続したいデータベースの名前を使用してください。
USERNAME and PASSWORD既定のユーザー名は default です。用途に応じて適切なユーザー名を使用してください。

ClickHouse Cloud サービスに関する詳細情報は、ClickHouse Cloud コンソールで確認できます。 サービスを選択し、Connect をクリックします。

ClickHouse Cloud サービスの Connect ボタン

HTTPS を選択します。接続情報は、サンプルの curl コマンド内に表示されます。

ClickHouse Cloud HTTPS 接続詳細

自己管理型の ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。

コネクタを設定する

Connectors -> Add Connector に移動し、次の設定を使用します(値はあくまでサンプルです)。

{
  "database": "<DATABASE_NAME>",
  "errors.retry.timeout": "30",
  "exactlyOnce": "false",
  "schemas.enable": "false",
  "hostname": "<CLICKHOUSE_HOSTNAME>",
  "password": "<SAMPLE_PASSWORD>",
  "port": "8443",
  "ssl": "true",
  "topics": "<TOPIC_NAME>",
  "username": "<SAMPLE_USERNAME>",
  "key.converter": "org.apache.kafka.connect.storage.StringConverter",
  "value.converter": "org.apache.kafka.connect.json.JsonConverter",
  "value.converter.schemas.enable": "false"
}

接続エンドポイントを指定する

コネクタがアクセス可能なエンドポイントの allow-list(許可リスト)を指定する必要があります。 ネットワークの送信(egress)エンドポイントを追加する際は、必ず FQDN(完全修飾ドメイン名)を使用してください。 例: u57swl97we.eu-west-1.aws.clickhouse.com:8443

注記

HTTP(S) ポートを必ず指定してください。Connector はまだ Native プロトコルをサポートしていません。

ドキュメントを参照してください。

これで準備は完了です。

既知の制限事項