Data Pipelines und ETLs

Die meisten Organisationen speichern wichtige Daten in mehreren verschiedenen Systemen, und Werkzeuge zum Laden oder Integrieren von Daten wie Pipelines und ETL-Werkzeuge (Extract, Transform and Load) sind entscheidend für das Verschieben von Daten zwischen diesen verschiedenen Systemen, damit sie mit anderen Quellen kombiniert und analysiert oder verwendet werden können, um andere relevante Daten auf dem neuesten Stand zu halten.

Für das Verschieben von Daten können viele verschiedene technische Lösungen verwendet werden, von manuellen Lösungen, bei denen Daten bei Bedarf kopiert werden, bis hin zu automatisierten Systemen, die komplizierte Datentransformationen durchführen.

Die Verwendung des Begriffs “Integration” in Bezug auf Data Pipelines oder ETLs ist kompliziert, da Integrationen in der Regel einen engeren oder eher in Echtzeit erfolgenden Zugriff auf Daten implizieren. ETLs sind ein geeignetes Werkzeug zum Verschieben von Daten zwischen Systemen, wenn Änderungen entweder selten auftreten oder wenn der Zugriff auf die Daten nicht auf die absolut neueste Kopie der Daten angewiesen ist, z. B. wenn eine nächtliche Synchronisierung ausreicht. Auf dieser Ebene erfüllen sie viele Integrationsanforderungen, obwohl die Verbindung asynchron ist.

ArcGIS Data Pipelines

ArcGIS Data Pipelines ist eine ArcGIS Online-Funktion, die integrierte Integrationsunterstützung für die Verbindung Ihrer Daten mit ArcGIS bietet. Mit Data Pipelines können Sie eine Verbindung mit Ihren Daten an deren Speicherort herstellen und die Daten auslesen, Arbeitsschritte zur Datenvorbereitung durchführen und die Daten in einen gehosteten Feature-Layer schreiben, der in ArcGIS verfügbar ist. Auf der No-Code-Oberfläche von Data Pipelines können Sie Datenvorbereitungs-Workflows erstellen, ausführen, planen und reproduzieren.

Data Pipelines arbeitet mit Vektordaten (z. B. Punkten, Linien und Polygonen) und mit Tabellendaten (z. B. in Tabellenform dargestellte Daten). Sie können Verbindungen mit einer Vielzahl von Datenquellen herstellen, darunter Amazon S3, Google BigQuery, Snowflake, Feature-Layer, hochgeladene lokale Dateien und mehr. Nachdem die Verbindung hergestellt wurde, können Sie Werkzeuge verwenden, um Datensets für die Nutzung in Ihren Workflows miteinander zu kombinieren, zu erstellen und zu integrieren.

Die in Data Pipelines verfügbaren Werkzeuge sind in Toolsets mit Funktionen wie Bereinigen, Erstellen, Integrieren und Formatieren kategorisiert. Beispielsweise werden die folgenden Workflows von Data Pipelines-Werkzeugen unterstützt:

  • Bearbeiten von Datensatzschemas durch Aktualisieren oder Hinzufügen von Feldern
  • Auswählen einer Teilmenge von Feldern, um zielgerichtete Informationen zu extrahieren
  • Suchen und Ersetzen von Attributwerten, um die Daten zu bereinigen oder zu vereinfachen
  • Kombinieren von Datasets mit der Funktion “Verbinden” oder “Zusammenführen”
  • Berechnen von Feldern mit Arcade-Funktionen
  • Erstellen von Geometrie- oder Zeitfeldern für räumliche oder zeitliche Analysen
  • Aufheben der Verschachtelung von JSON-Objekten in einer Spalte
  • Zuordnen von Feldern zwischen Schemas

Beim Erstellen einer Data Pipeline und Konfigurieren von Werkzeugen können Sie bei jedem Verarbeitungsschritt eine Vorschau der Ergebnisse als Karte oder Tabelle anzeigen und optional Tabellenspalten sortieren, um Zeilen zu überprüfen, z. B. Minimal-, Maximal- und NULL-Werte. Die iterative Überprüfung und Anwendung von Datenvorbereitungswerkzeugen kann dazu beitragen, die Datenqualität und die Qualitätssicherung während des gesamten Prozesses zu verbessern.

