Spatial-ETL für Talend: Geodaten nahtlos in Talend-ETL-Prozesse integrieren

Spatial-ETL für Talend: Geodaten nahtlos in Talend-ETL-Prozesse integrieren

Bislang wurden Geodaten aufgrund ihrer Vielfalt an Formaten und räumlichen Bezugssystemen sowie ihren spezifischen geometrischen Operatoren, wie Verschneiden, Puffern, Enthaltensein etc., in traditionellen Datenintegrationsprozessen nur als Sonderfall oder auch gar nicht berücksichtigt – dabei wird die Integration von räumlichen Daten in datengesteuerte Entscheidungsprozesse immer wichtiger! Die erhöhte Verfügbarkeit von Daten durch Sensoren, mobile Endgeräte, soziale Medien und private oder öffentliche Geodaten bietet Unternehmen und Institutionen viele neue Möglichkeiten der Datenanreicherung und -analyse.

Mit dem Disy-Plugin GeoSpatial Integration für Talend haben wir eine professionelle Erweiterung speziell zur Integration von Geodaten in ETL-Prozesse von Talend geschaffen, welche die speziellen Bedürfnisse und Anforderungen zur Verarbeitung von Geodaten in Talend perfekt unterstützt.

Wenn wir von räumlichen Daten oder auch Geodaten sprechen, meinen wir jegliche Art von Daten, die Informationen über den Ort und die Form von Objekten auf der Erde beinhalten. Dies können beispielsweise Datensätze sein von Unternehmen, Gebäuden, Personen oder Fahrzeugen mit Namen, Typen und Farben, wobei zusätzliche XY-Koordinaten deren aktuelle oder dauerhafte Position auf der Erde liefern. Objekte der realen Welt liegen jedoch nicht nur als Punkte vor, sondern können auch in komplexeren geometrischen Formen dargestellt werden. Linien mit mehreren Knoten beschreiben beispielsweise eine Straße, einen Fluss oder sogar die Bewegungen eines Autos oder einer Person. Mit Polygonen können zusätzlich Gebäude, Siedlungen, Geschäfte oder Waldgebiete definiert werden.

Anhand eines praktischen Beispiels zeigen wir Ihnen in diesem Beitrag, wie Sie Ihre ETL-Prozesse mit Geodaten anreichern und damit zu Spatial-ETL-Prozesse transformieren können.

Was kann GeoSpatial Integration für Talend?

Das Spatial-ETL-Plugin erweitert Talend, indem es Zugriff auf räumliche Datenbanken und Formate wie Oracle Locator/Spatial, PostGIS, SpatiaLite, Shapefiles und Well-Known Text (WKT) bietet. Darüber hinaus erweitert das Plugin die Palette der Talend-Komponenten um einen vollständigen Satz geometrischer Operatoren wie Flächen- oder Längenrechner, Puffer, Zentroid, Verschneidung und vieles mehr, um räumliche Aufgaben und Workflows zu automatisieren. Damit wird aus Talend als Plattform für „Data Integration“ eine Plattform für „Geo Data Integration“ oder „GIS Data Integration“. 

Das folgende Bild zeigt einen Spatial-ETL-Prozess mit den neu hinzugefügten Komponenten.

Abb. 1: Eine Übersicht über die geometrischen Operationen von GeoSpatial Integration für Talend

 

Um den praktischen Nutzen und die Funktionsweise vorzustellen, betrachten wir folgendes Anwendungsbeispiel:

In einem Windpark steht jede Turbine als einzelnes Standortobjekt (also als Punkt) zur Verfügung. Wir möchten die gesamte Fläche des Windparks berechnen. „Geometrisch“ gesprochen berechnen wir die konvexe Hülle aller Punkte, die zu diesem Windpark gehören.

