Zuletzt bearbeitet vor einem Jahr
von Imo John

Kettle-Grundlagen

Kettle-Grundlagen

Zielsetzung

Das Anwendungsspektrum vom OpenSource-Werkzeug zum Datenmanagement Kettle / Pentaho Data Integration reicht vom Kopieren einzelner Daten zwischen zwei Quellen bis zum professionellen "Data Warehousing". Für diesen Zweck bietet das Werkzeug eine mächtige Funktionalität und graphische Oberfläche. Die Nutzung des Werkzeugs wird unten anhand von praktischen Beispielen aus der Hochschulverwaltung vorgestellt.

Geschichte von Kettle

Zeitpunkt
Was passierte...
Sommer 2001
Der Belgier Matt Casters gründet eigenes Unternehmen als BI-Consultant
Ab 2003
Start der Arbeiten an Kettle. Ursprünglich war geplant, Kettle als KDE-Anwendung zu implementieren, daher der Name KDE Extraction, Transportation, Transformation and Loading Environment.
2004
Kettle Version 1.2 mit SWT statt AWT. Das belgische Verkehrszentrum setzt Kettle ein
2005
Kettle 2.0 wird veröffentlicht, mit Plugin-Architektur und SAP-Plugin. Matt Casters stellt Kettle unter OpenSource-Lizenz. In der ersten Woche hat Kettle 35.000 Downloads
2006
Pentaho wechselt von Octopus zu Kettle, Matt Casters wird angestellt. Kettle wird zu PDI (Pentaho Data Integration)
2010
Kettle / PDI 4.0 Release
2015 Pentaho wurde von Hitachi Data Systems aufgekauft.
2022 Der Kettle Fork "hop" wird ein Top-Level Produkt der Apache Foundation.

Wir sehen dass die Software eine "bewegte" Geschichte hat. Durch die ganzen Namensänderungen bleiben wir erstmal beim Namen "kettle". Weitere Details siehe Wikipedia-Eintrag.

Alternativen

Eine Übersicht finden Sie auf Wikipedia:

Wikipedia

Kommerzielle Produkte im DWH-Bereich:

  • IBM InfoSphere
  • Informatica

OSS-Tools

  • Talend
  • PDI / Kettle
  • Octopus

Installation und Einrichtung

Voraussetzungen

  • Kettle läuft unter Windows und Linux bzw. anderen Systemen mit Java Runtime
  • Derzeit wird Java 1.8 vorausgesetzt, und zwar nur genau diese Version. Ältere Java Versionen und Java 11 oder höher werden derzeit nicht unterstützt.

Entgegen der Dokumentation funktioniert auch ein Open Source Java, z.B. openjdk, Sie müssen nicht Oracle Java nehmen.

Download und Installation

Kettle oder PDI (Pentaho Date Integration) steht unter Apache License V.2.0.

Start nach der Installation

Kettle beinhaltet die Anwendung Spoon (graphische Entwicklungsumgebung), sowie die Anwendungen kitchen und pan. Letztere erlauben den scriptgesteuerten Aufruf von Jobs bzw. Transformationen. Die Anwendung carte ermöglicht den Remote-Einsatz von Kettle.

Am besten beginnen Sie mit der graphischen Entwicklungsumgebung "Spoon".

Allgemeines zu Spoon

Das Kommandozeilen-Script "spoon.sh" bzw. "spoon.bat" liegt im obersten Verzeichnis der Auslieferung. Wenn Java 1.8 installiert ist, reicht es die Datei mit Doppelklick zu starten. Aus der Kommandozeile starten Sie mit

spoon.bat /norep 

oder

spoon.sh /norep

"/norep" setzt den Parameter, dass Kettle nicht nach einen Repository Server sucht.

Spoon Besonderheiten für Linux

Unter Linux sucht Spoon zunächst nach einer passenden Java-Runtime: entweder Sie setzen die Variable JAVA_HOME / JRE_HOME, oder Sie installieren oberhalb von spoon.sh im Verzeichnis java eine passende runtime. Wenn Sie nur eine spezielle Runtime verwenden wollen, setzen Sie z.B.

PENTAHO_JAVA_HOME=/usr/lib/java
export PENTAHO_JAVA_HOME

