Uso de Vector con Kafka y ClickHouse
Licencia
Recopila 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.
Pasos
- Cree el topic de Kafka
githube inserte el conjunto de datos de GitHub.
ClickHouse/ClickHouse.
- Asegúrese de que la tabla de destino se haya creado. A continuación, usamos la base de datos predeterminada.
- Descargue e instale Vector. Cree un archivo de configuración
kafka.tomly modifique los valores correspondientes a sus instancias de Kafka y ClickHouse.
- Este ejemplo se ha probado con Confluent Cloud. Por lo tanto, es posible que las opciones de seguridad
sasl.*yssl.enabledno sean adecuadas en casos autogestionados. - No se requiere un prefijo de protocolo para el parámetro de configuración
bootstrap_servers; por ejemplo,pkc-2396y.us-east-1.aws.confluent.cloud:9092 - El parámetro de source
decoding.codec = "json"garantiza que el mensaje se pase al sink de ClickHouse como un único objeto JSON. Si los mensajes se manejan como Strings y se usa el valor predeterminadobytes, el contenido del mensaje se añadirá a un campomessage. En la mayoría de los casos, esto requerirá procesamiento en ClickHouse, como se describe en la guía primeros pasos con Vector. - Vector añade varios campos a los mensajes. En nuestro ejemplo, ignoramos estos campos en el sink de ClickHouse mediante el parámetro de configuración
skip_unknown_fields = true. Esto ignora los campos que no forman parte del esquema de la tabla de destino. Puedes ajustar el esquema para asegurarte de que se añadan estos metacampos, comooffset. - Observa cómo el sink hace referencia a la source de eventos mediante el parámetro
inputs. - Ten en cuenta el comportamiento del sink de ClickHouse, como se describe aquí. Para un throughput óptimo, quizá te convenga ajustar los parámetros
buffer.max_events,batch.timeout_secsybatch.max_bytes. Según las recomendaciones de ClickHouse, un valor de 1000 debe considerarse el mínimo para el número de eventos en cualquier batch. Para casos de uso con high throughput uniforme, puedes aumentar el parámetrobuffer.max_events. Los throughputs más variables pueden requerir cambios en el parámetrobatch.timeout_secs - El parámetro
auto_offset_reset = "smallest"obliga a la source de Kafka a comenzar desde el inicio del topic, lo que garantiza que consumamos los mensajes publicados en el paso (1). Puede que necesites un comportamiento diferente. Consulta aquí para más detalles.
- Iniciar Vector
VECTOR_LOG=debug para obtener logging adicional, lo que puede resultar útil si surge algún problema.
- Confirma la inserción de los datos.