Wenn Sie die Konfiguration der Data Pipeline fertiggestellt haben, können Sie sie ausführen, um einen ArcGIS-Feature-Layer zu erstellen oder zu aktualisieren, der in Ihren Inhalten verfügbar ist. Sie können Geometrie- und Zeiteigenschaften für den Ausgabe-Feature-Layer konfigurieren, sodass er für zusätzliche Workflows wie räumliche oder zeitliche Analysen, Dashboards oder Webkarten verwendet werden kann.

Data Pipelines können in folgenden Fällen eine geeignete Wahl sein:

  • Eine No-Code- bis Low-Code-Lösung ist attraktiv.
  • Sie erstellen oder verwalten gehostete Feature-Layer in ArcGIS Online.
  • Die Ausgabe-Services enthalten einen einzelnen Feature-Layer.
  • Die Ausgabe-Layer sind nicht der Ursprung von Beziehungen.
  • Sie wünschen ein SaaS-Werkzeug, das mit den Inhalten Ihrer Organisation verwaltet wird.
  • Die Datenqualität kann in der Vorschau ermittelt werden.
  • Die Datengröße ist moderat (bis zu mehreren Millionen, abhängig von der Zeilenbreite).

Weitere Informationen zu Data Pipelines finden Sie unter Einführung in Data Pipelines.

ArcGIS Data Interoperability

Bei der Erweiterung “ArcGIS Data Interoperability” handelt es sich um ein ETL-Toolset für räumliche Extraktions-, Transformations- und Ladefunktionen (ETL) für ArcGIS Pro und ArcGIS Enterprise, das entweder über eigenständige Werkzeuge oder in der Geoverarbeitungsumgebung ausgeführt wird. Data Interoperability basiert auf dem FME-Produkt von Safe Software und ist mit diesem kompatibel.

Data Interoperability ermöglicht Benutzern die No-Code-Erstellung mit der Workbench-Desktop-App, wobei die Arbeit in lokalen Workbench-Dateien oder als Spatial ETL-Werkzeuge in einer Projekt-Toolbox gespeichert wird. Workbenches können eine Verbindung mit einer Vielzahl von Datenquellen herstellen, einfache oder komplexe Vorgänge mit Daten während der Übertragung ausführen und dann Daten an eine Vielzahl von Zielen schreiben. Hierbei handelt es sich um ein ETL-System mit vollem Funktionsumfang, in dem Workbenches manuell zu Prüf- oder Testzwecken ausgeführt, automatisiert und regelmäßig ausgeführt oder als Teil eines Geoverarbeitungsservice aufgerufen werden können.

Data Interoperability bietet drei Desktop-Apps (Workbench, Data Inspector und Quick Translator), auf die über ArcGIS Pro zugegriffen werden kann. ETL-Werkzeugergebnisse können wie jedes andere Geoverarbeitungsergebnis auch als Web-Werkzeuge für ArcGIS Server freigegeben werden. Auf diese Weise können Sie ETLs veröffentlichen, auf die als Web-Services zugegriffen werden kann, z. B. in einem Web AppBuilder-Geoverarbeitungs-Widget.

Data Interoperability kann in folgenden Fällen eine geeignete Option sein:

  • Es wird eine No-Code-Lösung gewünscht.
  • Sie müssen ansonsten nicht unterstützte Datentypen lesen oder schreiben.
  • Sie müssen komplexe Datenmodelle ausgeben.
  • Die Integration der Geoverarbeitung wird gewünscht.
  • Eine gründliche Überprüfung der Daten ist erforderlich, um Qualitätsprobleme aufzudecken.
  • Umfassende Unterstützung für komplexe Datentypen ist erforderlich (z. B. Excel).

Weitere Informationen zu Data Interoperability finden Sie in den folgenden Ressourcen:

Weitere ETL-Optionen

Ein weiterer gängiger Ansatz zum Erstellen von ETLs ist die Verwendung von Python, in der Regel in Kombination mit arcpy und dem arcgis-Modul von ArcGIS Python API. Die Python-Entwickler-Community hat zusammen mit vielen kommerziellen Anbietern Hunderte von Bibliotheken erstellt, die bei der Verbindung mit fast jeder erdenklichen Datenquelle helfen, von Datenbank-Clients über Speichertypen bis hin zu Datei-Parsern und Web-Client-Bibliotheken. Das bedeutet, dass jede Datenquelle, mit der Sie eine Verbindung herstellen können, in Python übernommen, transformiert oder umgeformt und in eine Ausgabe übertragen werden kann, bei der es sich in einem ArcGIS-basierten System häufig um einen editierbaren Feature-Layer, eine Bilddatei oder ein 3D-Dataset handelt.