Hinweis: Spoon stürzt unter manchen Linux-Versionen ab sobald man auf "Preview" klickt oder eine Transformation starten will.

Ursache
vermutlich ist die SWT Bibliothek in Spoon nicht kompatibel mit dem Betriebssystem.
Lösung
Besorgen Sie sich eine swt-Datei z.B. aus dem aktuellen Eclipse-Paket. Es liegt im Ordner "plugins", ermittelbar dort mit
ls org.eclipse.swt*jar

Diese Dateien kopiert man ins Spoon Verzeichnis nach

libswt/linux

(jeweils x86 und x86_64), die alten Dateien benennt man um nach swt.old. Danach startet man Spoon neu.

Spoon unter Windows

Unter Windows installieren Sie zunächst Java, und setzen dann in der Systemsteuerung die Umgebungsvariable JAVA_HOME auf den Pfad, wo Java installiert ist, z.B.

C:\Program Files\Java\jre1.8.0_45

Probieren Sie den Start mit Doppelklick auf die Datei spoon.bat. Bei Startproblemen unter Windows öffnen Sie eine DOS-Box ("Eingabeaufforderung") und gehen mit cd in das Verzeichnis, wo Kettle installiert ist (z.B. C:\Users\superx\pdi-ce-7.0.0.0-25\data-integration ). Führen Sie in der DOS Box das Kommando aus:

set JAVA_HOME=C:\Program Files\Java\jre1.8.0_45

Editieren Sie dann die Datei spoon.bat und ersetzen Sie den Aufruf "javaw" durch "java". Achtung: das geht nicht mit Windows Notepad, weil es die Unix Zeilenumbrüche nicht versteht, Sie müssen einen alternativen Editor. z. B. Windows WordPad nehmen und starten Sie das Script

spoondebug.bat

Beantworten Sie alle Fragen mit "Y", am Ende wird eine Datei

SpoonDebug.txt

geschrieben, der Sie diagnostische Meldungen entnehmen können. Wenn z.B. das RAM nicht ausreicht, müssen Sie die Datei spoon.bat editieren, und den Passus "-Xmx2048m" ersetzen z.B. durch "-Xmx1024m". Weitere Hilfen bei Startproblemen siehe den FAQ.

Spoon Einstellungen

Als erstes sollten Sie die Sprachumgebung von Spoon einstellen: Im Menü Tools -> Options wählen Sie im Reiter "UI Settings" die deutsche Umgebung:

Einstellungen

Achten Sie darauf, daß Sie bei "Alternative Language" English angeben, damit Menüs, die noch nicht übersetzt sind, in Englisch angezeigt werden.

Kettle und Spoon in der Praxis

Vokabular

Zunächst: Kettle unterscheidet Jobs und Transformationen. Jobs sind Sammlungen von Aktionen in einer definierbaren Reihenfolge, und mit Kettle ausführbar. Transformationen sind die Bausteine von Jobs, und dienen der Datenverarbeitung. Innerhalb von Jobs und Transformationen sind die einzelnen Aktionen sog. "Steps", deren Reihenfolge wiederum durch Verknüpfungen ("hops") organisiert wird.

Jobs und Transformationen werden lokal im XML Format gespeichert, die Endung ist jeweils "*.kjb" fürs Jobs und "*.ktr" für Transformationen.

Hallo Welt

Hallo Welt Design

Unsere Beispiel-Transformation erzeugt 10 Zeilen "Hallo Welt", die am Bildschirm angezeigt werden, sowie als Datei gespeichert werden. Das Beispiel soll die Grundprinzipien von Spoon veranschaulichen.

Starten Sie Spoon, und machen Sie einen Doppelklick auf "Transformations", und wählen Sie unterhalb von "Input" den Schritt "Generate Rows". Ziehen Sie die Zeile in den Entwurfsbereich. Machen Sie dann einen Doppelklick auf das Icon. Danach konfigurieren Sie den Schritt:

Erzeugung eines Step

Das Icon ändert sich dann im Entwurfsbereich:

Erzeugung eines Step

Danach ziehen Sie unter "Flow" den Schritt "Dummy" in den Entwurfsbereich. Dann markieren Sie den Schritt "Erzeuge 10 Nachrichten", und halten die Shift-Taste gedrückt. Dann ziehen Sie von dort einen Pfeil zum Dummy-Schritt:

