Skip to main content
Dans ce tutoriel, vous allez découvrir comment exploiter des données géographiques avec ClickHouse à partir du jeu de données des antennes-relais. Vous chargerez le jeu de données dans ClickHouse Cloud, examinerez son schéma et exécuterez des requêtes d’agrégation sur des dizaines de millions de lignes. Vous enrichirez ensuite les données à l’aide d’un dictionnaire, utiliserez la fonction pointInPolygon pour compter les antennes situées en Allemagne, puis vous servirez de ClickHouse Agents pour visualiser le résultat sur une carte.

Prérequis

Pour ce tutoriel, vous aurez besoin de :
1

Chargez les données d’exemple

Le jeu de données utilisé dans ce tutoriel provient d’, la plus grande base de données ouverte d’antennes-relais au monde. En 2021, elle recensait des dizaines de millions d’antennes-relais à travers le monde, avec leurs coordonnées géographiques et des métadonnées telles que le code pays et le réseau.
  1. Dans ClickHouse Cloud, sélectionnez votre service dans la liste déroulante du menu de gauche
  2. Sélectionnez Data sources
  3. Cliquez sur la carte Add sample data
  4. Sélectionnez le jeu de données Cell Towers (1.1 GB)
  5. Utilisez default comme base de données de destination, puis cliquez sur Import dataset
Une entrée avec le statut success devrait apparaître dans Data upload history
2

Examinez le schéma

  1. Sélectionnez console SQL dans le menu de gauche
  2. Cliquez sur l’onglet + à côté de l’icône d’accueil pour créer une nouvelle requête
  3. Dans l’éditeur SQL, saisissez la requête suivante, puis cliquez sur Run :
Vous devriez obtenir le tableau de résultats suivant :
Chaque entrée de la table correspond à une antenne-relais située en un lieu réel sur Terre, défini par les coordonnées lon et lat.
3

Exécuter des requêtes simples

Exécutez la requête suivante pour afficher le nombre d’antennes-relais par type :
Vérifiez ensuite le nombre d’antennes relais par Mobile Country Code (MCC) :
On constate que les pays comptant le plus d’antennes-relais ont pour MCC 310, 262 et 250. Vous pouvez utiliser un dictionnaire pour remplacer les valeurs numériques de la colonne mcc par les noms des pays :
Une fois le dictionnaire créé, vous pouvez l’utiliser pour renvoyer la même liste, avec le nom du pays en regard du MCC :
Query
Response
4

Intégrer des données géographiques

Vous pourriez également vouloir connaître le nombre d’antennes-relais situées dans une zone géographique donnée. Pour ce cas d’usage, ClickHouse propose de nombreuses fonctions géospatiales utiles, comme la fonction pointInPolygon.Imaginons que vous souhaitiez savoir combien d’antennes-relais se trouvent en Allemagne. Créez une table nommée germany contenant une seule colonne de type polygon :
Insérez maintenant dans la table les coordonnées du contour de l’Allemagne (continentale) :
Vous pouvez désormais déterminer le nombre d’antennes-relais situées en Allemagne continentale à l’aide de la fonction pointInPolygon :
Query
Response
5

Facultatif : visualiser les données avec ClickHouse Agents

Nous allons maintenant visualiser ces données. Il s’agit d’un exemple d’exécution facultatif : ClickHouse Agents est une fonctionnalité bêta pilotée par un modèle, si bien que son plan, sa trace d’outils et sa sortie peuvent varier d’une exécution à l’autre. ClickHouse Agents vous permet d’interroger et d’explorer facilement vos données ClickHouse sous forme de conversation, sans avoir à écrire vous-même de SQL ni de logique d’orchestration. L’agent interprète votre intention, planifie les étapes, appelle les outils que vous avez configurés et vous renvoie les résultats.Cliquez sur ClickHouse agents sous le nom de votre organisation, en bas du menu de gauche, pour ouvrir ClickHouse Agents. Vous pouvez envoyer des messages à l’agent ClickHouse via le chat. Saisissez « Visualize cell towers within Germany on a map using the default.cell_towers and default.germany tables » et envoyez le message. Lors d’une exécution, l’agent a effectué les étapes suivantes :
  • Il a recherché le Mobile Country Code de l’Allemagne dans mcc_country_dict et a trouvé le MCC 262.
  • Il a compté les antennes avec mcc = 262 situées à l’intérieur du polygone de germany à l’aide de pointInPolygon, soit 2 588 635 antennes. Ce nombre est légèrement inférieur au décompte précédent, car le filtre supplémentaire sur mcc exclut les antennes situées dans le polygone mais enregistrées dans un autre pays.
  • Plutôt que de tracer 2,6 millions de points individuels, il a regroupé les antennes dans une grille de 0,1° sur 0,1° en arrondissant lon et lat, ce qui a produit 4 821 cellules. Il a vérifié que la somme des décomptes par cellule correspondait exactement à 2 588 635, afin de s’assurer que rien n’avait été perdu ni compté deux fois lors du regroupement.
  • Il a récupéré le polygone de germany et l’a tracé sous forme de contour par-dessus la grille, avec une échelle de couleurs logarithmique afin que les cellules urbaines denses comme les cellules rurales clairsemées restent visibles.
Ouvrez le fichier généré pour voir le résultat. Les zones les plus lumineuses correspondent aux grandes agglomérations : Berlin, Hambourg, Munich et Francfort.

Prochaines étapes

Dans ce tutoriel, vous avez chargé le jeu de données des antennes-relais OpenCelliD dans ClickHouse Cloud, examiné son schéma et exécuté des requêtes d’agrégation sur des dizaines de millions de lignes. Vous avez créé un dictionnaire pour enrichir la colonne numérique mcc avec les noms de pays, stocké le contour de l’Allemagne sous forme de polygone et utilisé pointInPolygon pour compter les antennes situées à l’intérieur. Enfin, vous avez utilisé ClickHouse Agents pour transformer cette question en carte de densité, sans écrire vous-même ni le code d’agrégation ni celui de la visualisation. Pour aller plus loin, vous pouvez :
  • Poser des questions complémentaires à l’agent. Demandez-lui par exemple comment la densité varie selon les types de radio, comme LTE et GSM, ou quelles villes comptent le plus d’antennes NR. Enregistrez les prompts que vous réutilisez dans la bibliothèque de prompts, ou créez un agent spécialisé dans l’Agent Builder.
  • Comparer des pays. Insérez des polygones pour d’autres pays et exécutez la même requête pointInPolygon sur chacun d’eux. Le dictionnaire que vous avez créé vous permet d’associer les noms de pays aux résultats.
  • Regrouper les antennes avec H3 ou geohash. L’agent a utilisé une simple grille d’arrondi. ClickHouse propose également les fonctions H3 et geohash, qui produisent des cellules hiérarchiques adaptées aux cartes zoomables.
  • Explorer d’autres jeux de données. Le jeu de données NYC taxi contient également des coordonnées de prise en charge et de dépose, et l’index des jeux de données d’exemple en répertorie bien d’autres.
Dernière modification le 26 septembre 2026