このコネクタは、データがシンプルで、int などのプリミティブなデータ型だけで構成されている場合にのみ使用してください。Map などの ClickHouse 固有の型はサポートされていません。
ライセンス
手順
接続情報を確認する
ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。
サービスを選択し、Connect をクリックします。
HTTPS を選択します。接続情報は
curl コマンドの例として表示されます。
セルフマネージド ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
1. Kafka Connect とコネクタをインストールする
confluent-hub を使ったインストール方法を使用する場合は、ローカルの設定ファイルが更新されます。
Kafka から ClickHouse にデータを送信するには、コネクタの sink コンポーネントを使用します。
2. JDBCドライバーをダウンロードしてインストールする
clickhouse-jdbc-<version>-shaded.jar をダウンロードしてインストールします。これを、こちらの手順に従って Kafka Connect にインストールしてください。ほかのドライバーでも動作する可能性はありますが、テストは行われていません。
よくある問題: ドキュメントでは、jar を
share/java/kafka-connect-jdbc/ にコピーするよう案内されています。Connect がドライバーを検出できない場合は、ドライバーを share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/ にコピーしてください。あるいは、ドライバーが含まれるように plugin.path を変更してください。詳細は以下を参照してください。3. 設定を準備する
_connection.url_-jdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>の形式で指定する必要がありますconnection.user- 移行先データベースへの書き込み権限を持つユーザーtable.name.format- データの挿入先となる ClickHouse テーブル。事前に存在している必要があります。batch.size- 1 回のバッチで送信する行数です。適切に大きな値を設定してください。ClickHouse の推奨事項では、1000 を最低値の目安とすることを推奨しています。tasks.max- JDBC Sink コネクタは 1 つ以上の task の実行をサポートしています。これはパフォーマンス向上に利用できます。batch size とあわせて、パフォーマンス改善の主要な手段となります。value.converter.schemas.enable- スキーマレジストリを使用する場合は false、メッセージ内にスキーマを埋め込む場合は true に設定します。value.converter- データ型に応じて設定します。たとえば JSON の場合はio.confluent.connect.json.JsonSchemaConverterです。key.converter-org.apache.kafka.connect.storage.StringConverterに設定します。String の key を利用します。pk.mode- ClickHouse では関係ありません。none に設定します。auto.create- サポートされていないため、false にする必要があります。auto.evolve- 将来的にサポートされる可能性はありますが、この設定は false を推奨します。insert.mode- “insert” に設定します。現在、他のモードはサポートされていません。key.converter- key の型に応じて設定します。value.converter- topic 上のデータ型に応じて設定します。このデータには、JSON、Avro、または Protobuf フォーマットのいずれかでサポートされるスキーマが必要です。
value.converter.schemas.enable- スキーマレジストリを利用するため false に設定します。各メッセージにスキーマを埋め込む場合は true に設定します。key.converter- “org.apache.kafka.connect.storage.StringConverter” に設定します。String の key を利用します。value.converter- “io.confluent.connect.json.JsonSchemaConverter” に設定します。value.converter.schema.registry.url- スキーマサーバーの URL を設定し、あわせてパラメータvalue.converter.schema.registry.basic.auth.user.infoでスキーマサーバーの認証情報を設定します。
4. ClickHouseテーブルを作成する
5. Kafka Connect を起動する
6. Kafka にデータを追加する
github.configを編集して、Kafka の認証情報を含める必要があります。このスクリプトは現在、Confluent Cloud で使用するよう設定されています。