Zuletzt bearbeitet vor 4 Wochen
von Daniel Quathamer

Kettle Kurs Teil 2

Monitoring/Logging von Kettle Jobs

Mailversand in Kettle

Mailversand Beispiel 1

Unser erster Beispieljob versendet einfach nur eine Mail. Hier eine Gesamtübersicht der Schritte im Job:


kettle jobmonitor mail1.png

Der Job führt nur einen Dummp-Step aus, und verschickt dann eine Mail. Dazu gibt es im Reiter "Design" einen Step:



kettle jobmonitor mail2.png

In dem Dialog im Reiter "Adresses" spezifizieren Sie die Absender- und Empfängeradresse. Danach geben Sie Daten zum Mailserver an:


kettle jobmonitor mail3.png

Unser Beispiel-Mailserver verlangs Zugangsdaten zum Mailversand, diese tippen wir einfach ein. Danach wird Betreff und Inhalt der Mail definiert:


kettle jobmonitor mail4.png

Wir versenden eine einfache Testmail mit voreingestellten Kettle-Protokolldaten. Dann starten wir den Job:

kettle jobmonitor mail5.png

Der Job war erfolgreich, und es müßte tatsächlich eine Mail ankommen:

kettle jobmonitor mail6.png

Damit haben wir ein einfaches Beispiel zum Mailversand abgeschlossen.

Mailversand mit Variablen

Im obigen Beispiel haben wir die Angaben zum Mailversand "hartcodiert" in den Dialog eingetragen. Da es vermutlich mehrere Jobs mit Mailversand gibt, ist es sinnvoll die immer wiederkehrenden Angaben zum Mailserver etc. in Variablen auszulagern. Wir verfeinern also obiges Beispiel, indem wir dem Mailversand eine Transformation vorschalten, die die Variablen definiert und setzt. Hier eine Gesamtübersicht des Jobs:



Da in der Regel solche Angaben in einer Datenbank vorgehalten werden, wählen wir in der Transformation einen Table-Input Step:



Der Step selektiert die jew. Parameter, das Beispiel funktioniert unter Postgres und kann so leicht auf die eigene DB angepaßt werden.



Die Parameter werden dann über den "Set Variables"-Step zur Laufzeit im gesamten Job zur Verfügung gestellt:




Loglevel und -dateien

Versionierung von Jobs

  • Kettle Jobs und git-Versionierung

Entfernen der Connection-Elemente

Beim Speichern eines Jobs wird immer die Connection mitgespeichert. Daher muss sie vor dem Commit ins git gelöscht werden. Hierzu ist der gesamte Tag sowohl im Job, als auch in den Transformationen zu löschen.

kettle integration 1.png

Die Connection-Information in den einzelnen Schritten bleibt jedoch enthalten.

kettle integration 2.png

Jobmanagement

Im folgenden zeigen wir wie Sie Jobs "on demand" direkt aus HISinOne oder SuperX im Browser vom Nutzer starten lassen.

Eigenes BI-Modul

Ein Kettle Job ohne Eingabeparameter kann in einem eigenen "Mini"-Modul deklariert und über das HISinOne-Jobmanagement ausgeführt werden.

  1. Erstellen Sie ein minimales Modul mit einer Modul-XML-Datei
  2. In der Modul-XML-Datei im Bereich ETL können Sie Ladejobs deklarieren
  3. Das Modul können Sie auf eine SuperX- oder BI-Installation synchronisieren oder die zip-Datei dort unter $SUPERX_DIR bzw. webapps/superx entpacken
  4. Danach ist es in der BI-Komponentenverwaltung sichtbar:

kettle myjobs1.png

Mit Klick auf das "Installations-"Icon wird es installiert

kettle myjobs2.png

und danach ist es auch in der Konnektorenübersicht sichtbar, inkl. Unter-Ladejobs:

kettle myjobs3.png


Die Jobs können dann über das BI Jobmanagement ausgeführt werden. Auch ein zeitgesteuertes Ausführen ist möglich , per Kommandozeile.

Über die Browser-Oberfläche ist ebenfalls ein zeitgesteuerter Update möglich. Gehen Sie dazu in die Admin-Rolle, und wählen das Menü Administration -> Konfigurationsassistenten:

kettle myjobs5.png

Ajuf dem Reiter "Business Intelligence" können Sie den jew. Job markieren und so in die nächtliche Laderoutine aufnehmen:

kettle myjobs6.png

Weitere Details siehe die Beschreibung des Installationsassistenten bei HIS.

BI Ladejob ausführen

Um den Job im System bekannt zu machen wird ein Eintrag in der eduetl-Tabelle sx_jobs angelegt.

Feld Beschreibung
tid tid
uniquename Unique Name
caption Bezeichnung
filepath Pfad zur Datei
sachgebiete_id Sachgebiet
kenn_profil Optional: Kenn-Profil
hs_nr Optional: Hochschulnummer
modus_supported Modus unterstützt?
params optionale Parameter
check_sql optionaler Prüf-SQL

