| « Apache POI / HSSF und Formeln in Excel | Datenintegration mit Pentaho (Kettle) » |
Pentaho/Kettle - schrittweise
4. Parameter in Datenbankabfragen nutzen
Als Parameter können tabellarische Daten verwendet werden. Im einfachsten Fall eine benannte Spalte mit einer Zeile Inhalt. Sind mehrere Zeilen vorhanden, kann die nachfolgende Aktion für jede einzelne davon wiederholt werden.
Hier ein einfacher Fall: Im ersten Schritt einer Transformation erzeugt eine “Table input” Aktion eine Liste von ID-Nummern per SQL-Befehl
Code:
SELECT | |
id | |
FROM filme |
Daran hängt man nun eine weitere “Table input” Aktion, die in einer ganz anderen Datenbank für jede im ersten Schritt gefundene ID eine eigene Abfrage startet.

Damit die zweite Aktion die IDs korrekt übernimmt, sind folgende Einstellungen notwendig:

Im SQL-Statement genügt es dann, ein “?” als Platzhalter für den Parameter zu setzen, also z.B.
Code:
SELECT other_field FROM other_table WHERE lookup_id=? |
Nun wiederholt sich der zweite Schritt für jede ID, die im ersten Schritt gefunden wurde. Statt einer “Table input” Aktion könnte man natürlich ebenso eine Text-, CSV- oder XML-Datei einlesen.
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?