Skip to main content

Kafka et le type de données JSON

Avec l’introduction du nouveau type de données JSON, ClickHouse constitue désormais un excellent choix comme base de données pour l’analyse de données JSON. Dans ce guide, nous allons voir comment charger des messages JSON depuis Apache Kafka directement dans une unique colonne JSON de ClickHouse.

Configurer Kafka

Commençons par lancer un broker Kafka sur notre machine. Nous allons également faire correspondre le port 9092 au port 9092 de notre système d’exploitation hôte afin de faciliter les interactions avec Kafka :

Ingérer des données dans Kafka

Une fois que c’est lancé, nous devons ingérer quelques données. Le flux des modifications récentes de Wikimedia est une bonne source de données en continu, alors ingérons-les dans le topic wiki_events :
Nous pouvons vérifier que les données sont bien ingérées en exécutant la commande suivante :
Jusqu’ici, tout va bien.

Ingérer des données dans ClickHouse

Nous allons ensuite ingérer les données dans ClickHouse. Commençons par activer le type JSON (actuellement expérimental) en définissant la propriété suivante :
Nous allons maintenant créer la table wiki_queue, qui utilise le moteur de table Kafka.
Notez que nous utilisons le format JSONAsObject, qui garantit que les messages entrants sont disponibles sous forme d’objet JSON. Ce format ne peut être interprété que dans une table comportant une seule colonne de type JSON. Ensuite, nous allons créer la table sous-jacente pour stocker les données Wiki :
Enfin, créons une vue matérialisée pour alimenter la table wiki :

Interroger des données JSON dans ClickHouse

Nous pouvons ensuite exécuter des requêtes sur la table wiki. Par exemple, nous pourrions compter le nombre de bots ayant apporté des modifications :
Ou nous pourrions identifier les utilisateurs qui apportent le plus de modifications sur en.wikipedia.org :
Dernière modification le 3 juillet 2026