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