Skip to main content
Sensor.Community est un réseau mondial de capteurs porté par des contributeurs, qui produit des données environnementales ouvertes. Les données sont collectées par des capteurs partout dans le monde. N’importe qui peut acheter un capteur et l’installer où bon lui semble. Les API permettant de télécharger les données sont disponibles sur GitHub, et les données sont librement accessibles sous la licence Database Contents License (DbCL).
Le jeu de données contient plus de 20 milliards d’enregistrements ; soyez donc prudent avant de simplement copier-coller les commandes ci-dessous, sauf si vos ressources peuvent gérer un tel volume. Ces commandes ont été exécutées sur un service ClickHouse Cloud correctement dimensionné.
Pour tester ces commandes vous-même, vous pouvez vous inscrire à un essai gratuit de ClickHouse Cloud ou installer ClickHouse en auto-hébergement.
  1. Les données se trouvent dans S3, nous pouvons donc utiliser la fonction de table s3 pour créer une table à partir des fichiers. Nous pouvons également interroger les données directement. Examinons quelques lignes avant d’essayer de les insérer dans ClickHouse :
Les données se trouvent dans des fichiers CSV, mais le délimiteur est un point-virgule. Les lignes se présentent ainsi :
  1. Nous utiliserons la table MergeTree suivante pour stocker les données dans ClickHouse :
  1. Nous utiliserons la fonction de table s3Cluster, qui répartit les fichiers S3 entre les nœuds de votre cluster afin qu’ils soient lus en parallèle. Dans ClickHouse Cloud, votre cluster s’appelle default et vous pouvez exécuter cette requête telle quelle. Sur un serveur autogéré, remplacez default par le nom de votre cluster — ou, si vous n’utilisez qu’un seul serveur, utilisez plutôt la fonction de table s3 en supprimant le premier argument, de sorte que l’appel commence par l’URL.
Cette requête prendra un certain temps — elle représente environ 1,67 To de données non compressées :
Voici la réponse — indiquant le nombre de lignes et la vitesse de traitement. Les données sont ingérées à plus de 6 millions de lignes par seconde !
  1. Voyons quel espace de stockage sur disque est nécessaire pour la table sensors :
Les 1,67 To sont compressés à 310 Gio, et il y a 20,69 milliards de lignes :
  1. Analysons les données maintenant qu’elles sont stockées dans ClickHouse. Notez que le volume de données augmente au fil du temps, à mesure que davantage de capteurs sont mis en service :
Nous pouvons créer un graphique dans la console SQL pour visualiser les résultats :
  1. Cette requête compte le nombre de jours très chauds et humides :
Voici une visualisation du résultat :