Workshop „Einführung in Geokettle“ 13.03.2015 1 Agenda 13.03.2015 ● Vorstellung GeoKettle ● Wichtige Begriffe ● Erste Schritte mit GeoKettle ● Transformationen anlegen und bearbeiten ● Import Shapefile in Datenbank ● Koordinatentransformation ● Veränderung von Sachdaten ● Aufsplitten von Shapefiles FOSSGIS 2015 in Münster 2 Lernziel ● Kennenlernen von GeoKettle. ● Grundbegriffe in GeoKettle kennen. ● Starten von GeoKettle und zurechtfinden in der Benutzeroberfläche. ● Kennenlernen von verschiedenen Transformationen ● Anlegen und bearbeiten von eigenen Transformationen 13.03.2015 3 1 Vorstellung GeoKettle 13.03.2015 FOSSGIS 2015 in Münster Was ist GeoKettle? ● GeoKettle ist eine ETL-Programm für räumliche Daten – E => Extract – T => Transform – L => Load 13.03.2015 FOSSGIS 2015 in Münster Was ist GeoKettle? ● ● Es basiert auf der OpenSource-Software Pentaho Data Integration (Kettle) GeoKettle unterstützt viele OpenSource Bibliotheken – JTS – GeoTools – deegree – gdal/ogr – sextante 13.03.2015 FOSSGIS 2015 in Münster Betriebsarten ● Es existieren mehrere Möglichkeiten mit GeoKettle zu arbeiten: – Spoon – Pan – Kitchen – Carte 13.03.2015 FOSSGIS 2015 in Münster Spoon ● ● Graphische Oberfläche, um Transformationen und Jobs zu erstellen. Die hier angelegten Transformationen und Jobs werden entweder als xml (.ktr) oder in einer Datenbank (Repository) abgespeichert. 13.03.2015 FOSSGIS 2015 in Münster Pan/Kitchen ● ● ● Pan ist ein Programm, das Transformationen ausführt, die in spoon erstellt wurden. Kitchen ist ein Programm, das Jobs ausführt, die in spoon erstellt wurden. Beide arbeiten mit der Kommandozeile und werden unter Windows über mit pan.bat/kitchen.bat und unter Linux und OSX mit pan.sh/kitchen.sh aufgerufen. 13.03.2015 FOSSGIS 2015 in Münster 2. Wichtige Begriffe 13.03.2015 FOSSGIS 2015 in Münster Repository ● ● Speicherung von Transformationen und Jobs in einer Datenbank. Datenbank wird Repository genannt. Vorteile: – Es können mehrere Benutzer auf einen zentralen Bestand zugreifen. – Der Zugang zur Datenbank ist mandantenfähig (Rechte/Rollen). – Es können Änderungen an den Transformationen und Jobs nachvollzogen werden. 13.03.2015 FOSSGIS 2015 in Münster Transformation ● ● ● Eine Transformation besteht aus einem Satz an Operationen, die mit den Daten vollzogen werden sollen. Sie bestehen aus mehreren Steps, die durch Hops verbunden werden. In den Transformationen wird mit den Daten „gearbeitet“. 13.03.2015 FOSSGIS 2015 in Münster Hops in Transformationen ● Es gibt drei verschieden Arten von Hops: copy – copy – distribute – conditional distribute conditional 13.03.2015 FOSSGIS 2015 in Münster Job ● ● ● Jobs sind den Transformationen „übergeordnet“. Sie kontrollieren den Ablauf von Transformationen und/oder anderer Jobs. Die Schritte in den Jobs werden immer nacheinander abgearbeitet (Innerhalb einer Transformationen kann auch parallel gearbeitet werden). 13.03.2015 FOSSGIS 2015 in Münster Hops in Jobs ● Bei den Jobs gibt es zwei verschiedene Hop-Arten: – unconditional (werden immer ausgeführt) – conditional (wird in Abhängigkeit vom vorherigen Ergebnis ausgeführt) 13.03.2015 FOSSGIS 2015 in Münster 3. Erste Schritte mit GeoKettle 13.03.2015 FOSSGIS 2015 in Münster Starten von GeoKettle ● GeoKettle wird über die üblichen Wege gestartet. ● Im „Begrüßungsbildschirm“ gibt es zwei Möglichkeiten – Starten ohne Repository => Dateibasiert – Starten mit Respository => Datenbankbasiert 13.03.2015 FOSSGIS 2015 in Münster Benutzeroberfläche (Ubuntu) Hauptmenü Menüleiste Arbeitsfläche Sidebar Ergebnisanzeige 13.03.2015 FOSSGIS 2015 in Münster Benutzeroberfläche / Sidebar 13.03.2015 FOSSGIS 2015 in Münster Benutzeroberfläche / Ergebnisanzeige (Step Metrics) ● Erscheint erst, wenn eine Transformation/Job ausgeführt wird. ● Zeigt den aktuellen Bearbeitungszustand der Steps an. 13.03.2015 FOSSGIS 2015 in Münster Benutzeroberfläche / Ergebnisanzeige (Logging) Log löschen Nur Fehler anzeigen 13.03.2015 Einstellungen fürs Logging FOSSGIS 2015 in Münster Benutzeroberfläche / Menüleiste (1) Erscheint nur bei Inhalten im Hauptfenster neu/öffnen Speichern/ Speichern unter Funktionen um Transformationen zu: ●starten ●unterbrechen ●stoppen ●vorschau ●debuggen ●nochmals auszuführen 13.03.2015 FOSSGIS 2015 in Münster Benutzeroberfläche / Menüleiste (2) Funktionen, um : ●Transformationen zu verifizieren ●Den Einfluss auf DB zu untersuchen ●Ein SQL zu erstellen ●Bestehende DB­ Verbindungen zu untersuchen 13.03.2015 Ergebnisanzeige öffnen/schließen Zoomfaktor der Arbeitsfläche ändern FOSSGIS 2015 in Münster 4. Transformationen anlegen und bearbeiten 13.03.2015 FOSSGIS 2015 in Münster Transformation ● ● ● Eine Transformation besteht aus einem Satz an Operationen, die mit den Daten vollzogen werden sollen. Sie bestehen aus mehreren Steps, die durch Hops verbunden werden. In den Transformationen wird mit den Daten „gearbeitet“. 13.03.2015 FOSSGIS 2015 in Münster Arten von Transformationen Die einzelnen Transformationsschritte sind in folgende Gruppen aufgeteilt ● ● Input Validation ● Output ● Statistics ● Transform ● Job ● Utility ● Mapping ● Flow ● Inline ● Scripting ● Experimental ● Lookup ● Deprecated ● Joins ● Bulk Loading ● Data Warehouse 13.03.2015 FOSSGIS 2015 in Münster Anlegen von Transformationen ● Es gibt mehrere Wege eine neue Transformation anzulegen: – Crtl + N (immer) – Über das Hauptmenü File | New | Transformation – Über Menüleiste (nur bei geöffnetem Inhalt im Hauptfenster) 13.03.2015 FOSSGIS 2015 in Münster Einfügen von Steps ● ● ● Steps können in eine Transformation aus der Sidebar in das Hauptfenster gezogen werden. Dazu muss in der Sidebar „Design“ ausgewählt sein. Steps können auch per Copy-Paste aus bestehenden Transformationen eingefügt werden. 13.03.2015 FOSSGIS 2015 in Münster Bearbeiten von Steps ● Mit einem Doppelklick auf den gewünschten Step lässt sich dieser jederzeit bearbeiten. 13.03.2015 FOSSGIS 2015 in Münster Verbinden von Steps 1. 2 Steps auswählen 2. Rechte Maustaste 3. „New hop“ auswählen 4. Steps und Richtung festlegen 13.03.2015 FOSSGIS 2015 in Münster Bearbeiten von Hops ● Mit der rechten Maustaste muss auf den Hop geklickt werden. ● Dann stehen einem folgende Möglichkeiten zur Verfügung – Edit hop – Flip direction – Disable hop – Delete hop 13.03.2015 FOSSGIS 2015 in Münster 4.1 Import Shapefile in Datenbank 13.03.2015 FOSSGIS 2015 in Münster Transformation / Input ● Es können eine Vielzahl von Datenformaten für den Input genutzt werden. – Über 35 Datenbanken (u.a. PostgreSQL, Oracle, MySQL, …) – Shapefiles, GML, KML, OGR – OGC Web services – XML – MS Access – LDAP – Excel, CSV, txt – Etc. 13.03.2015 FOSSGIS 2015 in Münster ESRI Shapefile Input Eindeutigen Namen vergeben Shapefile festlegen Encoding festlegen Anzahl der zu importierenden Datensätze 13.03.2015 FOSSGIS 2015 in Münster Shapefile - Preview ● ● ● Man kann sich die Daten in einer Vorschau anzeigen lassen. Zuerst muss die Anzahl der Reihen/Objekte festgelegt werden, die man sehen möchte. Man kann sich – die Attributdaten und/oder – die Geometrien anzeigen lassen. 13.03.2015 FOSSGIS 2015 in Münster Shapefile – Preview Attributdaten 13.03.2015 FOSSGIS 2015 in Münster Shapefile – Vorschau Geometrie 13.03.2015 FOSSGIS 2015 in Münster ● Es gibt eine Vielzahl an Outputformate, z. B. – Räumliche Datenbanken – Datenformate – shp ● GML ● KML ● OGR uvm. ● 13.03.2015 FOSSGIS 2015 in Münster Outputformate Output - PostgreSQL-Datenbank Eindeutigen Namen vergeben DB­Verbindung spezifizieren Tabelle vorm Import leeren „Mapping“ für Daten aktivieren 13.03.2015 FOSSGIS 2015 in Münster ● ● ● Speichern in einer nicht bestehenden DB-Tabelle Beim ersten Benutzen muss eine Datenbankverbindung erstellt werden. Wenn ein anderes Datenbankschema als „public“ benutzt werden soll, muss das unter „Target schema“ eingegeben werden. Bestehende Tabellen können unter „Target table“ eingegeben oder über „Browse“ ausgesucht werden. 13.03.2015 FOSSGIS 2015 in Münster 1. Es muss eine Verbindung zwischen Input und Output bestehen 2. DB-Verbindung und Tabellennamen festlegen Neue Tabelle anlegen (1) 2. 4. 3. 3. „Specify database fields“ aktivieren 4. In den Reiter „Database fields“ wechseln. 13.03.2015 FOSSGIS 2015 in Münster Neue Tabelle anlegen (2) 5. „Get fields“ drücken, um die Spalten aus dem Input zu erhalten 5. 6. Table fields können noch einmal geändert werden. 7. Button „SQL“ drücken 7. 13.03.2015 FOSSGIS 2015 in Münster Neue Tabelle anlegen (3) 8. SQL-Statement ggf. noch einmal anpassen. 9. Button „Execute“ drücken 8. 9. 13.03.2015 FOSSGIS 2015 in Münster ● ● Speichern in bestehende Tabellen Bei bestehenden Tabellen muss kein SQL ausgeführt werden. Wenn die Zuordnung der Spalten von Input zu Output nicht eindeutig ist, kann die Zuordnung über die Funktion „Enter Field mapping“ vorgenommen werden. 13.03.2015 FOSSGIS 2015 in Münster Übung 1: Transformation – Input/Output (1) ● ● Erstellen Sie eine neue Transformation, bei der ein Shapefile in eine Postgres-Tabelle eingelesen wird. – Shapefile: railways.shp – Postgres-Tabelle ● Datenbank-Typ: PostgreSQL ● Host: localhost ● Port: 5432 ● DB-Name: osm_local ● User: user ● Password: user Wiederholen Sie den Vorgang für die Shapfiles – buildings.shp – roads.shp 13.03.2015 FOSSGIS 2015 in Münster 4.2 Koordinatentransformation 13.03.2015 FOSSGIS 2015 in Münster ● ● ● Transform - Allgemein Unter Transform befinden sich viele Steps, mit denen man die Daten direkt manipulieren kann. Unter Ihnen befinden sich sowohl Steps mit räumlichen Funktionen – Set SRS – SRS Transform – Spatial Analysis Als auch Steps mit denen Sachdaten verändert werden können: – Value mapper – Replace in String 13.03.2015 FOSSGIS 2015 in Münster Transform – Set SRS ● Mit diesem Step wird das Koordinatensystem des Inputs bestimmt. Geometriespalte bestimmen Koordinaten­ bzw. Projektionssystem festlegen 13.03.2015 FOSSGIS 2015 in Münster Transform – SRS Transformation ● 13.03.2015 Mit diesem Step können die Geometrien des Inputs für den Output in ein anderes Koordinatensystem transformiert werden. FOSSGIS 2015 in Münster Übung 2: Arbeiten mit Koordinatensystemen ● Importieren Sie das Shapefile roads in eine neue PostgresTabelle. Legen Sie für das Shapefile das Koordinatensystem mit dem EPSG-Code 4326 fest. – ● ● Tabellenname: roads_wgs84 Schauen Sie sich das SQL dabei genau an. Fällt Ihnen ein Unterschied zu den bisherigen SQLs auf? Importieren Sie nun das Shapfile in eine neue PostgresTabelle. Transformieren Sie die Daten dabei von EPSG:4326 nach UTM 32 N (EPSG: 25832). – 13.03.2015 Tabellenname: roads_utm32 FOSSGIS 2015 in Münster 4.3 Veränderung von Sachdaten 13.03.2015 FOSSGIS 2015 in Münster Transform – Add constant ● ● Mit „Add constant“ können neue Attributspalten hinzugefügt werde, die mit konstanten Werten gefüllt werden. Ein Anwendungsfall könnte zum Beispiel sein, die Quelle mit in die Sachdaten zu schreiben, wenn Daten aus mehreren Quellen in einer Output vereint werden. 13.03.2015 FOSSGIS 2015 in Münster Transform – Replace in string ● ● Mit dieser Funktion können String in Attributen verändert werden. Dabei können/müssen folgende Werte angegeben werden: – Input stream: Feld, in dem nach dem String gesucht wird – Output stream: Feld in das der neue Wert geschrieben wird – Use RegEx: Verwendung von regulären Ausdrücken – Search: der zu ersetzende String – Replace with: Ersatz – Whole word: Gesuchte Ausdruck als ganzes Wort (Ja/nein) – Case sensitive: Groß/Kleinschreibung berücksichtigen (ja/nein) 13.03.2015 FOSSGIS 2015 in Münster Transform – Replace in string (2) 13.03.2015 FOSSGIS 2015 in Münster Transform – Value Mapper ● ● Der Value Mapper wird dazu eingesetzt, um Werte einer Spalte konstant in einen anderen Wert umzuwandeln. Mögliches Einsatzgebiet: Übersetzungen 13.03.2015 FOSSGIS 2015 in Münster Übung 3: Arbeiten mit Attributwerten Importieren Sie die Daten aus roads.shp und railways.shp in einer Tabelle „verkehr“. Folgende Aufgaben sollen dabei gelöst werden: Die Daten sollen in der Datenbank im Koordinatensystem UTM-32N vorliegen. (SRS Transformation) ● Die Attribute beider Shapefiles sollen um die Herkunft der Daten erweitert werden (Add constant). ● Die Attribute des Feldes Type bei railways.shp sollen übersetzt werden in: (Value Mapper) ● ● ● ● ● ● Rail → Eisenbahn Subway → U­Bahn Tram → Straßenbahn Abandoned → außer Betrieb Station → Bahnhof 13.03.2015 ● ● ● ● ● Proposed → in Planung Disused → außer Betrieb Construction → im Bau Platform → Bahnsteig Disused;construc → außer Betrieb FOSSGIS 2015 in Münster 4.4 Aufsplitten von Shapefiles 13.03.2015 FOSSGIS 2015 in Münster Flow allgemein ● ● In der Kategorie Flow befinden sich Steps, die den Ablauf einer Transformation beeinflussen. So finden Sich hier Steps um, – eine Transformation abzubrechen – leere streams zu entdecken – gar nichts zu machen – Streams aufzuteilen 13.03.2015 FOSSGIS 2015 in Münster Flow – Switch / Case (1) ● ● Besonders interessant ist hier der Step „Switch / Case“ Er bietet die Möglichkeit einen Stream aufzuteilen und so eine Datenquelle aufzusplitten Spalte auswählen Festlegung, welche Werte in welchen Step geleitet werden 13.03.2015 FOSSGIS 2015 in Münster Übung 4: Arbeiten mit „Switch / Case“ ● ● ● Erstellen Sie eine Transformation bei der die Inhalte der buildings.shp auf mehrere Tabellen aufgeteilt wird. Folgende Aufgaben sollen dabei gelöst werden: Die Daten sollen in der Datenbank im Koordinatensystem UTM-32N vorliegen. (SRS Transformation) Die Daten sollen auf verschiedene Tabellen verteilt werden – Attributspalte für Split: type – Zuordnung: Wert → Tabelle 13.03.2015 ● „residential“ und „apartments“ → „wohngeb“ ● „university“ und „school“ → „bildunggeb“ ● Rest → „sonstigegeb“ FOSSGIS 2015 in Münster Sie möchten noch mehr lernen? Weitere Schulungen zu diesem und anderen Themen im Schulungsprogramm der FOSS-Academy: http://www.foss-academy.eu 13.03.2015 FOSSGIS 2015 in Münster 61 Vielen Dank für Ihre Aufmerksamkeit ... Fragen? Save the Date: Einf. in GeoKettle 22.­23.04.2015 in Bonn WhereGroup GmbH & Co. KG Eifelstraße 7 | 53121 Bonn Tel.: +49 (0)228 909038-0 Fax: +49 (0)228 909038-11 Workshop­Teilnehmer erhalten 10 % Rabatt. [email protected] http://www.wheregroup.com 13.03.2015 FOSSGIS 2015 in Münster 62