Ce connecteur ne doit être utilisé que si vos données sont simples et se composent de types de données primitifs, par ex. int. Les types spécifiques à ClickHouse, tels que Map, ne sont pas pris en charge.
Licence
Étapes
Rassemblez vos 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 :
Choisissez HTTPS. Les détails de connexion s’affichent dans un exemple de commande
curl.
Si vous utilisez ClickHouse autogéré, les détails de connexion sont définis par votre administrateur ClickHouse.
1. Installer Kafka Connect et le connecteur
confluent-hub, vos fichiers de configuration locaux seront mis à jour.
Pour envoyer des données de Kafka vers ClickHouse, nous utilisons le composant sink du connecteur.
2. Télécharger et installer le pilote JDBC
clickhouse-jdbc-<version>-shaded.jar depuis ici. Installez-le dans Kafka Connect en suivant les instructions détaillées ici. D’autres pilotes peuvent fonctionner, mais n’ont pas été testés.
Problème courant : la documentation suggère de copier le fichier JAR dans
share/java/kafka-connect-jdbc/. Si Connect ne parvient pas à trouver le pilote, copiez-le dans share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/. Vous pouvez aussi modifier plugin.path pour y inclure le pilote — voir ci-dessous.3. Préparer la configuration
_connection.url_- doit prendre la formejdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>connection.user- un utilisateur disposant d’un accès en écriture à la base de données cibletable.name.format- table ClickHouse dans laquelle insérer les données. Elle doit déjà exister.batch.size- Le nombre de lignes à envoyer dans un même lot. Assurez-vous que cette valeur est suffisamment élevée. Selon les recommandations de ClickHouse, 1000 doit être considéré comme un minimum.tasks.max- Le connecteur JDBC Sink prend en charge l’exécution d’une ou plusieurs tâches. Cela peut améliorer les performances. Avec la taille du lot, c’est votre principal levier d’optimisation des performances.value.converter.schemas.enable- Définissez sur false si vous utilisez un registre de schémas, sur true si vous intégrez vos schémas dans les messages.value.converter- Définissez selon votre type de données, par ex. pour JSON,io.confluent.connect.json.JsonSchemaConverter.key.converter- Définissez surorg.apache.kafka.connect.storage.StringConverter. Nous utilisons des clés de type String.pk.mode- Non pertinent pour ClickHouse. Définissez sur none.auto.create- Non pris en charge et doit être false.auto.evolve- Nous recommandons false pour ce paramètre, bien qu’il puisse être pris en charge à l’avenir.insert.mode- Définissez sur “insert”. Les autres modes ne sont actuellement pas pris en charge.key.converter- Définissez selon le type de vos clés.value.converter- Définissez en fonction du type de données de votre topic. Ces données doivent utiliser un schéma pris en charge : JSON, Avro ou Protobuf.
value.converter.schemas.enable- Définissez sur false, car nous utilisons un registre de schémas. Définissez sur true si vous intégrez le schéma dans chaque message.key.converter- Définissez sur “org.apache.kafka.connect.storage.StringConverter”. Nous utilisons des clés de type String.value.converter- Définissez sur “io.confluent.connect.json.JsonSchemaConverter”.value.converter.schema.registry.url- Définissez l’URL du serveur de schémas, ainsi que les informations d’identification de ce serveur via le paramètrevalue.converter.schema.registry.basic.auth.user.info.
4. Créer la table ClickHouse
5. Démarrer Kafka Connect
6. Ajouter des données à Kafka
Lectures complémentaires recommandées
- Paramètres de configuration du sink Kafka
- Analyse approfondie de Kafka Connect – connecteur source JDBC
- Analyse approfondie du sink JDBC de Kafka Connect : utilisation des clés primaires
- Kafka Connect en action : sink JDBC - pour celles et ceux qui préfèrent regarder plutôt que lire.
- Analyse approfondie de Kafka Connect – convertisseurs et sérialisation expliqués