Unsere Beispielübung umfasst damit die folgenden Schritte:

  1. Definition der Metadaten für die neue Datenquelle (Shapefile)
  2. Definition des Talend-Jobs, um die Windparkfläche mithilfe einer geometrischen Operation zu berechnen
  3. Ausführen des Jobs und Schreiben der Resultate in eine Datei oder Datenbank

Mit diesem einfachen Prozess können Sie die Gesamtfläche des Windparks bestimmen und visualisieren. Auf dieser Basis lassen sich weitere Planungsschritte, beispielsweise im Bereich Straßenbau oder Naturschutz, vornehmen.

Um bei unserer Beispielübung selbst mitzumachen, laden Sie zunächst eine aktuelle Version von Talend Open Studio für Data Integration und zusätzlich das Disy-Plugin „GeoSpatial Integration für Talend“ herunter und installieren Sie beides. Im Downloadpaket von Disy sind alle Daten enthalten, die Sie benötigen, um bei diesem Tutorial mitzumachen:

 

Schritt 1: Definition der Metadaten, um die Geometrien aus einer Datei oder Datenbank zu laden

 

Damit wir uns ein besseres Bild der Lage unserer Windkraftanlagen machen können, haben wir die einzelnen Standorte mit Hilfe von Cadenza visualisiert. In der Karte sieht man sofort, welche Turbinen zusammen einen Park bilden (siehe Abb. 2). 

Abb. 2: In der Karte finden wir die einzelnen Windturbinen als Punkte wieder.

 

Zunächst werden wir die Metadaten für unsere neue Datenquelle in Talend definieren. Auf diese Weise können wir diese Datenquelle für den Beispieljob und andere zukünftige Jobs verwenden.

Im Repository-Baum von Talend wählen Sie Metadata -> File Shapefile -> Create file shapefile.

 

Abb. 3: Metadaten werden angelegt

 

Es öffnet sich ein Dialog, bei dem Sie den Namen und einen Verwendungszweck angeben sowie das Shapefile Windfarm.shp auswählen. Nachdem Sie die Daten, die mit dem Disy-Plugin ausgeliefert werden, entpackt haben, sollten Sie die Datei unter \Disy_GeoSpatial_Sample_Data\in\DataPreparation wiederfinden. Die Schema-Informationen wie Spaltennamen und Datentypen werden automatisch importiert. Bei Bedarf können Anpassungen vorgenommen werden (z. B. Einstellen des Primärschlüssels, wenn dieser nicht in den Datensätzen angegeben wurde). Klicken Sie auf Finish.

Das Shapefile wird nun in die Talend-Metadaten aufgenommen und kann für den nächsten Schritt oder für jeden anderen Job, den Sie mit diesen Daten beginnen möchten, verwendet werden.

 

Schritt 2: Einen Talend-Job mit den räumlichen Operatoren erstellen


In diesem Schritt generieren wir mit Hilfe der unten abgebildeten Geometriefunktionen die Geometrie einer konvexen Hülle, die alle Windräder abdeckt (siehe Abb. 4).
 

Abb. 4: Alle Windräder eines Windparks in konvexer Hülle

 

Dazu müssen Sie in Talend einen neuen Job erstellen und einen Namen, einen Zweck und eine Beschreibung definieren. Legen Sie dann die neue Datenquelle „Windfarm“ (im vorherigen Schritt erstellt) per „Drag&Drop“ im Arbeitsbereich des Jobs an. Automatisch öffnet sich ein Dialog, in dem Sie die gewünschte Komponente auswählen können. Da wir mit einem Shapefile arbeiten, wählen Sie "dShapeFileInput" aus.

Abb. 5: Wir wählen die gewünschte Komponente „dShapeFileInput“ aus.

 

Da wir die konvexe Hülle unserer Punkte berechnen möchten, wählen Sie aus der Palette unter Disy GeoSpatial > Geom Operation die Komponente dAggregateGeometryRow aus und ziehen Sie sie in die Arbeitsfläche des Jobs. Zwischen beiden Komponenten legen Sie eine Main-Row-Verbindung an (rechter Mausklick auf dShapeInput->main->row und Verbindung auf dAggregate GeometryRow ziehen).

