| « Apache POI / HSSF und Formeln in Excel | Datenintegration mit Pentaho (Kettle) » |
Pentaho/Kettle - schrittweise
Nach der erfolgreichen Inbetriebnahme von Kettle (siehe Teil 1) geht es ans Eingemachte:
- Feldinhalte in Tabellen ersetzen,
- XML-Daten importieren,
- Ergebnisdateien komprimiert per E-Mail senden,
- Parameter in Datenbankabfragen nutzen,
- “unsaubere” CSV-Daten bereinigen.
Eins nach dem anderen…
Fortsetzung:
1. Feldinhalte in Tabellen ersetzen
Oft hat man in Datenbanken einen numerischen oder boolschen Wert, der eine bestimmte Eigenschaft beschreibt. Im Export soll dieser Wert wieder textlich erscheinen, also z.B. “ja"/"nein” statt 1/0 oder “Text1″/"Text2″/"Text3″ statt 1/2/3.
Im folgenden Beispiel bedeutet der Wert 1 “ausgeliehen", der Wert 0 “nicht ausgeliehen". Und so soll es dann auch in den exportierten Daten stehen.

Für die Änderung sind zwei Schritte notwendig: Zuerst muss der Feldtyp des betroffenen Felds in einen String geändert werden, anschließend kann man eine Tabelle mit den alten und neuen Einträgen definieren.
Die Typänderung bewirkt man in einer Transformation mit einer “Select Values” Aktion, die im Block “Transform” zu finden ist.

Per Doppelklick auf das Icon “Select Values” öffnet sich das Konfigurationsfenster. Dort kann man unter dem Reiter “Meta-Data” den Feldnamen und den neuen Feldtyp angeben.

Nun sollen die Werte 0 und 1 durch Texte ersetzt werden. Dazu hängt man eine “Value Mapper"-Aktion an:

Die Konfiguration sieht dann so aus:

Mit einer abschließenden “Excel Output"-Aktion kann man sich vom Ergebnis überzeugen:

2 Kommentare
ich bin begeistert, dass es nun endlich mal ein kleines deutsches Tutorial für Pentaho/Kettle gibt. Einfach Probleme lassen sich sehr gut damit lösen.
Ich stehe gerade vor einem komplexeren System. 1 Excel File -> in ein ER-Modell einzubinden. Also mehrere Tabellen die mit Foreign Keys verküpft sind und ich die ID's weiterreichen muss.
Gibt es hierzu evtl. ein gutes Tutorial ?
mit diesem Tutorial konnte ich schon erste Schritte üben.
ich stoße aber schnell auf erste Fragen, zu denen ich noch keine Lösung gefunden habe. Vielleicht kann mir hier geholfen werden.
1. kann ich einen Job auf verschieden(im Aufbau gleiche) Datenbanken schicken?
2. Ist eine Art 'Gruppenwechsel' realisierbar?