Utiliser Vector avec Kafka et ClickHouse
Licence
Rassemblez les informations de connexion
Les informations de votre service ClickHouse Cloud sont disponibles dans la console ClickHouse Cloud.
Sélectionnez un service, puis cliquez sur Connect :

curl.

Étapes
- Créez le topic Kafka
githubet insérez le jeu de données GitHub.
ClickHouse/ClickHouse.
- Assurez-vous que la table cible est créée. Ci-dessous, nous utilisons la base de données par défaut.
- Téléchargez et installez Vector. Créez un fichier de configuration
kafka.toml, puis modifiez les valeurs en fonction de vos instances Kafka et ClickHouse.
- Cet exemple a été testé avec Confluent Cloud. Par conséquent, les options de sécurité
sasl.*etssl.enabledpeuvent ne pas convenir aux environnements auto-gérés. - Un préfixe de protocole n’est pas nécessaire pour le paramètre de configuration
bootstrap_servers, par ex.pkc-2396y.us-east-1.aws.confluent.cloud:9092 - Le paramètre source
decoding.codec = "json"garantit que le message est transmis au sink ClickHouse sous la forme d’un seul objet JSON. Si vous traitez les messages comme desStringset utilisez la valeur par défautbytes, le contenu du message sera ajouté à un champmessage. Dans la plupart des cas, cela nécessitera un traitement dans ClickHouse, comme décrit dans le guide de prise en main de Vector. - Vector ajoute plusieurs champs aux messages. Dans notre exemple, nous ignorons ces champs dans le sink ClickHouse via le paramètre de configuration
skip_unknown_fields = true. Cela permet d’ignorer les champs qui ne font pas partie du schéma de la table cible. N’hésitez pas à ajuster votre schéma pour inclure ces métachamps, commeoffset. - Remarquez comment le sink fait référence à la source des événements via le paramètre
inputs. - Notez le comportement du sink ClickHouse tel que décrit ici. Pour un débit optimal, vous pouvez ajuster les paramètres
buffer.max_events,batch.timeout_secsetbatch.max_bytes. Conformément aux recommandations de ClickHouse, une valeur de 1000 doit être considérée comme le minimum pour le nombre d’événements dans un même batch. Pour les cas d’usage à débit élevé et régulier, vous pouvez augmenter le paramètrebuffer.max_events. Des débits plus variables peuvent nécessiter d’ajuster le paramètrebatch.timeout_secs - Le paramètre
auto_offset_reset = "smallest"force la source Kafka à démarrer au début du topic, garantissant ainsi que nous consommons les messages publiés à l’étape (1). Vous pouvez avoir besoin d’un comportement différent. Voir ici pour plus de détails.
- Démarrez Vector
VECTOR_LOG=debug pour obtenir des logs supplémentaires, ce qui peut s’avérer utile si vous rencontrez des problèmes.
- Confirmez l’insertion des données.