Abb. 6: Eine Main-Row-Verbindung wird angelegt.

 

Zum Schluss müssen wir das Ausgabeformat (Output) definieren. In unserem Fall ist es ein einfaches Shapefile, das nur den Namen des Windparks und die neu erstellten Geometrien enthält. Wählen Sie daher die Komponente dAggregateGeometryRow aus und navigieren Sie zur Registerkarte "Component". Klicken Sie auf die Schaltfläche "EditSchema", um das Ausgabeschema der Komponente zu definieren. Durch Klicken auf die Schaltfläche „Add“ (Symbol „+“) erstellen wir zwei neue Spalten „Name“ (Typ: STRING, Länge: 80) und „ConvexHull“ (Typ: DGeometry).

Da unsere Quelldatei Punkte aus verschiedenen Windparks enthält und wir eine konvexe Hülle der Windräder eines jeden Windparks generieren möchten, müssen die Windräderpunkte nach dem Namen jedes Windparks gruppiert werden. Dies gelingt, indem die Eigenschaft „Group by“ der Komponente „dAggregateGeometryRow_1“ für die Spalte „NAME“ definiert wird.

Zusätzliche sollten in der Operators-Sektion die folgenden Einstellungen gewählt werden:

  • Output column = CONVEXHULL
  • Function = Convex hull
  • Input column = SHAPE

Abb. 7: Funktion sowie In- und Output-Einstellungen werden ausgewählt

 

Fügen Sie dem Arbeitsbereich eine tMap-Komponente hinzu (Palette -> Verarbeitung -> tMap) und erstellen Sie eine Verbindung („main row“) zwischen der dAggregateGeometryRow- und der tMap-Komponente. Damit die einzelnen ETL-Prozessschritte einfacher nachvollziehbar sind, haben wir die neue Main-Row-Verbindung in „convex_hull“ umbenannt (siehe Abb. 8).

Abb. 8: Die neue Main-Row-Verbindung heißt jetzt convex_hull (Main).

 

Öffnen Sie die tMap-Komponente mit einem Doppelklick, legen Sie einen neuen Output-Daten-Strom an und nennen Sie ihn z. B. „Out1“.


Abb. 9: Ein neuer Datenstrom wird angelegt.

 

Jetzt können wir den Input-Datenstrom per Drag & Drop auf den Output-Datenstrom abbilden, wie unten gezeigt. Es ist empfehlenswert, eine eindeutige Kennung für alle Ausgabedatensätze zu erstellen. In unserem Beispiel erstellen wir daher eine neue "ID"-Spalte für den Unique Identifier als "Integer"-Datentyp, indem wir die Numeric.sequence-Funktion ("s1", 1,1) verwenden (siehe Abb. 10 und 11):

Abb. 10: Name und Convexhull werden markiert…

 

Abb. 11: … und auf den Output-Datenstrom abgebildet.

 

Legen Sie im Ausgangsdatenstrom eine neue Spalte „ID“ für den eindeutigen Identifikator an. Wählen Sie als Datentyp „Integer“ und setzen Sie einen Haken bei Schlüsselwert.

Abb. 12: Im Ausgangsdatenstrom wird eine neue Spalte „ID“ angelegt.

 

Die neu erstellten Geo- und Attributdaten werden als Shapefile gespeichert. Verwenden Sie hierzu die Komponente dShapefileOutput. Ziehen Sie diese aus der Palette unter Disy GeoSpatial -> File -> Shapefile in die Arbeitsfläche des Jobs. Verbinden Sie die tMap-Komponente mit dShapeFileOutput und verwenden Sie dabei den Namen Ihres tMap-Outputs: im Beispiel „out1“

Abb. 13: Der Output wird als Shapefile gespeichert.

 