Erzeugung eines Step

Dann speichern Sie die Transformation mit dem Namen "hallo_welt.ktr" und markieren im linken Menü die Transformation, und drücken die rechte Maustaste. Sie können dann einen Namen und einen Beschreibungstext vergeben:

Erzeugung eines Step

Dann markieren Sie den Dummy-Step, und klicken Sie auf das Preview Icon:

Werkzeuge in einer Transformation

Es erscheint ein Dialog:

Erzeugung eines Step

Klicken Sie hier auf "Quick Launch". Es erscheint das Ergebnis:

Vorschau des Step

Hallo Welt Protokollierung

Machen Sie einen Doppelklick auf den Schritt "Erzeuge 10 Nachrichten", und erhöhen Sie das Limit von 10 auf 10.000. Klicken Sie dann auf "OK", und zeigen Sie über das Menü "View"-> "Execution Results" die Ausgabe an. Wählen Sie dann die Registerkarte "Logging". Klicken Sie dann in der Symbolleiste auf das "Run"-Icon:

Werkzeuge in einer Transformation

Wählen Sie bei "Log Level" den "Row level":

Werkzeuge in einer Transformation

Dann klicken Sie unten auf "Launch". Die Transformation wird gestartet, und im Register Logging sehen Sie ein Protokoll:

Werkzeuge in einer Transformation

Neben dem Protokoll können Sie auch eine Ausführungsstatistik aufrufen:

Werkzeuge in einer Transformation

Hallo Welt Dateiausgabe

Speichern Sie obige Transformation als Datei "hallo_welt_dateiausgabe.ktr" und löschen Sie den Dummy-Schritt im Entwurfsbereich. Wählen Sie dann unter Output den Schritt "Text file output", und ziehen Sie den Schritt in den Entwurfsbereich. Danach können Sie den Schritt "Erzeuge 10 Nachrichten" damit verbinden. Machen Sie dann einen Doppelklick auf den Text File Output Schritt, und vergeben Sie den Namen "Hallo Welt Ausgabe".

Werkzeuge in einer Transformation

Bei den Eigenschaften des Schrittes Ausgabe können Sie nun einen Dateinamen angeben. Wählen Sie hier keinen absoluten Pfad, sondern drücken Sie im Feld die Taste STRG-Leerzeichen. Es erscheint eine Auswahlliste, wo Sie den Pfad

${Internal.Transformation.Filename.Directory}

auswählen. Ergänzen Sie dann noch den Dateinamen "hallo_welt":

Werkzeuge in einer Transformation

Hallo Welt in Excel

Für den Export nach Excel erzeugen Sie eine neue Transformation hallo_welt_dateiausgabe_excel.ktr

Dateiausgabe nach Excel

Die Eigenschaften des Excel Exports sind selbsterklärend.

Hallo Welt als Job

Wählen Sie in Spoon im Menü "New" den Eintrag "Job". Drücken Sie dann CTRL-j, um die Eigenschaften des Jobs zu definieren:

Jobs erstellen

Im Entwurfsbereich ziehen Sie zunächst unter "General" das Icon "Start" herein. Ziehen Sie dann unter "General" das Icon "Transformation" in den Entwurfsbereich, und verbinden Sie beide Schritte:

Jobs erstellen

In den Eigenschaften der Transformation wählen Sie im Feld "Transformation Filename" wieder STRG-Leerzeichen, und wählen die Variable "${Internal.Job.Filename.Directory}" und als Unterverzeichnis den Dateinamen der Transformation:

Jobs erstellen

Sie müssen den Job dann im gleichen Verzeichnis wie die Transformation speichern. Mit dem "Run"-Icon können Sie den Job testen.

Hallo Welt im Batch-Modus

Um den Hallo-Welt-Job über die Kommandozeile aufzurufen, wählen Sie folgenden Befehl:

kitchen.sh /file:<<Absoluter Pfad zu Datei>>hallo_welt.kjb /norep

Damit wird der Job über die Kommandozeile ausgeführt. Der Schalter "norep" bewirkt, daß nicht versucht wird, eine Repository-Datenbank zu nutzen.