Cet article décrit une solution gérable pour mettre à disposition des volumes importants de données géospatiales à des fins d’analytique.
Architecture
Téléchargez un fichier Visio de cette architecture.
Le diagramme contient plusieurs zones grises, chacune avec une étiquette différente. De gauche à droite, les étiquettes sont Ingérer, Préparer, Charger, Servir, et Visualiser et explorer. Une dernière zone sous les autres est étiquetée Superviser et sécuriser. Chaque zone contient des icônes représentant différents services Azure. Des flèches numérotées relient les cases de la manière décrite dans l’explication du diagramme.
Workflow
Les données IoT entrent dans le système :
- Azure Event Hubs ingère des flux de données IoT. Les données contiennent des coordonnées ou d’autres informations qui identifient les emplacements des appareils
- Event Hubs utilise Azure Databricks pour le traitement de flux initial.
- Event Hubs stocke les données dans Azure Data Lake Storage.
Les données GIS entrent dans le système :
Azure Data Factory ingère les données SIG raster et les données GIS vectorielles de n’importe quel format.
- Les données raster sont composées de grilles de valeurs. Chaque valeur de pixel représente une caractéristique telle que la température ou l’élévation d’une zone géographique
- Les données vectorielles représentent des caractéristiques géographiques spécifiques. Les vertex, ou emplacements géométriques discrets, composent les vecteurs et définissent la forme de chaque objet spatial
Data Factory stocke les données dans Data Lake Storage
Les clusters Spark dans Azure Databricks utilisent des bibliothèques de code géospatiales pour transformer et normaliser les données.
Data Factory charge les données vectorielles et raster préparées dans Azure Database pour PostgreSQL. La solution utilise l’extension PostGIS avec cette base de données.
Data Factory charge les données vectorielles et raster préparées dans Azure Data Explorer.
Azure Database pour PostgreSQL stocke les données GIS. Les API rendent ces données disponibles dans des formats standardisés :
- GeoJSON est basé sur JSON (JavaScript Object Notation). GeoJSON représente des fonctionnalités géographiques simples et leurs propriétés non spatiales
- WKT (Well-Known Text) est un langage de balisage de texte qui représente des objets géométriques vectoriels
- Les mosaïques vectorielles sont des paquets de données géographiques. Leur format léger améliore les performances de mappage
Un cache Redis améliore les performances en fournissant un accès rapide aux données.
La fonctionnalité Web Apps d’Azure App Service fonctionne avec Azure Maps pour créer des visuels des données.
Les utilisateurs analysent les données avec Azure Data Explorer. Les fonctionnalités GIS de cet outil créent des visualisations pertinentes. En guise d’exemple, citons la création de nuages de points à partir de données géospatiales.
Power BI fournit des rapports personnalisés et des outils décisionnels. Le visuel Azure Maps pour Power BI met en évidence le rôle des données d’emplacement dans les résultats métier.
Tout au long du processus :
- Azure Monitor collecte des informations relatives aux événements et performances.
- Log Analytics exécute des requêtes sur les journaux Azure Monitor et analyse les résultats
- Azure Key Vault sécurise les mots de passe, les chaînes de connexion et les secrets.
Composants
Azure Event Hubs est une plateforme de streaming complètement managée pour le Big Data. Cette plateforme en tant que service (PaaS) offre un modèle de consommateur partitionné. Plusieurs applications peuvent utiliser ce modèle pour traiter le flux de données en même temps.
Azure Data Factory est un service d’intégration qui opère avec des données provenant de magasins de données disparates. Vous pouvez utiliser cette plateforme serverless complètement managée pour créer, planifier et orchestrer des flux de travail de transformation de données.
Azure Databricks est une plateforme d’analytique des données. Ses clusters Spark complètement managés traitent de grands flux de données provenant de plusieurs sources. Azure Databricks peut transformer des données géospatiales à grande échelle en vue de leur utilisation à des fins d’analytique et de visualisation des données.
Data Lake Storage est un lac de données scalable et sécurisé pour vos charges de travail d’analytique hautes performances. Il peut traiter plusieurs pétaoctets d’informations tout en maintenant un débit de plusieurs centaines de gigabits. Les données proviennent généralement de plusieurs sources hétérogènes et peuvent être structurées, semi-structurées ou non structurées.
Azure Database pour PostgreSQL est un service de base de données relationnelle complètement managé, basé sur l’édition communautaire du moteur de base de données open source PostgreSQL.
PostGIS est une extension de la base de données PostgreSQL qui s’intègre aux serveurs GIS. PostGIS peut exécuter des requêtes d’emplacement SQL qui impliquent des objets géographiques.
Redis est un magasin de données en mémoire open source. Les caches Redis conservent les données fréquemment sollicitées dans la mémoire du serveur. Les caches peuvent ensuite traiter rapidement de grands volumes de requêtes d’application qui utilisent les données.
Power BI est une collection de services logiciels et d’applications. Vous pouvez utiliser Power BI pour connecter des sources de données non liées et créer des visuels.
Le visuel Azure Maps pour Power BI permet d’améliorer les cartes avec des données spatiales. Vous pouvez utiliser ce visuel pour montrer comment les données d’emplacement affectent les métriques métier.
Azure App Service et sa fonctionnalité Web Apps fournissent un framework pour la création, le déploiement et la mise à l’échelle d’applications web. La plateforme App Service offre une maintenance d’infrastructure intégrée, des correctifs de sécurité et une mise à l’échelle.
Les API de données GIS dans Azure Maps stockent et récupèrent les données cartographiques dans des formats tels que GeoJSON et mosaïques vectorielles.
Azure Data Explorer est un service d’analytique données rapide et complètement managé qui peut opérer avec de gros volumes de données. Ce service était initialement axé sur l’analytique des journaux et des séries chronologiques. Il gère désormais aussi divers flux de données provenant d’applications, de sites web, d’appareils IoT et d’autres sources. Les fonctionnalités géospatiales dans Azure Data Explorer fournissent des options pour le rendu des données cartographiques.
Azure Monitor collecte des données dans les environnements et ressources Azure. Ces informations de diagnostic sont utiles pour assurer le maintien de la disponibilité et des performances. Monitor se compose de deux plateformes de données :
- Journaux Azure Monitor enregistre et stocke les données de journaux et de performances.
- Métriques Azure Monitor collecte des valeurs numériques à intervalles réguliers.
Log Analytics est un outil du portail Azure qui exécute des requêtes sur les données des journaux Monitor. Log Analytics fournit également des fonctionnalités de création de graphiques et d’analyse statistique des résultats de requête.
Key Vault stocke et contrôle l’accès aux secrets tels que les jetons, mots de passe et clés API. Key Vault crée et contrôle également des clés de chiffrement et gère les certificats de sécurité.
Autres solutions
Au lieu de développer vos propres API, vous pouvez utiliser Martin. Ce serveur de mosaïques open source rend les mosaïques vectorielles disponibles pour les applications web. Écrit en Rust, Martin se connecte aux tables PostgreSQL. Vous pouvez le déployer en tant que conteneur.
Si votre objectif est de fournir une interface standardisée pour les données GIS, vous pourriez utiliser GeoServer. Ce framework ouvert implémente des protocoles OGC (Open Geospatial Consortium) de norme industrielle tels que WFS (Web Feature Service). Il s’intègre également avec les sources de données spatiales courantes. Vous pouvez déployer GeoServer en tant que conteneur sur une machine virtuelle. Lorsque les applications web personnalisées et les requêtes exploratoires sont secondaires, GeoServer offre un moyen simple de publier des données géospatiales.
Différentes bibliothèques Spark sont disponibles pour l’utilisation de données géospatiales sur Azure Databricks. Cette solution utilise les bibliothèques suivantes :
Les mosaïques vectorielles offrent un moyen efficace d’afficher des données GIS sur des cartes. Cette solution utilise PostGIS pour interroger des mosaïques vectorielles de manière dynamique. Cette approche fonctionne bien pour les requêtes simples et les jeux de résultats qui contiennent bien moins d’un million d’enregistrements. Mais dans les cas suivants, une approche différente peut être préférable :
- Vos requêtes sont coûteuses en termes de calcul
- Vos données ne changent pas fréquemment
- Vous affichez des jeux de données volumineux
Dans ces cas-là, vous pourriez utiliser Tippecanoe pour générer des mosaïques vectorielles. Vous pouvez exécuter Tippecanoe dans le cadre de votre flux de traitement de données, sous la forme d’un conteneur ou avec Azure Functions. Vous pouvez rendre les mosaïques obtenues accessibles par le biais d’API.
Comme Event Hubs, Azure IoT Hub peut ingérer de grandes quantités de données. Mais IoT Hub offre également des fonctionnalités de communication bidirectionnelle avec les appareils. Si vous recevez des données directement à partir d’appareils, mais que vous renvoyez également des commandes et des stratégies aux appareils, utilisez IoT Hub plutôt qu’Event Hubs.
Pour simplifier la solution, omettez les composants suivants :
- Explorateur de données Azure
- Power BI
Détails du scénario
Il existe de nombreuses possibilités pour travailler avec des données géospatiales, ou des informations qui incluent un composant géographique. Par exemple, les logiciels et les normes SIG (Geographic Information System) sont largement répandus. Ces technologies peuvent stocker, traiter et fournir l’accès à des données géospatiales. Toutefois, il est souvent difficile de configurer et de gérer les systèmes qui opèrent avec des données géospatiales. Vous avez également besoin de connaissances spéciales pour les intégrer à d’autres systèmes.
Cet article décrit une solution gérable pour mettre à disposition des volumes importants de données géospatiales à des fins d’analytique. L’approche est basée sur l’architecture de référence de l’analytique avancée et elle utilise les services Azure suivants :
- Azure Databricks avec les bibliothèques GIS Spark traite les données
- Azure Database pour PostgreSQL interroge les données que les utilisateurs demandent par le biais des API
- Azure Data Explorer exécute des requêtes exploratoires rapides
- Azure Maps crée des visuels de données géospatiales dans des applications web
- La fonctionnalité de visuel Azure Maps de Power BI fournit des rapports personnalisés
Cas d’usage potentiels
Cette solution s’applique à de nombreux domaines :
- Traitement, stockage et fourniture d’un accès à de grandes quantités de données raster, telles que des cartes ou des données climatiques
- Identification de la position géographique des entités système ERP (Enterprise Resource Planning)
- Combinaison de données d’emplacement d’entité et de données de référence GIS
- Stockage de télémétrie IoT (Internet des objets) à partir d’appareils mobiles
- Exécution de requêtes géospatiales analytiques
- Incorporation de données géospatiales curées et contextuelles dans des applications web
Considérations
Les considérations suivantes, basées sur Microsoft Azure Well-Architected Framework, s’appliquent à cette solution.
Disponibilité
Event Hubs répartit les risques d’échec entre les clusters.
- Utilisez un espace de noms avec des zones de disponibilité activées pour répartir les risques entre trois installations physiquement séparées.
- Pensez à utiliser la fonctionnalité de géo-reprise d’activité après sinistre d’Event Hubs. Cette fonctionnalité réplique l’intégralité de la configuration d’un espace de noms principal vers un espace de noms secondaire.
Consultez les fonctionnalités de continuité d’activité offertes par Azure Database pour PostgreSQL. Ces fonctionnalités couvrent un éventail d’objectifs de récupération.
Les diagnostics App Service vous avertissent en cas de problèmes dans les applications, tels que les temps d’arrêt. Utilisez ce service pour identifier, dépanner et résoudre les problèmes tels que les pannes.
Pensez à utiliser App Service pour sauvegarder les fichiers d’application. Toutefois, soyez vigilant avec les fichiers sauvegardés, qui incluent des paramètres d’application en texte brut. Ces paramètres peuvent contenir des secrets comme des chaînes de connexion.
Extensibilité
L’implémentation de cette solution remplit les conditions suivantes :
- Elle traite jusqu’à 10 millions de jeux de données par jour. Les jeux de données incluent des événements de lot ou de streaming
- Elle stocke 100 millions de jeux de données dans une base de données Azure Database pour PostgreSQL
- Elle interroge jusqu’à 1 million de jeux de données en même temps. Un maximum de 30 utilisateurs exécutent les requêtes
L’environnement utilise cette configuration :
- Un cluster Azure Databricks avec quatre nœuds Worker F8s_V2
- Une instance à mémoire optimisée d’Azure Database pour PostgreSQL
- Un plan App Service avec deux instances S2 standard
Tenez compte des facteurs suivants pour déterminer les ajustements à apporter à votre implémentation :
- Votre taux d’ingestion de données
- Votre volume de données
- Votre volume de requêtes
- Le nombre de requêtes parallèles que vous devez prendre en charge
Vous pouvez mettre à l’échelle les composants Azure indépendamment :
Event Hubs effectue un scale-up automatique pour répondre aux besoins d’utilisation. Prenez toutefois les mesures nécessaires pour gérer les unités de débit et optimiser les partitions
Data Factory gère de grandes quantités de données. Son architecture serverless prend en charge le parallélisme à différents niveaux
Azure Database pour PostgreSQL offre une mise à l’échelle horizontale à hautes performances
Les clusters Azure Databricks sont redimensionnés en fonction des besoins
Les applications web App Service peuvent subir un scale-up et un scale-out
La fonctionnalité de mise à l’échelle automatique de Monitor fournit également des fonctionnalités de mise à l’échelle. Vous pouvez configurer cette fonctionnalité de façon à ajouter des ressources pour gérer les augmentations de charge. Elle peut également supprimer des ressources afin d’économiser les coûts.
Sécurité
La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.
Protégez les données des mosaïques vectorielles. Les mosaïques vectorielles incorporent des coordonnées et des attributs pour plusieurs entités dans un même fichier. Si vous générez des mosaïques vectorielles, utilisez un ensemble de mosaïques dédié pour chaque niveau d’autorisation dans votre système de contrôle d’accès. Avec cette approche, seuls les utilisateurs au sein de chaque niveau d’autorisation ont accès au fichier de données de ce niveau.
Pour améliorer la sécurité, utilisez Key Vault dans les cas suivants :
Pour plus d’informations sur la façon dont App Service aide à sécuriser les applications web, consultez Sécurité dans Azure App service. Tenez également compte des points suivants :
Optimisation des coûts
L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.
- Pour estimer le coût de l’implémentation de cette solution, consultez un exemple de profil de coût. Ce profil concerne une implémentation unique de l’environnement décrit dans Considérations relatives à la scalabilité. Il n’inclut pas le coût d’Azure Data Explorer.
- Pour ajuster les paramètres et explorer le coût d’exécution de cette solution dans votre environnement, utilisez la Calculatrice de prix Azure.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Richard Bumann | Architecte de solution
Étapes suivantes
Documentation du produit :
- À propos d’Azure Event Hubs
- Concepts d’Azure Databricks
- Présentation d’Azure Data Lake Storage Gen2 (préversion)
- Présentation d’Azure Data Factory
- Vue d’ensemble d’Azure App Service
Pour commencer à implémenter cette solution, consultez les informations suivantes :
- Connecter un WFS à Azure Maps
- Traiter des données OpenStreetMap avec Spark.
- Explorer les différentes manières d’afficher des données avec Azure Maps.
Informations sur le traitement des données géospatiales
- Fonctions d’interrogation de PostGIS pour les mosaïques vectorielles
- Fonctions de chargement de rasters PostGIS
- Fonctions géospatiales Azure Data Explorer
- Sources de données pour les mosaïques vectorielles dans Azure Maps
- Approches du traitement des données géospatiales dans Databricks
Ressources associées
Architectures connexes
- Analytique du Big Data avec Azure Data Explorer
- Consortium des données d’intégrité sur Azure
- [DataOps pour l’entrepôt de données moderne] [DataOps pour l’entrepôt de données moderne]
- Analytique interactive avec Azure Data Explorer
- Architecture de référence géospatiale - Azure Orbital
- Analyse géospatiale pour les télécommunications
- Analyse de données spatiales avec Azure Synapse Analytics
Guides connexes
- Comparer les produits et technologies de Machine Learning de Microsoft - Azure Databricks
- Framework des opérations de machine learning (MLOps) pour améliorer le cycle de vie du machine learning avec Azure Machine Learning
- [Guide de décision Azure Machine Learning pour une sélection optimale des outils][Guide de décision Azure Machine Learning pour une sélection optimale des outils]
- Superviser Azure Databricks