JDBC コネクタ
このコネクタは、データがシンプルで、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 で使用するよう設定されています。