Business Intelligence mit Pentaho
Seite 6: Daten-Integration
Pentaho Data Integration (ehemals Kettle)
Pentaho Data Integration (PDI) ist eines der fĂĽhrenden quelloffenen ETL-Tools. ETL (Extraction, Transformation & Loading) beschreibt Verfahren, Daten unterschiedlicher herkunft in ein bestimmtes Format zu bringen, um sie dann in ein Datawarehouse zu ĂĽbernehmen. Aktuell ist die Version 3.0. Das Werkzeug hat seine Wurzeln im 2003 gestarteten Open-Source-Projekt Kettle. Seit 2006 ist Kettle unter dem Namen Pentaho Data Integration Teil von Pentahos BI-Suite.
Ebenso wie WEKA lässt sich PDI auch als eigenständige Java-Applikation einsetzen. Es lassen sich sowohl Jobketten als auch Transformationen per Drag and Drop erstellen. Jobs sind klassische Prozesse wie das Ausführen eines Shell- oder SQL-Skriptes, (secure) FTP-Transfers oder das Aufrufen von Transformationen. Transformationen bestehen aus einzelnen Schritten zur Verarbeitung von Datenströmen. Hier handelt es sich um klassische Extraktions-, Transformations- und Ladeprozesse wie sie im ETL-Umfeld üblich sind. PDI unterstützt alle gängigen Datenbanken. Der Zugriff erfolgt über JDBC, ODBC oder JNDI.
Im Hinblick auf den Funktionsumfang ist PDI durchaus mit kommerziellen ETL-Lösungen vergleichbar. Auch der Bedienkomfort reicht für erfahrene ETL-Experten.
Pentaho Data Integration wird als Java-Archivdatei (jar) ausgeliefert und gliedert sich in die vier Module Spoon, Pan, Kitchen und Carte. Spoon ist die grafische Benutzerschnittstelle fĂĽr den Entwurf von Jobs und Transformationen. Die resultierenden Jobketten und Transformationen werden in Form von XML-Dateien oder in einem Datenbank-Repository abgelegt.
Pan wird für die Batchverarbeitung von Transformationen verwendet und Kitchen dient der Batchverarbeitung von Jobketten. Carte startet einen Remote-Server, auf dem Transformationen mittels Spoon remote gestartet werden können.
Während in Transformationen jeder einzelne Schritt durch einen eigenen Thread bedient wird und auch für Lese-/ und Schreiboperationen von Datenbanken jeweils mehrere Verbindungen genutzt werden können (mehrere DB-Server Prozesse), unterstützt PDI aktuell noch keine parallele Ausführung von Jobs. Aus diesem Grund lässt sich PDI nicht dazu verwenden, eine Prozesssteuerung von parallelisierten Datawarehousing-Prozessen durchzuführen.
Die Verwendung von XML-Dateien oder Datenbank-Repositories erlaubt ein sehr einfaches Umsetzen von ETL-Prozessen von einer Entwicklungsumgebung auf eine Produktionsumgebung. Sämtliche Umgebungsvariablen wie Dateipfade oder Datenbankverbindungen lassen sich in Konfigurationsdateien definieren. Die Fehlersuche gestaltet sich sowohl online in Spoon als auch im Batchbetrieb recht komfortabel, da die verschiedenen Debug-Levels (bis auf die Einzelsatzebene) sehr detaillierte Fehleranalysen ermöglichen.
Die Konfiguration von Eingabe- und Ausgabeknoten ist Metadaten-getrieben. Die in einem Schritt verfügbaren Attribute können zur automatischen Befüllung von Attributlisten abgefragt werden. Bei der Verarbeitung von Textdateien unterstützt PDI den Entwickler bei der Konfiguration des Eingabeknotens durch eine automatische Analyse. Diese Funktionen unterstützen den Entwicklungsprozess enorm und sind mit den Funktionen kommerzieller ETL-Anwendungen vergleichbar.
Pentaho Data Integration kann durch die Entwicklung eigener Plugins beliebig erweitert werden. Die Plugins werden in Form von Java-Archiven eingebunden. Eine Anpassung an eigene, sehr spezielle Quellsysteme kann somit sehr effizient erfolgen. Es existieren beispielsweise Plugins von kommerziellen Anbietern, die die Verarbeitung von SAP R3 oder Navision unterstĂĽtzen. Die Entwicklung solcher Plugins ist im Pentaho-Wiki ausfĂĽhrlich beschrieben.
FĂĽr Datawarehousing ist PDI durch die parallele Verarbeitung von mehreren Verarbeitungsknoten, die UnterstĂĽtzung von Tabellen-Partitionen auf Datenbankebene, Bulk-Loader fĂĽr Oracle oder MySQL und die Standardfunktionen "lookup" und slowly changing dimensions gut aufgestellt. Weitere Funktionen wie Fehlerbehandlung auf Datenzeilenebene, Partitionierung und verteiltes Rechnen erlauben es, auch groĂźe Datenmengen mit PDI effizient zu verarbeiten.