Este conector solo debe usarse si los datos son simples y constan de tipos de datos primitivos, p. ej., int. Los tipos específicos de ClickHouse, como Map, no son compatibles.
Licencia
Pasos
Reúne los datos de conexión
Los detalles de su servicio de ClickHouse Cloud están disponibles en la consola de ClickHouse Cloud.
Seleccione un servicio y haga clic en Connect:
Elija HTTPS. Los detalles de conexión se muestran en un comando
curl de ejemplo.
Si usa ClickHouse autogestionado, los detalles de conexión los establece su administrador de ClickHouse.
1. Instale Kafka Connect y el conector
confluent-hub, se actualizarán sus archivos de configuración locales.
Para enviar datos a ClickHouse desde Kafka, usamos el componente sink del conector.
2. Descargar e instalar el JDBC driver
clickhouse-jdbc-<version>-shaded.jar desde aquí. Instálelo en Kafka Connect siguiendo las instrucciones detalladas aquí. Es posible que otros drivers funcionen, pero no se han probado.
Problema habitual: la documentación sugiere copiar el archivo JAR en
share/java/kafka-connect-jdbc/. Si tiene problemas para que Connect encuentre el driver, copie el driver en share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/. También puede modificar plugin.path para incluir el driver; consulte más abajo.3. Preparar la configuración
standalone y uno distribuido. Si usas Confluent Cloud, la configuración distribuida es la que corresponde.
Los siguientes parámetros son relevantes para usar el conector JDBC con ClickHouse. Puedes encontrar una lista completa de parámetros aquí:
_connection.url_- debe tener la formajdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>connection.user- un usuario con acceso de escritura a la base de datos de destinotable.name.format- tabla de ClickHouse en la que insertar datos. Debe existir.batch.size- El número de filas que se enviarán en un solo batch. Asegúrate de establecerlo en un valor suficientemente alto. Según las recomendaciones de ClickHouse, 1000 debe considerarse el valor mínimo.tasks.max- El conector JDBC Sink admite ejecutar una o más tasks. Esto puede usarse para aumentar el rendimiento. Junto con el tamaño del batch, es tu principal mecanismo para mejorar el rendimiento.value.converter.schemas.enable- Establécelo en false si usas un registro de esquemas y en true si incrustas los esquemas en los mensajes.value.converter- Establécelo según tu tipo de dato; por ejemplo, para JSON,io.confluent.connect.json.JsonSchemaConverter.key.converter- Establécelo enorg.apache.kafka.connect.storage.StringConverter. Utilizamos claves String.pk.mode- No es relevante para ClickHouse. Establécelo en none.auto.create- No es compatible y debe ser false.auto.evolve- Recomendamos false para esta configuración, aunque podría ser compatible en el futuro.insert.mode- Establécelo en “insert”. Actualmente no se admiten otros modos.key.converter- Establécelo según los tipos de tus claves.value.converter- Establécelo según el tipo de datos de tu topic. Estos datos deben tener un esquema compatible: formatos JSON, Avro o Protobuf.
value.converter.schemas.enable- Establécelo en false, ya que utilizamos un registro de esquemas. Establécelo en true si incrustas el esquema en cada mensaje.key.converter- Establécelo en “org.apache.kafka.connect.storage.StringConverter”. Utilizamos claves String.value.converter- Establécelo en “io.confluent.connect.json.JsonSchemaConverter”.value.converter.schema.registry.url- Establece la URL del servidor de esquemas junto con las credenciales del servidor de esquemas mediante el parámetrovalue.converter.schema.registry.basic.auth.user.info.
4. Cree la tabla de ClickHouse
5. Iniciar Kafka Connect
6. Añade datos a Kafka
github.config para incluir tus credenciales de Kafka. Actualmente, el script está configurado para usarse con Confluent Cloud.
Lecturas adicionales recomendadas
- Parámetros de configuración de Kafka Sink
- Análisis en profundidad de Kafka Connect – conector JDBC Source
- Análisis en profundidad de Kafka Connect JDBC Sink: trabajo con claves primarias
- Kafka Connect en acción: JDBC Sink - para quienes prefieren verlo en lugar de leer.
- Análisis en profundidad de Kafka Connect – explicación de convertidores y serialización