Um den Output-Stream anzupassen, navigieren Sie zu den Komponenteneigenschaften und wählen Sie den Speicherort des Shapefiles. Wählen Sie das gleiche Koordinatenreferenzsystem aus, das in der Datenquelle definiert ist. In unserem Beispiel ist es EPSG: 3857 (a.k.a WGS84 oder Web Mercator), siehe Abb. 14.

Abb. 14: Auswahl des Koordinatenreferenzsystems

 

Schritt 3: Führen Sie den Job aus und schreiben Sie die Ergebnisgeometrien in eine Datei oder Datenbank



Jetzt können Sie den Job ausführen und die Ausgabedateien werden in der von Ihnen angegebenen Datei zur weiteren Verwendung gespeichert. Nach der Ausführung Ihres Jobs sollte Ihr ETL-Prozess nun so aussehen:

Abb. 15: So sollte Ihr Spatial-ETL-Job jetzt aussehen.


Herzlichen Glückwünsch! Sie haben gerade Ihren ersten Spatial-ETL-Job mit Talend und GeoSpatial Integration für Talend bearbeitet. In der Karte, die wir wieder mit Cadenza erstellt haben, sehen wir unser Ergebnis visualisiert (siehe Abb. 16).

Abb. 16: Die Flächen der Windparks sind klar erkennbar, auch die Standorte der einzelnen Windturbinen sind markiert.


Weitere Anwendungsszenarien für GeoSpatial Integration für Talend

Wenn man kurz über das oben geschilderte Anwendungsszenario nachdenkt, fallen einem noch viele andere Beispiele ein, bei denen räumliche Informationen und Vorgänge für Geschäftsentscheidungen von Nutzen sind.

Man könnte beispielsweise…

… den besten Standort für ein Geschäft basierend auf demografischen Daten und Entfernungen zu bereits vorhandenen Geschäften berechnen.

… den Standort von Webseiten-Besuchern mit mobilen Endgeräten analysieren, um spezielle ortsbezogene Angebote zu aktivieren.

… neue Gegenden identifizieren, in denen Offline-Marketing die gewünschte Zielgruppe am besten erreicht.

… das Reporting um zusätzliche Geo-Informationen erweitern und vertiefende räumliche Analysen durchführen.

Nach dem Download des Plugins GeoSpatial Integration für Talend finden Sie weitere Anwendungsbeispiele. Probieren Sie es aus! Sie können das Plugin kostenlos mit Talend Open Studio verwenden. Für professionellen Support in einer Produktionsumgebung, Teamarbeit und in Verbindung mit Talend Data Integration oder der Talend Data Management Platform bietet Disy auch ein Abo-Modell (Subscription) für GeoSpatial Integration für Talend an.

 

Über den Autor

Dr. Wassilios Kazakos

Leiter Marketing, Business Development bei Disy.

E-Mail: geospatial@disy.net

 Dr. Wassilios Kazakos hat an der Universität Karlsruhe Informatik studiert und hat dort promoviert. Nach seinem Studium war er mehrere Jahre im Forschungszentrum Informatik (FZI) in Karlsruhe tätig, zunächst als Wissenschaftlicher Mitarbeiter und später als Leiter der Abteilung Datenbanksysteme. Nach seiner Zeit im FZI und bis heute ist er bei der Disy Informationssysteme GmbH in unterschiedlichen Funktionen tätig. Aktuell ist er Leiter Marketing, Business Development. Sein tiefes Verständnis der Kundenbedürfnisse in Kombination mit seinem Hintergrund in der Informatik macht ihn zu einem hoch geschätzten Experten für raumdatengetriebene Anwendungen.

 

Kontakt: Disy Informationssysteme GmbH

Dr. Wassilios Kazakos
geospatial@disy.net
www.disy.net/geospatial

An der Diskussion teilnehmen

0 Comments

Hinterlasse eine Antwort

Your email address will not be published. Required fields are marked *