Pipelines de données et ETL

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

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 :

  • Manipuler les structures des jeux de données en mettant à jour ou en ajoutant des champs
  • Sélectionner un sous-ensemble de champs pour en extraire des informations ciblées
  • Rechercher et remplacer des valeurs attributaires pour nettoyer ou simplifier les données
  • Combiner les jeux de données au moyen d’une fonction de jointure ou de fusion
  • Calculer les champs à l’aide de fonctions Arcade
  • Créer des champs de géométrie ou des champs temporels pour les utiliser lors d’une analyse spatiale ou temporelle
  • Annuler l’imbrication d’objets JSON dans une colonne
  • Apparier les champs entre les structures

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 :

  • Il est intéressant de passer d’une solution sans code à une solution nécessitant peu de code.
  • Vous créez ou gérez des couches d’entités hébergées dans ArcGIS Online.
  • Les services en sortie contiennent une seule couche d’entités.
  • Les couches de sortie ne sont pas à l’origine des relations.
  • Les utilisateurs désirent un outil SaaS géré avec le contenu de votre organisation.
  • L’aperçu permet de détecter la qualité des données.
  • La taille des données est modérée (jusqu’à plusieurs millions, en fonction de la largeur des lignes)

Pour plus d’informations sur Data Pipelines, consultez Présentation d’ArcGIS Data Pipelines.

Interopérabilité des données ArcGIS

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 :

  • Une solution sans code est souhaitée.
  • Vous devez lire ou écrire des types de données qui ne sont pas pris en charge.
  • Vous devez générer des modèles de données complexes.
  • L’intégration du géotraitement est souhaitée.
  • Une inspection approfondie des données est nécessaire pour découvrir les problèmes liés à la qualité.
  • Une prise en charge approfondie des types de données complexes est nécessaire (par exemple, Excel)

Pour plus d’informations sur l’interopérabilité des données, consultez les ressources suivantes :

Autres options ETL

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 :

  • Votre organisation dispose des compétences Python et de la bande passante nécessaires pour gérer une base de code.
  • Vous cherchez à maximiser et à gérer soigneusement les performances ETL.
  • Vous avez besoin d’une fonctionnalité ou d’une connectivité spéciale ou qui n’est pas prise en charge, à une source de données ou à un fournisseur spécifique avec un module Python disponible publiquement.

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.

ETL et stratégies de migration des données

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.

Fichiers locaux connus

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 :

  • Les fichiers peuvent être stockés sur le Web ou générés à partir d’une URL de requête API
    • Dans ce cas, le chemin d’accès au fichier peut ne pas être validé dans ArcGIS Pro et le fichier doit être téléchargé pour être utilisé.
  • La structure des fichiers (noms et types de colonnes) est déduit des données.
    • Vous pouvez remplacer la structure par défaut par des définitions de type de données de champ spécifiques.
  • Les colonnes de coordonnées peuvent initialement être stockées dans une notation non prise en charge.
  • Les valeurs des données peuvent être codées, par exemple en stockant des valeurs nulles sous forme de zéros.

Cet exemple montre comment gérer les problèmes de ce type avec un minimum d’effort à l’aide des outils de base.

Fichiers connus natifs du Cloud ou hébergés dans le Cloud

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 :

  • Importation de fichiers uniques
  • Importation simultanée d’un nombre illimité de fichiers
  • Importation de vues spatiales ou logiques d’un nombre illimité de fichiers

Cet exemple montre comment gérer ces exigences avec les mêmes outils flexibles.

Gestion des couches d’entités à l’aide d’ArcGIS Data Pipelines

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 couches d’entités hébergées héritées sont déjà en production.
  • Il existe des complexités telles que les services multicouches ou les classes de relations.
    • Data Pipelines ne peut pas créer de services avec ces propriétés.

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.

Notebooks ArcGIS Online et au format GeoParquet natif du Cloud

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).

Notebooks ArcGIS Online et un entrepôt de données Cloud

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.

Automatisation des métadonnées

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.

Connexions OLE DB et ODBC

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.

Accès aux API distantes

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.

Planification des ETL en tant qu’outils Web

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.

Top