Ein beliebtes Muster ist die Verwendung eines Notebooks, das die Vorteile von standardisierten Datenzugriffsprotokollen nutzt. Bei der Integration in ein Cloud Warehouse beispielsweise installieren Sie das PEP 249-kompatible Datenbankzugriffspaket des Warehouse, damit das Notebook Standard-SQL oder cursorbasierte Verarbeitung verwenden kann.

Ein sich abzeichnendes Muster besteht darin, Python-basierte ETLs zu schreiben, die den Remote-Dateizugriff über HTTP mithilfe der S3-API nutzen, die jetzt bei Speicheranbietern in der Branche üblich ist. Dieses Muster gilt für Cloud-Objektspeicher, die bekannte Dateitypen wie Apache Parquet, GeoParquet, JSON oder CSV hosten, was durch die Erweiterung der Python-Umgebung ermöglicht wird. Dieser Ansatz ermöglicht das Lesen oder Schreiben von Dateien, als befänden sie sich in einer SQL-kompatiblen Datenbank, mit Unterstützung für die Partitionierung einer einzelnen logischen Tabelle über eine beliebige Anzahl physischer Dateien, um die Vorteile der parallelen Verarbeitung über die gesamte Gruppe von Dateien hinweg zu nutzen. Zusammen ermöglichen Ihnen diese beiden Ansätze die Durchführung von ETL für Cloud Warehouses und Cloud-Objektspeicher mit hoher Performance und einem vollständigen Feature-Set.

Python-basierte ETLs können in folgenden Fällen geeignet sein:

  • Ihre Organisation verfügt über die Python-Kenntnisse und die Bandbreite zum Verwalten einer Codebasis.
  • Sie möchten die ETL-Performance maximieren und sorgfältig verwalten.
  • Sie benötigen eine spezielle ansonsten nicht unterstützte Funktion oder Konnektivität mit einer bestimmten Datenquelle oder einem bestimmten Anbieter mit einem öffentlich verfügbaren Python-Modul.

Viele weitere ETL-Angebote sind von Cloud-Anbietern, unabhängigen Softwareanbietern und über Open-Source-Werkzeuge erhältlich. Da jedes dieser Angebote unterschiedliche Eingaben, Prozessoren und Ausgaben unterstützt, ist es wichtig, die Anforderungen an die Datenverschiebung für Ihr System zu berücksichtigen, bevor Sie sich für ein Angebot entscheiden. Sowohl ArcGIS Data Pipelines als auch ArcGIS Data Interoperability bieten No-Code-Funktionen und enthalten vorgefertigte Verbindungen zum Schreiben von Daten in ArcGIS, was bei der Erstellung eines Systems, das das No-Code-Muster implementiert, eine wichtige Effizienzsteigerung darstellen kann.

ETL und Datenmigrationsstrategien

In diesem Abschnitt finden Sie mehrere Beispielstrategien für die Arbeit mit Datenmigrations-Workflows unter Verwendung verschiedener Technologien sowie nützliche Tipps und Richtlinien für jede Strategie. Diese Beispiele sollten verwendet werden, um Ihre organisatorischen Datenmigrations-Workflows zu erstellen, und nicht unverändert oder ohne Überprüfung verwendet werden.

Lokale bekannte Dateien

Dieses Muster basiert nur auf ArcGIS Pro.

