| « Apache POI / HSSF und Formeln in Excel | Datenintegration mit Pentaho (Kettle) » |
Pentaho/Kettle - schrittweise
2. XML-Daten importieren
In XML strukturierte Daten müssen zunächst in eine Tabelle überführt werden, damit man mit den Inhalten weiterarbeiten kann. Nehmen wir die gleichen Quelldaten wie eben, nur als XML-Datei:
XML:
<?xml version="1.0"?> | |
<filme> | |
<row> | |
<id>1</id> | |
<filmnummer>231</filmnummer> | |
<name>Golden Eye</name> | |
<ausgeliehen>0</ausgeliehen> | |
</row> | |
<row> | |
<id>2</id> | |
<filmnummer>32</filmnummer> | |
<name>Der Yeti</name> | |
<ausgeliehen>1</ausgeliehen> | |
</row> | |
<row> | |
<id>3</id> | |
<filmnummer>12</filmnummer> | |
<name>Urlaub '07</name> | |
<ausgeliehen>0</ausgeliehen> | |
</row> | |
</filme> |
Für den Import wählen wir eine “XML Input” Aktion und wählen die Datei mit “Browse” und “Add” aus:

Unter dem Reiter “Content” muss man nun die strukturellen XML-Elemente angeben, d.h. alle Elemente, die Datensätze und nicht Felder beschreiben. Hier also “filme” als Root-Element und “row” als Datensatz-Element.

Unter “Fields” geht es weiter: Hier müssen nun alle Felder aufgeführt sein, die aus der XML-Datei zu übernehmen sind. Dabei sind vor allem zwei Zusazuangaben pro Feld wichtig: Der Feldtyp und die etwas seltsame Angabe unter “Position". Nur so funktioniert es.

Eine Vorschau der tabellarisch aufbereiteten Daten bekommt man mit “Preview Rows":

Und damit kann man nun weiterarbeiten, als hätte man eine Tabelle direkt importiert.
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?