Vue d’ensemble
- Comment configurer Kafka sur Ubuntu
- Ingérer un flux de données dans un topic Kafka
- Créer une table ClickHouse qui s’abonne au topic
1. Configurer Kafka sur Ubuntu
- Créez une instance ec2 sous Ubuntu et connectez-vous-y en SSH :
- Installez Kafka (en suivant les instructions ici : https://www.linode.com/docs/guides/how-to-install-apache-kafka-on-ubuntu/) :
- Démarrez ZooKeeper :
- Ouvrez un nouveau terminal et lancez Kafka :
- Ouvrez un troisième terminal et créez un topic nommé wikimedia :
- Vous pouvez vérifier qu’il a bien été créé en :
2. Ingérer le flux Wikimedia dans Kafka
- Nous avons d’abord besoin de quelques utilitaires :
- Les données sont envoyées à Kafka à l’aide d’une commande curl astucieuse qui récupère les derniers événements Wikimedia, en extrait les données JSON, puis les envoie au topic Kafka :
- Vous pouvez « décrire » le topic :
- Vérifions que tout fonctionne en consommant quelques événements :
- Appuyez sur Ctrl+c pour interrompre la commande précédente.
3. Ingérez les données dans ClickHouse
- Voici à quoi ressemblent les données reçues :
- Nous aurons besoin du moteur de table Kafka pour récupérer les données du topic Kafka :
- Pour une raison quelconque, le moteur de table Kafka semble prendre l’URL ec2 publique et la convertir en nom DNS privé. J’ai donc dû l’ajouter à mon fichier local
/etc/hosts:
- Vous pouvez lire depuis une table Kafka ; il vous suffit d’activer un paramètre :
- Il nous faut une table MergeTree pour stocker ces événements entrants :
- Définissons une vue matérialisée qui se déclenche lorsqu’une insertion a lieu sur la table Kafka et envoie les données vers notre table rawEvents :
- Vous devriez commencer à voir des données arriver dans rawEvents presque immédiatement :
- Affichons quelques lignes :
- Voyons quels types d’événements arrivent :
- Il nous faudra des fonctions -Merge pour afficher les résultats :