Eines der gebräuchlichsten freigegebenen Dateiformate ist CSV – kommagetrennte Werte, auch bekannt als ASCII-Dateien oder Textdateien, dicht gefolgt von Microsoft Excel-Arbeitsmappen. CSV- und Excel-Dateien sind beliebt, weil sie in vielen Anwendungen einfach freizugeben, zu lesen (auch von Menschen) und zu schreiben sind. CSV- und Excel-Dateien mit Koordinatenspalten können direkt in Pro verwendet werden, möglicherweise nach der Konvertierung der Koordinatenschreibweise oder der Geokodierung. Die oben verlinkten Hilfethemen bieten eine gute Anleitung zur Verwendung von Standarddateien. In einem ETL-Kontext – in dem Sie Daten erreichen und dann für die Verwendung vorbereiten möchten – gibt es jedoch andere häufige Probleme, die überwunden werden müssen:

  • Dateien können im Web gespeichert sein oder über eine API-Anforderungs-URL generiert werden.
    • In diesen Fällen wird der Dateipfad in ArcGIS Pro möglicherweise nicht validiert, und die Datei sollte zur Verwendung heruntergeladen werden
  • Das Schema der Dateien (Spaltennamen und -typen) wird aus den Daten abgeleitet.
    • Möglicherweise möchten Sie das Standardschema mit bestimmten Felddatentypdefinitionen überschreiben.
  • Koordinatenspalten können zunächst in einer nicht unterstützten Schreibweise gespeichert sein.
  • Datenwerte können codiert sein, z. B. durch Speichern von NULL-Werten als Nullen.

Dieses Beispiel zeigt, wie Sie diese Probleme mit minimalem Aufwand mithilfe grundlegender Werkzeuge behandeln können.

Cloud-native oder in der Cloud gehostete bekannte Dateien

Dieses Muster basiert auf ArcGIS Pro und einer erweiterten Python Notebook-Umgebung.

Cloud-Objektspeicher wie Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, MinIO oder andere bieten einen kostengünstigen und performanten Dateifreigabemechanismus mit Unterstützung für gesicherten oder öffentlichen Zugriff. Betrachten Sie Objektspeicher anders als ein “Remote-Dateisystem” in Cloud-Speicher, das für ETL-Zwecke als lokale Daten betrachtet werden kann. Derzeit unterstützen Cloud-Speicher-Verbindungen in Pro nur Raster-Daten, sodass im Katalog in ArcGIS Pro, einschließlich Ordnerverbindungen, keine in der Cloud gehosteten Vektordaten wie Apache Parquet oder GeoParquet, JSON, GeoJSON, CSV oder Excel (alles gängige ETL-Quellformate) angezeigt werden. Diese Einschränkung kann umgangen werden, indem die Python-Umgebung in Pro erweitert wird, um Unterstützung für virtuelle Dateisysteme für Cloud-Speicher bereitzustellen und Remote-Dateien als relationale Datenbankobjekte (DuckDB) zu behandeln. Daten-Publisher können in jeder Größenordnung arbeiten, genau wie Sie, daher muss das in der Cloud gehostete ETL für bekannte Dateien Folgendes unterstützen:

  • Importieren einzelner Dateien
  • Gleichzeitiges Importieren beliebig vieler Dateien
  • Importieren von räumlichen oder logischen Ansichten beliebig vieler Dateien

Dieses Beispiel zeigt, wie Sie diese Anforderungen mit mithilfe der gleichen flexiblen Werkzeuge behandeln können.

Verwalten von Feature-Layern mit ArcGIS Data Pipelines

In diesem Muster wird Data Pipelines verwendet, um vorhandene Feature-Layer zu verwalten, die auf andere Weise erstellt wurden.

ArcGIS Data Pipelines kann als eigenständige ETL-Lösung dienen, aber es gibt zwei Fälle, in denen es als Wartungswerkzeug für gehostete Feature-Layer, die auf andere Weise erstellt wurden, in Betracht gezogen werden kann:

  • Ältere gehostete Feature-Layer werden bereits in der Produktion verwendet.
  • Es gibt Komplexitäten wie Multilayer-Services oder Beziehungsklassen.
    • Data Pipelines kann keine Services mit diesen Eigenschaften erstellen.

Vorhandene Workflows können angemessen oder sogar notwendig sein, um Ihre Layer zu erstellen, bieten jedoch nicht die Vorteile von Data Pipelines in Bezug auf Benutzerfreundlichkeit, Modell für Freigaben in der Organisation, SaaS-Hosting und Planungsfunktionen. In dieser Situation können Sie Data Pipelines als Wartungswerkzeug in Betracht ziehen.

Dieses Beispiel ist ein einfaches Beispiel für die Wartung gehosteter Layer.

ArcGIS Online-Notebooks und Cloud-natives GeoParquet

