Passer au contenu principal

Jeu de données

Ce jeu de données de Foursquare peut être téléchargé et utilisé gratuitement sous licence Apache 2.0. Il contient plus de 100 millions d’enregistrements de points d’intérêt (POI) commerciaux, comme des magasins, des restaurants, des parcs, des aires de jeux et des monuments. Il comprend également des métadonnées supplémentaires sur ces lieux, comme des catégories et des informations sur les réseaux sociaux.

Exploration des données

Pour explorer les données, nous utiliserons clickhouse-local, un petit outil en ligne de commande qui fournit l’intégralité du moteur ClickHouse, mais vous pouvez aussi utiliser ClickHouse Cloud, clickhouse-client ou même chDB. Exécutez la requête suivante pour sélectionner les données du bucket S3 où elles sont stockées :
Query
Response
Nous constatons qu’un certain nombre de champs ont la valeur ᴺᵁᴸᴸ. Nous pouvons donc ajouter quelques conditions supplémentaires à notre requête afin d’obtenir des données plus exploitables :
Query
Exécutez la requête suivante pour afficher le schéma des données inféré automatiquement à l’aide de DESCRIBE :
Query
Response

Chargement des données dans ClickHouse

Si vous souhaitez stocker les données sur disque de manière persistante, vous pouvez utiliser clickhouse-server ou ClickHouse Cloud. Pour créer la table, exécutez la commande suivante :
Query
Notez l’utilisation du type de données LowCardinality pour plusieurs colonnes, ce qui modifie la représentation interne de ces types de données pour utiliser un encodage par dictionnaire. L’exploitation de données encodées par dictionnaire améliore considérablement les performances des requêtes SELECT dans de nombreuses applications. De plus, deux colonnes UInt32 MATERIALIZED, mercator_x et mercator_y, sont créées pour projeter les coordonnées lat/lon dans la projection Web Mercator afin de faciliter le découpage de la carte en tuiles :
Décomposons ce qui se passe ci-dessus pour chaque colonne. mercator_x Cette colonne convertit une valeur de longitude en coordonnée X dans la projection de Mercator :
  • longitude + 180 décale la plage de longitude de [-180, 180] vers [0, 360]
  • La division par 360 normalise cette valeur pour obtenir un nombre compris entre 0 et 1
  • La multiplication par 0xFFFFFFFF (hexadécimal correspondant à la valeur maximale d’un entier non signé sur 32 bits) met cette valeur normalisée à l’échelle sur toute la plage d’un entier 32 bits
mercator_y Cette colonne convertit une valeur de latitude en coordonnée Y dans la projection de Mercator :
  • latitude + 90 décale la latitude de [-90, 90] vers [0, 180]
  • La division par 360 puis la multiplication par pi() convertissent la valeur en radians pour les fonctions trigonométriques
  • La partie log(tan(...)) constitue le cœur de la formule de projection de Mercator
  • La multiplication par 0xFFFFFFFF met la valeur à l’échelle sur toute la plage d’entiers 32 bits
Le fait de spécifier MATERIALIZED garantit que ClickHouse calcule les valeurs de ces colonnes lorsque nous INSERT les données, sans avoir à spécifier ces colonnes (qui ne font pas partie du schéma de données d’origine) dans l’instruction `INSERT. La table est ordonnée par mortonEncode(mercator_x, mercator_y), ce qui produit une courbe de remplissage de l’espace en ordre Z pour mercator_x, mercator_y, afin d’améliorer considérablement les performances des requêtes géospatiales. Cet ordonnancement selon une courbe en Z garantit que les données sont physiquement organisées en fonction de leur proximité spatiale :
Deux index minmax sont également créés pour accélérer les recherches :
Comme vous pouvez le voir, ClickHouse dispose de tout ce qu’il faut pour les applications de cartographie en temps réel ! Exécutez la requête suivante pour charger les données :

Visualisation des données

Pour voir ce qu’il est possible de faire avec ce jeu de données, consultez adsb.exposed. adsb.exposed a été conçu à l’origine par le cofondateur et CTO Alexey Milovidov pour visualiser des données de vol ADS-B (Automatic Dependent Surveillance-Broadcast), mille fois plus volumineuses. Lors d’un hackathon de l’entreprise, Alexey a ajouté les données Foursquare à l’outil. Voici quelques-unes de nos visualisations préférées, à découvrir ci-dessous.
Dernière modification le 2 juillet 2026