Management-Summary
Transcription
Management-Summary
GeoKettle - Extending A Data Integration Tool With Geodata Management Summary of Diploma Thesis 2006/07 / Management Summary der Diplomarbeit im Wintersemester 2006/07 Roger Eggenberger & Armin Thommen Edition 2007-01-05 [ManagementSummary_GeoKettle.doc]. Homesite http://wiki.hsr.ch/StefanKeller/wiki.cgi?GeoKettle Industriepartner: infoGrips GmbH, Zürich, www.infogrips.ch Supervisor / Betreuer: Prof. Stefan F. Keller, Institut für Software und GISpunkt, www.ifs.hsr.ch Introduction The integration of data in companies, organizations and public administrations is still a tricky business. Even tough the information technology makes steady progress. In some projects, the acquisition of data eats up almost all the budget. This is definitively the case in projects with geographical data, which typically come from different sources. In case, a data warehouse is needed huge costs can result. The reason for these costs can be located on the one hand in the expensive tools and on the other hand in the time and knowledge needed for the transformations. For regular data, like normal tables in databases or in textfiles, a whole bunch of ETL tools are on the market. ETL stands for Extract, Transform, Load. Most of this, often expensive solutions support no geographical data. There is only one program, which is capable of geographical data. The Business Intelligence platform Pentaho integrated the ETL Kettle (c.f. http://kettle.pentaho.org [viewed 12.12.06]). Kettle and the whole Pentaho Suite are both Open Source Solution. Kettle provides all functions needed, for moving crude data into data warehouses. Kettle can be extended with Plugins, to fit your own needs. These extensions and Kettle itself are both written in Java. Diploma Thesis / Diplomarbeit GeoKettle Component interactions in Kettle / Zusammenspiel der Kettle Komponenten To move data into a data warehouse Kettle, is divided in four applications: The Spoon application reads data from different sources, transforms and writes them into a data sink. Such a sequence is called Transformation. Pan runs these transformations in the command line. Some data integration tasks include several transformations. With Chef they can all be combined in a single job. With Kitchen this job can be executed in the command line. Task At the beginning, Kettle should be compared with other ETL tools.With two data integration scenarios, Kettle’s capabilities have to be evaluated. In the first scenario, population data is extracted from different Excel Sheets and written in databases. In the second scenario, hiking trails are read from an ESRI Shapefile (c.f. http://www.esri.com [date: 12.12.06]). Kettle should be extended with plugins to be capable of geographical data. Approach After a short look into Kettle, a market review over existing ETL tools has been made. Therefore a bunch of important Open Source and commercial solution were compared. Further a short introduction into schema and data transformation was created. With the "population" scenario, a first data warehouse was realized and documented. This task was a good introduction into Kettle. With the knowledge from the scenarios, the Shapefile Input Plugin and the Postgis Output plugin were built. After this, a scenario with geographical data was constructed. The extracted geometries are hiking trails, which were delivered as ESRI shapefiles. With the "population" scenario, a first data warehouse was realized and documented. This task was a good introduction into Kettle. With the knowledge from the scenarios, the Shapefile Input Plugin and the Postgis Output Institut für Software www.ifs.hsr.ch / GISpunkt www.gis.hsr.ch 2 Diploma Thesis / Diplomarbeit GeoKettle plugin were built. After this, a scenario with geographical data was constructed. The extracted geometries are hiking trails, which were delivered as ESRI shapefiles. Transformation in Spoon / Transformation in Spoon Results • Market review: ETL Tools This overview was used to see behind the curtain of the ETL Market. Further a list with geo-data capable software was created. • Overview schema transformations: This document describes the theoretic approaches for schema and data transformation. • Scenario "population": With this practical example, the introduction in Kettle was achieved. The transformations and used functions were extensive documented. • Scenario "hiking trails": In this scenario, geometries were extracted from ESRI-Shapefiles and written in a PostGIS database.With the geometry the start- and endpoint and the length were calculated. The complete scenario and the results were documented. • ESRI Shapfile Input Plugin: This Plugin enables Kettle to read Shapefiles. Beside geometries also the other fields from the corresponding DBF-File can be imported. Also multifile is supported, but in this case the DBF-Files have to be in the same structure. • Postgis Output Plugin: With the Postgis Output Plugin geometries and other data can be written in postgis databases.WKT- or WKB-Strings are accepted input streams. Calculator Plugin This Plugin allows manipulating geometries. Functions like length calculation or reading start- and endpoints are provided. • Plugin Guide :For the development of further plugins, a simple Plugin and a Plugin Guide were made. This document shows the architecture and the functions of the different classes. Outlook The scenario hiking trail showed that Kettle is capable of geo-data. All the functions needed for this scenario were implemented in Kettle. But there are still some expansions possible. Further development proposals: • Further Input- und Output-Plugins Institut für Software www.ifs.hsr.ch / GISpunkt www.gis.hsr.ch 3 Diploma Thesis / Diplomarbeit GeoKettle • Additional functions in the Calculator Plugin • Extending Kettle with the geometry data type To extend Kettle with geographical functionality, further plugins could be developed. It is imaginable to support other file formats like Oracle Spatial for the input and output. In the Calculator Plugin other features, like the calculation of intersections and areas could be implemented. Kettle has no geometry data type, therefore the geometries have to be passed as strings or byte arrays to the next step. The changes in Kettle would be not very difficult, but they have to be implemented by the Kettle developers. Otherwise the plugins and transformations would be bound to a specific, extended kettle version. More information: http://wiki.hsr.ch/StefanKeller/wiki.cgi?GeoKettle Calculator Plugin Managment Summary (deutsch) Ausgangslage Die Integration von Daten in Unternehmen, Organisationen und der öffentlichen Verwaltung ist trotz Fortschritten in der Informationstechnologie immer noch ein aufwändiges Unterfangen. In manchen Projekten kann der Aufwand zur Beschaffung von Daten das Budget teilweise bis ganz ausfüllen. Dieses Problem trifft sicher auf Arbeiten mit Geodaten zu, die typischerweise Institut für Software www.ifs.hsr.ch / GISpunkt www.gis.hsr.ch 4 Diploma Thesis / Diplomarbeit GeoKettle aus verschiedenen Datenquellen stammen und in Geo-Informationssystemen (GIS) verwaltet werden. Soll nun ein "Data Warehouse" aufgebaut werden, kann die Integration der Daten grosse Kosten verursachen. Der Grund dafür ist einerseits in den teurenWerkzeugen zu suchen, andererseits werden für die Transformationen aber auch viel Zeit und Wissen benötigt. Für reguläre Daten, wie normale Tabellen in Datenbanken oder in Textfiles existieren viele ETL Werkzeuge. ETL steht für Extract, Transform und Load, dies bedeutet soviel wie die Daten auswählen, umsetzen und laden. Die meisten dieser, zum Teil sehr teuren Programmen, unterstützen keine Geoformate. Für das Einlesen und die Umwandlung von Geo-Formaten gibt es nur einen grossen Anbieter auf dem Markt. Mit Kettle (siehe http://kettle.pentaho.org [Abrufdatum: 12.12.06]) ist ein ETL Werkzeug in die Business Intelligence Platform Pentaho integriert worden. Kettle und die ganze Penatho Suite sind Open Source Lösungen und werden laufend weiterentwickelt. Kettle bietet alle gängigen Funktionen, welche für eine produktive Integration von Daten in "DataWarehouses" benötigt werden. Zusätzlich zu den bestehenden Funktionen kann Kettle mit Plugins an die eigenen Bedürfnisse angepasst werden. Diese Erweiterungen sind wie Kettle selbst in Java realisiert. Kettle besteht aus vier Applikationen um Daten effizient in ein Data Warehouse einzulesen. Im Programm Spoon können Daten aus verschiedenen Quellen eingelesen, abgeändert und am Ende in eine Datensenke geschrieben werden. Solch eine Abfolge wird Transformation genannt. Mit Pan können diese Transformationen aus Spoon über die Kommandozeile ausgeführt werden. Einige Datenintegrationsaufgaben bestehen aus mehreren Transformationen. Diese können mit Chef zu einem Job zusammengefasst und mit Kitchen über die Kommandozeile ausgeführt werden. Aufgabenstellung Zuerst soll Kettle mit anderen ETL Tools verglichen und dokumentiert werden. Um die Möglichkeiten von Kettle zu untersuchen, werden zwei Datenintegrations-Szenarien erstellt und dokumentiert. Im ersten Szenario sollen Bevölkerungsstatistiken aus unterschiedlichen ExcelDateien ausgelesen und in eine Datenbank geschrieben werden. Im zweiten Szenario werden Geometrien von Wanderwegen aus ESRI Shapefiles2 eingelesen. Kettle soll so erweitert werden, dass es Geo-Daten verarbeiten kann. Vorgehen Nach einer kurzen Einarbeitungszeit in Kettle wurde eine Marktübersicht über bestehende ETL Werkzeuge erstellt. Dabei wurden die wichtigsten Open Source und kommerziellen Produkte direkt miteinander verglichen. Weiter wurde eine kurze Einführung in die Welt der Schema- und Daten-Transformationen erstellt. Mit dem Szenario "Bevölkerungsstatistik" wurde ein erstes DataWarehouse realisiert und dokumentiert. Diese Aufgabe diente als Einstieg in Kettle. Das Einarbeiten in Kettle beanspruchte viel Zeit, da in Spoon viele Möglichkeiten für die Manipulation der Daten bestehen. Institut für Software www.ifs.hsr.ch / GISpunkt www.gis.hsr.ch 5 Diploma Thesis / Diplomarbeit GeoKettle Mit dem erarbeiteten Wissen konnten nun die beiden ersten Plugins erstellt werden; das Shapefile Input Plugin sowie das Postgis Output Plugin. Anschliessend wurde mit diesen beiden Plugins ein Szenario mit Geodaten erstellt. Bei den eingelesenen Geometrien handelte es sich um die Wanderwege des Kantons Zürich, welche in Form eines ESRI Shapefiles geliefert wurden. Während der Realisation des Szenarios wurde klar, dass ein weiteres Plugin benötigt wird, um die Geodaten zu bearbeiten. Nachdem die Anforderungen ermittelt worden sind, wurde ein drittes Plugin, das Calculator Plugin implementiert. Mit dem Plugin können alle benötigten Manipulationen an den Geometrien in Kettle durchgeführt werden und es könnte auch Datenbank verwendet werden, die keine Unterstützung für Geodaten bietet. Resultate • • • • • • • • Marktübersicht ETL Tools: Diese Übersicht diente dazu, einen Einblick in den Markt der ETL Tools zu erlangen.Weiter konnte in Erfahrung gebracht, welche anderen Produkte GeoFormate unterstützen. Übersicht Schematransformationen Das Dokument soll aufzeigen, welche theoretischen Ansätze zu Schema- und Daten-Transformationen bestehen. Szenario "Bevölkerungsstatistik": Mit diesem praktischen Beispiel konnte ein guter Einstieg in Kettle realisiert werden. Die erstellten Transformationen und verwendeten Funktionen wurden ausführlich beschrieben. Szenario "Wanderwege": Bei diesem Szenario wurden Geometrien aus einem ESRIShapefile in Kettle eingelesen und in eine Postgisdatenbank geschrieben. Aus den Geometrien wurden Start- und Endpunkte ausgelesen sowie die Länge berechnet. Die Vorgehensweise und die erreichten Resultate wurden dokumentiert. ESRI Shapfile Input Plugin: Dieses Plugin ermöglicht das Einlesen von Shapefiles in Kettle. Neben den Geometrien werden auch die Felder aus den dazugehörigen DBF-Files importiert. Es können auch mehrere Shapefiles gleichzeitig eingelesen werden. Voraussetzung dafür ist aber die gleiche Struktur der DBF-Dateien. Postgis Output Plugin: Mit dem Postgis Output Plugin können Geometrien und andere Daten in eine Postgis Datenbank geschrieben werden. Als Input werden WKT- oder WKBStrings akzeptiert. Calculator Plugin Dieses Plugin ermöglicht Manipulationen an Geometrien. Es werden Funktionen wie beispielsweise das Berechenen einer Länge oder das Auslesen von Startund Endpunkten angeboten. Plugin Guide: Damit weitere Plugins einfacher erstellt werden können, wurde ein Plugin Guide geschrieben. Der Guide erklärt die Architektur und beschreibt die benötigten Klassen und Interfaces eines Plugins. Im Anschluss daran wird in einem Tutorial die Implementierung und das Deployment eines Plugins praktisch dargestellt. Ausblick Mit dem Szenario "Wanderwege" wurde aufgezeigt, dass es in Kettle möglich ist, Geo- Daten zu Institut für Software www.ifs.hsr.ch / GISpunkt www.gis.hsr.ch 6 Diploma Thesis / Diplomarbeit GeoKettle verarbeiten. Es wurden alle für das Wanderwegszenario benötigte Funktionen in Kettle eingebracht. Es bestehen aber noch einige weitere Ausbaumöglichkeiten: • Weitere Input- und Output-Plugins • Zusätzliche Funktionen im Calculator Plugin • Erweitern des Kettle Core mit einem Geometrie Datentyp Um Kettle mit mehr Geo-Funktionalität auszustatten, könnten weitere Plugins erstellt werden. Es kann sich dabei um Input Plugins handeln, welche weitere Formate unterstützen. So wären Plugins für die verbreiteten Formate GML (Geography Markup Language) (3) oder Interlis (4) denkbar. Auch bei den Ouput Plugins könnten weitere Datensenken wie beispielsweise Oracle Spatial(5) oder ESRI Shapefiles unterstützt werden. Im Calculator Plugin könnten weitere Features implementiert werden. Die Funktionen dieses Plugins beruhen auf der JTS Library (6) Deshalb können grundsätzlich alle Geometriebezogenen Funktionen aus JTS in dieses Plugin integriert werden. Dies sind beispielsweise Berechnungen von Flächen oder Schnittpunkten. Kettle kennt Geometrien nicht als Datentyp. Die Geometrien müssen deshalb innerhalb von Kettle als Strings oder als Byte Arrays weitergereicht werden. Ein Ausbau von Kettle mit einem Geometrie Datentyp ist realisierbar, macht aber nur Sinn, wenn die Änderung von den Kettle Entwicklern fest integriert wird. Ansonsten wären Plugins und Transformationen an die erweiterte Kettle Version gebunden. Weitere Informationen siehe http://wiki.hsr.ch/StefanKeller/wiki.cgi?GeoKettle 3) http://www.opengis.net/gml [Abrufdatum: 12.12.06] 4) http://www.interlis.ch [Abrufdatum: 12.12.06] 5) http://www.oracle.com/technology/products/spatial [Abrufdatum: 12.12.06] 6) http://www.vividsolutions.com/JTS [Abrufdatum:12.12.06] Institut für Software www.ifs.hsr.ch / GISpunkt www.gis.hsr.ch 7