Passer au contenu principal

Question

Comment importer du GeoJSON avec un tableau d’objets imbriqués ?

Réponse

Pour ce tutoriel, nous utiliserons des données ouvertes disponibles publiquement ici. Une copie est disponible ici.
  1. Téléchargez les données au format GeoJSON et renommez le fichier en geojson.json.
  2. Examinez la structure.
  1. Créez une table pour stocker les lignes GeoJSON.

L’objectif ici est de générer une ligne pour chaque objet du tableau features. Le type de données inféré pour le champ geometry indique qu’il correspond au type de données MultiPolygon de ClickHouse.
  1. Préparez les données.

L’objectif principal de la requête est de vérifier que nous obtenons une ligne pour chaque objet du tableau features.
Le champ features.geometry.coordinates est mis en commentaire afin de rendre le jeu de résultats plus lisible.
  1. Insérez les données.

On obtient alors l’erreur suivante :
Cela est dû à l’analyse de features.geometry.coordinates.
  1. Vérifions son type de données.

Cela peut être corrigé en convertissant multipolygon.properties.coordinates au type Array(Array(Array(Tuple(Float64,Float64)))). Pour ce faire, nous pouvons utiliser la fonction arrayMap(func,arr1,…).
  1. Insérez les données.

Conclusion

La manipulation de JSON peut s’avérer complexe. Ce tutoriel a abordé un cas où un tableau imbriqué d’objets pouvait rendre cette tâche encore plus difficile. Pour tout autre besoin lié à JSON, veuillez consulter notre documentation.
Dernière modification le 1 juillet 2026