| « Apache POI / HSSF und Formeln in Excel | Datenintegration mit Pentaho (Kettle) » |
Pentaho/Kettle - schrittweise
3. Ergebnisdateien komprimiert per E-Mail senden
Jetzt wird es etwas aufwändiger. Um transformierte und exportierte Daten per E-Mail versenden zu können, brauchen wir auf jeden Fall einen SMTP-Server, der bereitwillig E-Mails mit Dateianhängen auf die Reise schickt.
Dann kann es losgehen: Wir erzeugen einen neuen Job. Aktionen wie ZIP-Archivierung und Mailversand gibt es nämlich nicht innerhalb von Transformationen.
Die Job-Aktionen sind schnell zusammengeklickt:

Die Transformation “Test Export” dient zum Laden, Ändern und Speichern von Daten. Die Konfiguration der “Zip file” Aktion ist selbsterklärend. Dann folgt “Send mail", und hier ist neben der korrekten Server-Einstellung wichtig, unter “Attached Files” die Option “Attach File(s) to message?” zu markieren.

Wenn alles klappt, kommt auch tatsächlich eine E-Mail mit ZIP-komprimiertem Dateianhang an. Aber: Auch die Quelldaten und die unkomprimierte Ergebnisdatei sind mit dabei. Warum das?
Es liegt einfach daran, dass sich der Job-Workflow alle Dateien merkt, die beim Ablauf verwendet wurden. Was man also braucht, ist eine Aktion, die an einem bestimmten Punkt dafür sorgt, dass der Job alle Dateien “vergisst", die nicht mit ins E-Mail sollen. Und das geht so:
Wir bauen noch eine zusätzliche Transformation direkt vor “Zip file” ein.

Diese Transformation, die ich “Vorherige Dateien vergessen” genannt habe, enthält KEINE Aktionen. Wichtig ist nur eine Option im Konfigurationsdialog:

Damit bleibt für die Mail-Aktion nur noch die finale ZIP-Datei als Anhang übrig.
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?