仅当您的数据较为简单且仅包含基本类型 (例如 int) 时,才应使用此 连接器。不支持 Map 等 ClickHouse 特有类型。
许可证
步骤
准备连接详细信息
你的 ClickHouse Cloud 服务的连接信息可在 ClickHouse Cloud 控制台中查看。
选择一个服务,然后点击 Connect:
选择 HTTPS。连接信息会显示在示例
curl 命令中。
如果你使用的是自管理 ClickHouse,则连接信息由你的 ClickHouse 管理员配置。
1. 安装 Kafka Connect 和连接器
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- 单个批次发送的行数。请确保该值设置得足够大。根据 ClickHouse 的建议,1000 应视为最小值。tasks.max- JDBC Sink 连接器 支持运行一个或多个任务。这可以用来提升性能。结合批次大小,这是提升性能的主要方式。value.converter.schemas.enable- 如果使用 Schema Registry,则设为 false;如果将 schema 嵌入消息中,则设为 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 中的数据类型进行设置。该数据必须具有受支持的 schema,即 JSON、Avro 或 Protobuf 格式。
value.converter.schemas.enable- 设为 false,因为我们使用 Schema Registry。如果你将 schema 嵌入每条消息中,则设为 true。key.converter- 设为 “org.apache.kafka.connect.storage.StringConverter”。我们使用 String 类型的 key。value.converter- 设为 “io.confluent.connect.json.JsonSchemaConverter”。value.converter.schema.registry.url- 设置 schema server 的 URL,并通过参数value.converter.schema.registry.basic.auth.user.info提供 schema server 的凭据。