La plupart des organisations stockent des données importantes sur plusieurs systèmes différents, et les outils de chargement ou d’intégration de données tels que les pipelines et les outils d’extraction, de transformation et de chargement (ETL) sont essentiels pour déplacer les données entre ces différents systèmes afin qu’elles puissent être combinées et analysées par rapport à d’autres sources ou utilisées pour maintenir à jour d’autres données pertinentes.
De nombreuses solutions techniques différentes permettent de déplacer des données, des solutions manuelles dans lesquelles les données sont copiées à la demande aux systèmes automatisés qui effectuent des transformations de données complexes.
L’utilisation du terme « intégration » en ce qui concerne les pipelines de données ou les ETL est compliquée, car les intégrations impliquent généralement un accès plus proche ou plus en temps réel aux données. Les ETL sont un outil approprié pour transférer des données d’un système à un autre lorsque les modifications sont peu fréquentes ou lorsque l’accès aux données ne dépend pas de la dernière copie des données, par exemple lorsqu’une synchronisation nocturne est suffisante. À ce niveau, ils répondent à de nombreuses exigences d’intégration, même si la connexion est de nature asynchrone.
ArcGIS Data Pipelines est une fonctionnalité d’ArcGIS Online qui assure la prise en charge embarquée de l’intégration pour la connexion de vos données à ArcGIS. Avec Data Pipelines, vous pouvez vous connecter à des données et les lire à partir de leur emplacement de stockage, effectuer des opérations de préparation des données et écrire les données sur une couche d’entités hébergée qui est immédiatement disponible dans ArcGIS. Vous pouvez utiliser l’interface Data Pipelines sans code pour créer, exécuter, planifier et reproduire vos processus de préparation des données.
Data Pipelines utilise des données vectorielles (par exemple, des points, des lignes et des polygones) ainsi que des données tabulaires (comme des données représentées sous forme de table). Vous pouvez vous connecter à diverses sources de données, notamment Amazon S3, Google BigQuery, Snowflake, des couches d’entités, des fichiers locaux chargés, etc. Après vous être connecté, vous utilisez des outils pour mélanger, créer et intégrer des jeux de données à insérer dans vos processus.
Les outils disponibles dans Data Pipelines sont classés en jeux d’outils dotés de fonctionnalités pour nettoyer, créer, intégrer et mettre en forme les données. Les processus suivants sont ainsi pris en charge par les outils de Data Pipelines :
Pendant la création d’un pipeline de données et la configuration des outils, il est possible d’afficher un aperçu des résultats à chaque étape de traitement sous forme de carte ou de table, en triant éventuellement les colonnes de la table pour inspecter les lignes, par exemple les valeurs minimales, maximales et nulles. L’inspection itérative et l’application d’outils de préparation des données peuvent contribuer à améliorer la qualité et l’assurance des données tout au long du traitement.
Une fois que vous avez terminé la configuration du pipeline de données, vous pouvez l’exécuter pour créer ou mettre à jour une couche d’entités ArcGIS, disponible dans votre contenu. Vous pouvez configurer des propriétés temporelles et de géométrie pour la couche d’entités en sortie afin qu’elle soit prête à l’emploi dans d’autres processus tels que l’analyse spatiale ou temporelle, les tableaux de bord ou les cartes Web.
Data Pipelines peut constituer un choix pertinent dans les situations suivantes :
Pour plus d’informations sur Data Pipelines, consultez Présentation d’ArcGIS Data Pipelines.
L’extension ArcGIS Data Interoperability est un ensemble d’outils spatiaux d’extraction, de transformation et de chargement (ETL) pour ArcGIS Pro et ArcGIS Enterprise qui s’exécute soit par le biais d’outils autonomes, soit dans l’infrastructure de géotraitement. L’interopérabilité des données est construite à partir de la technologie FME de Safe Software et est compatible avec celui-ci.
L’interopérabilité des données offre aux utilisateurs une expérience de création dépourvue de code à l’aide de l’application bureautique Workbench, avec le travail enregistré dans des fichiers Workbench locaux ou en tant qu’outils ETL spatiaux dans une boîte à outils de projet. Les workbench peuvent se connecter à une multitude de sources de données, effectuer des opérations simples ou complexes sur des données en transit, et écrire des données vers un large éventail de destinations. Il s’agit d’un système ETL complet, où les workbench peuvent être exécutés manuellement à des fins d’inspection ou de test, automatisés pour s’exécuter régulièrement ou invoqués dans le cadre d’un service de géotraitement.
L’interopérabilité des données fournit trois applications bureautiques (Workbench, Data Inspector et Quick Translator) accessibles dans ArcGIS Pro. Les résultats des outils ETL peuvent également être partagés avec ArcGIS Server en tant qu’outils Web, comme tout résultat de géotraitement. Cela vous permet de publier des ETL accessibles en tant que services Web, par exemple dans un widget de géotraitement Web AppBuilder.
L’interopérabilité des données peut être une option appropriée dans les situations suivantes :
Pour plus d’informations sur l’interopérabilité des données, consultez les ressources suivantes :
Une autre approche courante de la création d’ETL consiste à utiliser Python, généralement en le combinant à arcpy et au module arcgis de l’API Python d’ArcGIS. La communauté des développeurs Python, ainsi que de nombreux fournisseurs commerciaux, ont créé des centaines de bibliothèques qui aident à se connecter à presque toutes les sources de données imaginables, des clients de base de données aux types de stockage, en passant par les analyseurs de fichiers et les bibliothèques de clients Web. Cela signifie que toute source de données à laquelle vous pouvez vous connecter peut être extraite en Python, transformée ou remodelée, et transférée vers une sortie, qui, dans un système basé sur ArcGIS, est souvent une couche d’entités modifiable, un fichier image ou un ensemble de données 3D.
Un modèle courant consiste à utiliser un Notebook exploitant les protocoles d’accès aux données standards du secteur. Par exemple, lors de l’intégration à un entrepôt Cloud, installez le paquetage d’accès à la base de données conforme à la norme PEP 249 de l’entrepôt afin que le Notebook puisse utiliser le traitement SQL standard ou basé sur un curseur.
Une tendance émergente consiste à écrire des ETL basés sur Python qui tirent parti de l’accès aux fichiers à distance via HTTP à l’aide de l’API S3 qui est désormais courante chez les fournisseurs de stockage de l’industrie. Ce modèle s’applique aux object stores Cloud hébergeant des types de fichiers bien connus tels qu’Apache Parquet, GeoParquet, JSON ou CSV, et qui sont activés par l’extension de l’environnement Python. Cette approche permet de lire ou d’écrire des fichiers comme s’ils se trouvaient dans une base de données compatible SQL, avec prise en charge du partitionnement d’une seule table logique sur n’importe quel nombre de fichiers physiques pour tirer parti du traitement parallèle sur l’ensemble de fichiers. Ensemble, ces deux approches vous permettent d’effectuer des ETL sur des entrepôts Cloud et des object stores Cloud en bénéficiant de performances puissantes et d’un ensemble complet de fonctionnalités.
Un ETL basé sur Python peut convenir dans les situations suivantes :
De nombreuses autres offres ETL sont disponibles auprès de fournisseurs de Cloud, d’éditeurs de logiciels indépendants et d’outils open source. Chacune de ces offres prend en charge différentes entrées, processeurs et sorties, il est donc important de prendre en compte les exigences liées aux mouvements des données de votre système avant de choisir une offre. ArcGIS Data Pipelines et ArcGIS Data Interoperability offrent tous deux une expérience sans code et incluent des connexions prédéfinies pour écrire des données dans ArcGIS, ce qui peut constituer un gain d’efficacité important lors de la création d’un système qui implémente le modèle sans code.
Cette section fournit plusieurs exemples de stratégies d’utilisation des processus de migration de données, à l’aide de différentes technologies et s’accompagne de conseils et d’instructions utiles à chaque stratégie. Ces exemples doivent être utilisés pour créer vos processus de migration de données organisationnelles, et non utilisés en l’état ou sans examen.
Ce modèle repose uniquement sur ArcGIS Pro.
L’un des formats de fichiers partagés les plus courants est le format CSV, également connu sous le nom de fichiers ASCII ou de fichiers texte. Il est suivi de près par les classeurs Microsoft Excel. Les fichiers CSV et Excel sont populaires pour leur facilité de partage, de lecture (par les machines et les personnes) et d’écriture dans de nombreuses applications. Les fichiers CSV et Excel avec des colonnes de coordonnées peuvent être utilisés directement dans ArcGIS Pro, éventuellement après conversion de la notation des coordonnées ou géocodage. Les rubriques d’aide ci-dessus fournissent de bons conseils sur l’utilisation standard des fichiers. Cependant, dans un contexte ETL (dans lequel vous souhaitez atteindre les données et les préparer pour les utiliser), il existe d’autres problèmes courants à surmonter :
Cet exemple montre comment gérer les problèmes de ce type avec un minimum d’effort à l’aide des outils de base.
Ce modèle repose sur ArcGIS Pro ainsi que sur un environnement Python Notebook étendu.
Les object stores Cloud tels qu’Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, MinIO ou d’autres offrent un mécanisme de partage de fichiers économique et performant, avec prise en charge d’un accès sécurisé ou public. Considérez le stockage d’objets différemment d’un « système de fichiers distant » dans le stockage Cloud, qui, à des fins ETL, peut être considéré comme des données locales. Actuellement, les connexions au stockage Cloud dans ArcGIS Pro prennent uniquement en charge les données raster. Ainsi, l’expérience de catalogue dans ArcGIS Pro, y compris les connexions aux dossiers, n’affiche pas les données vectorielles hébergées dans le Cloud telles qu’Apache Parquet ou GeoParquet, JSON, GeoJSON, CSV ou Excel, tous des formats sources ETL courants. Il est possible de dépasser cette limitation en étendant l’environnement Pro Python pour fournir la prise en charge du système de fichiers virtuel pour les stockages Cloud et pour traiter les fichiers distants comme des objets de base de données relationnelles, à savoir DuckDB. Les éditeurs de données peuvent travailler à n’importe quelle échelle, tout comme vous, de sorte que les ETL de fichiers bien connus hébergés dans le Cloud doivent prendre en charge les opérations suivantes :
Cet exemple montre comment gérer ces exigences avec les mêmes outils flexibles.
Ce modèle utilise Data Pipelines pour gérer les couches d’entités existantes créées par d’autres moyens.
ArcGIS Data Pipelines peut se suffire à lui-même en tant que solution ETL, mais il peut être considéré comme un outil de maintenance pour les couches d’entités hébergées créées par d’autres moyens dans les deux cas suivants :
Les processus existants peuvent être adéquats, voire nécessaires, pour créer vos couches, mais ne pas offrir les avantages de Data Pipelines en termes de facilité d’utilisation, de modèle de partage organisationnel, d’hébergement SaaS et de capacité de planification. En pareille situation, vous pouvez songer à utiliser Data Pipelines comme un outil de maintenance.
Cet exemple montre un exemple simple de maintenance de la couche hébergée.
Ce modèle utilise un notebook Python hébergé dans ArcGIS Online avec un environnement d’exécution Python étendu pour accéder à un object store Cloud contenant des données au format GeoParquet.
L’extension des environnements d’exécution pour ArcGIS Pro et ArcGIS Enterprise Notebook Server sont des modèles courants, mais un modèle moins connu permet d’obtenir le même résultat dans un notebook hébergé ArcGIS Online. Les bibliothèques Python disponibles dans les environnements d’exécution Python standard incluent les gestionnaires de paquets conda et pip, pip étant généralement l’option la plus simple. Si vous avez besoin d’une connectivité à un système externe qui offre une interface Python, il est probable qu’il soit disponible et simplement installé à partir de PyPi.
Cet exemple utilise pip pour étendre l’exécution de l’environnement d’exécution du notebook local et DuckDB pour accéder aux données du thème Places d’Overture Maps Foundation (un exemple d’accès à un object store Amazon S3 par une requête de partitionnement hive), ce qui signifie que dans ce cas, n’importe quel nombre de fichiers GeoParquet est accessible par une requête générique. Une fois consultées et interrogées, les données sont utilisées pour actualiser une couche d’entités hébergée de lieux d’intérêt à Londres, en Angleterre (et peuvent prendre en charge n’importe quelle autre localisation dans le monde).
Ce modèle utilise un notebook Online avec un environnement d’exécution étendu pour prendre en charge la lecture ou l’écriture de Snowflake. Tout entrepôt Cloud est accessible de la même manière.
Ce modèle est similaire aux notebooks ArcGIS Online et GeoParquet natif du Cloud en ce sens qu’il utilise un conteneur d’exécution étendu, mais qu’il ajoute la puissance de traitement d’un entrepôt Cloud. ArcGIS Pro et Enterprise prennent en charge la connectivité à Snowflake et à d’autres entrepôts de données Cloud pour créer des couches de requête, qui peuvent être utilisées comme entrée pour les outils de géotraitement ou visualisées dans des cartes ArcGIS Pro ou des cartes Web, mais l’utilisation de ce modèle apporte la puissance de SQL au traitement de votre notebook ArcGIS Online. En plus d’être une base de données, un entrepôt Cloud est également un écosystème de partage de données : d’autres organisations peuvent partager des données de n’importe quelle échelle dans l’entrepôt et combiner ces données pour générer des informations et de nouveaux résultats.
Cet exemple gère une couche d’entités hébergée de lieux d’intérêt à San Francisco, en Californie (ou partout ailleurs dans le monde, selon le lieu que vous définissez). Les données proviennent du jeu de données Places de SafeGraph, partenaire commercial d’Esri.
Ce modèle utilise ArcGIS Pro et l’extension ArcGIS Data Interoperability pour automatiser la création ou l’importation de métadonnées pendant le traitement ETL.
La documentation du contenu et des étapes de traitement des éléments dans ArcGIS est essentielle à la facilité d’utilisation et à la confiance envers les données, mais il s’agit d’une activité facilement négligée, ce qui rend l’automatisation des étapes génératives très précieuse. En traitement ETL, on utilise souvent des données externes, ce qui constitue une autre interruption courante par rapport au flux de métadonnées ArcGIS.
Cet exemple montre comment créer ou moissonner des métadonnées dans des processus ETL qui gèrent un service d’entités hébergé, mais qui sont tout aussi valides avec d’autres sorties, telles que des géodatabases.
Ce modèle utilise des connexions ArcGIS Pro et OLE DB pour se connecter à une source de données externe compatible ODBC.
Bien qu’ArcGIS prenne en charge de nombreuses plateformes de base de données connues, ArcGIS Pro peut établir davantage de connexions à des données relationnelles, locales ou distantes, à l’aide de sources de données OLE DB standards. Celles-ci étendent les options de connexion à la base de données dans ArcGIS Pro, rendant accessibles des sources de données supplémentaires pour les processus de cartographie, d’ingénierie et d’analyse, y compris l’ETL. Les connexions peuvent être partagées sur votre réseau. Si vous avez besoin d’utiliser des données dans une base de données externe, les connexions OLE DB sont une option simple et généralement disponible. Au-delà de la prise en charge intégrée d’ArcGIS, certains lacs de données et entrepôts Cloud proposent également des pilotes ODBC pour simplifier la connectivité.
Cet exemple montre comment les outils ArcGIS peuvent utiliser une connexion OLE DB pour enrichir des données tabulaires non prises en charge, en appliquant la structure souhaitée et en envoyant le résultat persistant sous forme de classe d’entités de géodatabase.
Ce modèle utilise ArcGIS Pro et l’extension ArcGIS Data Interoperability pour interagir avec une API qui renvoie des réponses volumineuses par pagination, sous forme de blocs JSON qui doivent ensuite être analysés.
Les API REST basées sur HTTP renvoient souvent une réponse JSON, un code plébiscité à la fois pour sa lisibilité (par les personnes ou les machines) et sa flexibilité, mais les objets JSON comportent des types généraux et sont souvent non structurés et non ordonnés. Pour des raisons de réactivité, les API peuvent renvoyer un jeu de données logiques en morceaux (« pages ») générés séquentiellement, mais qui doivent être agrégés au niveau du client. Une stratégie nécessitant peu de code permet de surmonter facilement ces deux écueils de la pagination et de l’analyse dans un schéma défini.
Cet exemple montre comment interagir avec une API de pagination pour synchroniser quotidiennement les données avec une couche d’entités hébergée sur ArcGIS Online.
Ce modèle utilise ArcGIS Pro, les outils Web ArcGIS Enterprise et, éventuellement, ArcGIS Data Interoperability.
L’approche organisationnelle la plus répandue pour tout travail, informatisé ou non, est peut-être la répétition planifiée. À partir d’ArcGIS Pro 3.4 et d’ArcGIS Enterprise 11.4, les outils Web (services de géotraitement) créés dans ArcGIS Pro peuvent également être planifiés dans ArcGIS Pro. Les outils de géotraitement qui effectuent des opérations ETL peuvent être créés en tant qu’outils de script Python, modèles ModelBuilder ou outils ETL spatiaux d’interopérabilité des données, partagés en tant qu’outils Web, puis planifiés à partir du menu Run (Exécuter) de l’outil dans ArcGIS Pro. Pour que ce modèle fonctionne, il est essentiel de s’assurer que les paramètres de votre jeu de données en entrée et en sortie sont inscrits auprès d’ArcGIS Enterprise ou accessibles à partir de celui-ci et qu’ils ne sont pas chargés en tant que copies statiques au moment de la publication.
Cet exemple fournit un exemple d’outil Web ETL spatial, programmé pour s’exécuter deux fois par jour, afin de mettre en miroir un flux RSS dans une couche d’entités hébergée par ArcGIS Online.