In diesem Muster wird ein gehostetes Python-Notebook in ArcGIS Online mit einer Python-Runtime-Umgebung verwendet. Diese wurde für den Zugriff auf einen Cloud-Objektspeicher, der Daten im GeoParquet-Format enthält, erweitert.

Das Erweitern der Runtime-Umgebungen für ArcGIS Pro und ArcGIS Enterprise Notebook Server ist ein gängiges Muster, aber ein weniger bekanntes Muster kann das gleiche Ergebnis in einem von ArcGIS Online gehosteten Notebook erzielen. Zu den verfügbaren Python-Bibliotheken in den standardmäßigen Python-Runtimes gehören die Paket-Manager conda und pip, wobei pip im Allgemeinen die einfachere Option ist. Wenn Sie Konnektivität mit einem externen System benötigen, das eine Python-Schnittstelle bietet, ist diese wahrscheinlich verfügbar und wird einfach über PyPi installiert.

In diesem Beispiel wird pip verwendet, um die lokale Notebook-Runtime zu erweitern, und DuckDB, um auf Daten aus dem Places-Design der Overture Maps Foundation zuzugreifen – ein Beispiel für den Zugriff auf einen Amazon S3-Objektspeicher über eine Hive-Partitionsabfrage. Das bedeutet, dass in diesem Fall über eine Platzhalterabfrage auf eine beliebige Anzahl von GeoParquet-Dateien zugegriffen wird. Nach dem Zugriff und der Abfrage werden die Daten verwendet, um einen gehosteten Feature-Layer mit Sehenswürdigkeiten in London, England, zu aktualisieren (wobei auch jeder andere Ort weltweit unterstützt werden kann).

ArcGIS Online-Notebooks und ein Cloud Data Warehouse

In diesem Muster wird ein Online-Notebook mit einer Runtime verwendet, die erweitert wurde, um das Lesen oder Schreiben von Snowflake zu unterstützen. Auf jedes Cloud-Warehouse kann auf ähnliche Weise zugegriffen werden.

Dieses Muster ähnelt ArcGIS Online-Notebooks und dem Cloud-nativen GeoParquet insofern, als es einen Container mit erweiterter Runtime verwendet, aber die Verarbeitungsleistung eines Cloud Warehouse hinzufügt. ArcGIS Pro und Enterprise unterstützen die Konnektivität mit Snowflake und anderen Cloud-Data Warehouses zum Erstellen von Abfrage-Layern, die als Eingabe für Geoverarbeitungswerkzeuge verwendet oder in ArcGIS Pro-Karten oder Webkarten visualisiert werden können. Die Verwendung dieses Musters bietet jedoch die Leistungsfähigkeit von SQL bei der Online-Notebook-Verarbeitung. Ein Cloud Warehouse ist nicht nur eine Datenbank, sondern auch ein Ökosystem für die Datenfreigabe – andere Organisationen können Daten jeder Größenordnung im Warehouse freigeben und diese Daten kombinieren, um Erkenntnisse und neue Ergebnisse zu generieren.

In diesem Beispiel wird ein gehosteter Feature-Layer mit Sehenswürdigkeiten in San Francisco, Kalifornien, (oder an einem anderen von Ihnen definierten Ort weltweit) verwaltet. Die Daten stammen aus dem Places-Dataset von SafeGraph, einem Esri Business Partner.

Automatisierung von Metadaten

In diesem Muster werden ArcGIS Pro und die Erweiterung “ArcGIS Data Interoperability” verwendet, um das Erstellen oder Importieren von Metadaten während der ETL-Verarbeitung zu automatisieren.

Das Dokumentieren des Inhalts und der Verarbeitungsschritte für Elemente in ArcGIS ist der Schlüssel zu Benutzerfreundlichkeit und Vertrauen. Da dies jedoch eine leicht zu übersehende Aktivität ist, ist die Automatisierung generativer Schritte sehr wertvoll. In ETL arbeiten Sie häufig mit externen Daten, was eine weitere häufige Unterbrechung des ArcGIS-Metadatenflusses darstellt.

In diesem Beispiel wird gezeigt, wie die Erstellung oder das Harvesten von Metadaten in ETL-Workflows integriert wird, die einen gehosteten Feature-Service verwalten, aber gleichermaßen mit anderen Ausgaben, wie z. B. Geodatabases, kompatibel sind.