Ein Beispiel - Datensatz sieht wie folgt aus:

tid uniquename caption filepath ... check_sql
1450 nhs_stbb_hhpl_manuell Stellen lt. HH-Plan manuell einlesen kenn/etl/nhs_stbb_manuell/stbb_hhpl_manual_upload.kjb ... select count(*) from kenn_stelle_hhpl

Das Ergebnis des Prüfprotokolls erscheint nach Ausführen des Jobs im Ladeprotokoll. Hier wird die Anzahl Datensätze in der Zieltabelle gezählt.

Die Masken, welche Ladejobs ausführen benötigen zwingend das Feld dokettlejob. Anhand dieses Feldes wird dem System mitgeteilt, dass ein Kettle-Job auszuführen ist. Das Feld darf versteckt werden.

kettle integration 3.png

Um die auswählbaren Kettle-Jobs zu definieren wird auf die Tabelle sx_jobs zugegriffen.

kettle integration 4.png

Kitchen

Kitchen dient der Ausführung von Kettle Jobs via Kommandozeile. Wichtig ist die Umgebung, in der Kitchen gestartet wird.

Home-Verzeichnis

Zunächst ist es wichtig, das Home-Verzeichnis von Kettle beim Aufruf von Kitchen zu kennen. Standardmäßig liegt das Verzeichnis in HOME/.kettle, also unter Linux (3 Varianten):

$HOME/.kettle
~/.kettle
/home/Benutzername/.kettle

und unter Windows ( 2 Varianten):

C:\users\Benutzername
C:\Documents and Settings\{Benutzername}\.kettle

Im Home-Verzeichnis von Kettle werden Konfigurationsdateien gesucht. Sie können das Home-Verzeichnis auch variiieren, indem Sie die System-Umgebungsvariable KETTLE_HOME setzen.

Umgebungsvariablen

Im Home-Verzeichnis wird nach zwei Dateien gesucht:

kettle.properties
Allgemeine Umgebungsvariablen
shared.xml
Datenbankverbindungen

Kettle.properties

Sie können in der Textdatei beliebige Konfigurationen setzen, die Sie nicht in den Jobs / Transformationen oder in der Datenbank speichern wollen, z.B. Zugangsdaten für Email-Server. Beispielinhalt:

MAILUSER = schulung@superx-projekt.de
MAILPW = anfang12

Sie können Passworte sogar verschlüsseln, indem Sie das Kommandozeilen-Tool "encr" nutzen. Unter Linux:

encr.sh -kettle anfang12

Unter Windows:

encr.bat -kettle anfang12
attention.svg Wenn Ihr Passwort Leerzeichen oder Sonderzeichen enthält, ist es sicherer das Passwort mit einfachem Hochkomma (Linux) oder doppelten Anführungsstrichen (Windows) zu umschließen.

Es wird ein verschlüsseltes Passwort ausgegeben:

Encrypted 2be98afc86aa7f2e4aa17a871d095fe88

Dieses Passwort können Sie dann in die kettle.properties eintragen:

MAILUSER = schulung@superx-projekt.de
MAILPW =Encrypted 2be98afc86aa7f2e4aa17a871d095fe88

Shared.xml

Speziell für Datenbankverbindungen gibt es eine eigene Datei. Hier ein Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<sharedobjects>
  <connection>
   <name>eduetl</name>
   <server>localhost</server>
   <type>POSTGRESQL</type>
   <access>Native</access>
   <database>superx</database>
   <port>5432</port>
   <username>superx</username>
   <password>Encrypted 2be98afc86aa7f2e4aa17a871d095fe88</password>
   <servername></servername>
   <data_tablespace/>
   <index_tablespace/>
   <attributes>
     <attribute>PORT_NUMBER<attribute>5432</attribute></attribute>
    </attributes>
 </connection>
 <connection>
   <name>hisinone</name>
   <server>localhost</server>
   <type>POSTGRESQL</type>
   <access>Native</access>
   <database>hisinone_cust</database>
   <port>5432</port>
   <username/>
   <password>Encrypted 2be98afc86aa7f2e4aa17a871d095fe88</password>
   <servername/>
   <data_tablespace/>
   <index_tablespace/>
   <attributes>
     <attribute>PORT_NUMBER<attribute>5432</attribute></attribute>
   </attributes>
 </connection>
</sharedobjects>

Es werden zwei Datenbankverbindungen konfiguriert, die dann in Kettle Transformationen im Element "connection" genutzt werden können.

attention.svg Bei der Entwicklung von Jobs und Transformationen werden die Connection-Elemente auch in den jew. Quelltext geschrieben und gespeichert. Und bei der Ausführung haben diese Elemente eine höherer Priorität als die shared.xml, so dass man diese Elemente vor dem Installieren im Zielsystem entfernen muss.

Kettle Goodies

  • Coole neue Features