OLE-DB- und ODBC-Verbindungen

In diesem Muster werden ArcGIS Pro und OLE-DB-Verbindungen verwendet, um eine Verbindung mit einer externen ODBC-kompatiblen Datenquelle herzustellen.

ArcGIS unterstützt zwar viele gängige Datenbankplattformen, aber in ArcGIS Pro können mithilfe von OLE-DB-Datenquellen nach Branchenstandard mehr Verbindungen (lokal oder remote) mit relationalen Daten hergestellt werden. Dadurch werden die Datenbankverbindungsoptionen in ArcGIS Pro erweitert, sodass zusätzliche Datenquellen für Kartenerstellungs-, Data-Engineering- und Analyse-Workflows, einschließlich ETL, zugänglich sind. Verbindungen können in Ihrem Netzwerk freigegeben werden. Wenn Sie mit Daten in einer externen Datenbank arbeiten müssen, sind OLE-DB-Verbindungen eine einfache und in der Regel verfügbare Option. Neben der integrierten Unterstützung in ArcGIS bieten einige Cloud Data Lakes und Warehouses auch ODBC-Treiber, um die Konnektivität zu vereinfachen.

In diesem Beispiel wird gezeigt, wie ArcGIS-Werkzeuge mithilfe einer OLE-DB-Verbindung nicht unterstützte Tabellendaten anreichern, ein gewünschtes Schema anwenden und das Ergebnis als dauerhafte Geodatabase-Feature-Class senden können.

Zugreifen auf Remote-APIs

In diesem Muster werden ArcGIS Pro und die Erweiterung “ArcGIS Data Interoperability” verwendet, um mit einer API zu interagieren, die große Antworten durch Paginierung zurückgibt – in JSON-Blöcken, für die dann Parsing erforderlich ist, damit sie geparst werden können.

HTTP-basierte REST-APIs geben häufig eine JSON-Antwort zurück, die aufgrund der Kombination aus Lesbarkeit (für Menschen oder Computer) und Flexibilität beliebt ist, aber die JSON-Objekte sind lose typisiert und oft unstrukturiert und ungeordnet. Aus Gründen der Reaktionsfähigkeit können APIs ein logisches Dataset in Teilen (“Seiten”) zurückgeben, das sequenziell generiert wird, aber auf dem Client aggregiert werden muss. Diese beiden Herausforderungen der Paginierung und des Parsens in ein definiertes Schema lassen sich mit einer Low-Code-Strategie leicht lösen.

In diesem Beispiel wird gezeigt, wie Sie mit einer Seitenverwaltungs-API interagieren, um täglich Daten mit einem in ArcGIS Online gehosteten Feature-Layer zu synchronisieren.

Planen von ETLs als Web-Werkzeuge

In diesem Muster werden ArcGIS Pro, ArcGIS Enterprise-Web-Werkzeuge und optional ArcGIS Data Interoperability verwendet.

Der vielleicht vorherrschende organisatorische Ansatz für jede Arbeit, ob computergestützt oder nicht, ist die Wiederholung nach einem Zeitplan. Ab ArcGIS Pro 3.4 und ArcGIS Enterprise 11.4 können Web-Werkzeuge (Geoverarbeitungsservices), die in ArcGIS Pro erstellt wurden, auch in ArcGIS Pro geplant werden. Geoverarbeitungswerkzeuge, die ETL-Aufgaben ausführen, können als Python-Skriptwerkzeuge, ModelBuilder-Modelle oder Spatial ETL-Werkzeuge von Data Interoperability erstellt, als Web-Werkzeuge freigegeben und dann über das Menü Ausführen des Werkzeugs in ArcGIS Pro geplant werden. Damit dieses Muster funktioniert, müssen Sie sicherstellen, dass Ihre Eingabe- und Ausgabe-Dataset-Parameter in ArcGIS Enterprise registriert sind oder für ArcGIS Enterprise zugänglich sind und nicht zum Zeitpunkt der Veröffentlichung als statische Kopien hochgeladen werden.

Dieses Beispiel zeigt ein Spatial ETL-Web-Werkzeug, das zweimal täglich ausgeführt werden soll, um einen RSS-Feed in einen in ArcGIS Online gehosteten Feature-Layer zu spiegeln.

Top