Talend Forum

Normale Version: Talend - Palo (die neuen 4.1) Komponenten
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Talend - Palo (die neuen 4.1) Komponenten

Manchmal brauchen Änderungen / Neuerungen eine gewisse Zeit. Als vor ca. 3 Jahren die tPaloOutput Komponente in TOS Einzug gehalten hat war klar, dass es bei dieser Komponente nicht bleiben kann. Zum einen war zu dem damaligen Zeitpunkt die Firma Jedox und der Olapwürfel Palo in Frankreich noch ziemlich unbekannt(zumindest bei Talend) und zum anderen konnten die Abhängigkeiten zu bestehenden Windows-DLL’s einfach nicht bestehen bleiben. Mit der kommenden TOS Version 4.1 finden daher auch 12 neue Palo Komponenten Einzug in die Kategorie BI/Palo.
[attachment=147]

Allen 12 Komponenten ist eins gemein, sie benötigen keine Client oder sonstige Installation mehr. Somit hat man auch die Möglichkeit einen Palo Würfel auf Basis eines Linux, Solaris oder auch eines iSeries Systems aufzubauen. Ein Host war mir bis Dato noch nicht vergönnt. Ferner wurde die notwendig API komplett neu entwickelt. Von Jedox wird somit nur der Palo-Server benötigt.
Dieses HowTo soll zeigen, wie mit den neuen Palo Komponenten gearbeitet werden kann. Dieses Beispiel wird auf Basis einer CSV-Datei eine Datenbank, die notwendigen Dimensionen und letztendlich auch einen Würfel erstellen. Abschließend werden in diesen Würfel dann noch Daten überführt.


Demodaten

[attachment=146]
Für die ersten drei der aufgeführten Spalten, soll auch die jeweilige Dimension mit den entsprechenden Elementen aufgebaut werden. Die Spalte Umsatz (wie der Name sagt) umfasst hierbei den generierten Umsatz über die jeweilige Region in Abhängigkeit vom Kunden und dem Zeitpunkt.


Schritt 1 – Die Verbindung

Wie bei den anderen Datenbankkomponenten kann nun auch mittels tPaloConnection eine Verbindung zu Beginn der Verarbeitung geöffnet und über den gesamten Job verwendet werden. Um eine Verbindung zu öffnen, wird die Komponenten tPaloConnection aus der Kategorie Business Intelligence / Palo direkt in den Prozess mittel D&D gezogen. Bitte anschließend innerhalb der „Basic settings“ die Einstellungen für User, Password, Server und Port vornehmen.
[attachment=148]

Nach den jeweiligen Eingaben, kann der Prozess mittels F6 direkt gestartet werden. Sollte keine Fehlermeldung ausgegeben werden, so ist die Verbindung erfolgreich und es kann mit der restlichen Umsetzung begonnen werden. Wichtig! Eine SSL Unterstützung ist an dieser Stelle noch nicht vorgesehen. Mach nach meiner Meinung auch keinen Sinn, schließlich sollten Würfel nur innerhalb des Unternehmens (hinter der Firewall) aufgebaut bzw. geladen werden.


Schritt 2 – Die Datenbank

Dimensionen, Daten und Würfel benötigen neben einem Palo Server auch eine Palo Datenbank. Diese Datenbank kann mit der gleichnamigen Komponente tPaloDatabase sowohl erstellt, aber auch gelöscht werden. Diese Komponente soll sich natürlich direkt auf unsere geöffnete Verbindung beziehen. D.h. nur wenn die Verbindung fehlerfrei geöffnet wurde, kann eine Datenbank erstellt werden. Dieses gilt im Übrigen auch für die restlichen Komponenten. Innerhalb von TOS kann mittels einer Trigger-Steuerung eine Ablaufsteuerung „On Component OK“, „On Subjob OK“ implementiert werden. Auf der führenden Komponente betätigt man die rechte Maustaste und wählt unter der Menu „Trigger“ die jeweilige Steuerung aus.
[attachment=149]

Da die jeweiligen Trigger-Parameter mitunter etwas erklärungsbedürftig erscheinen, verknüpfen wir die beiden Komponenten „tPaloConnection“ und „tPaloDatabase“ mittels „On Component OK“ (Anmerkung: Wenn ich einmal Lust verspüren sollte, dann werde ich vielleicht zu der Trigger-Steuerung etwas schreiben. Bis dahin empfehlt ich den Besuch eines Talend-Trainings). Nachdem die beiden Komponenten in Bezug gesetzt wurden, muss noch ein Datenbankname eingetragen und der Bezug zu geöffneten Verbindung hergestellt werden. Da der Prozess wahrscheinlich mehrfach ausgeführt wird, sollte als „Action on database“ der Eintrag „Delete database if exists and create“ ausgewählt werden.
[attachment=150]

Nach der Ausführung des Prozesses, sollte im Modeller einen neue Datenbank erscheinen.
[attachment=151]


Schritt 3 – Die Dimensionen

Bekanntlich benötigt ein OLAP-Würfel immer etwas zum Auf- und Zuklappen, der Fachman spricht hier auch von einem Drill-Down. Auf der höchsten Ebene anfangen und dann langsam bis zu Ergebnis rein bohren. Auch Palo macht hier keine Ausnahme und bietet mit Dimensionen und den dort enthaltenen Elementen eine Basis für die Aufbereitung der Daten. (Anmerkung: Manchmal frage ich mich, wer auf die Idee mit solchen unbalancierten Bäumen gekommen ist? IBM im Rahmen mit den Kettendruckern und den grün weißen Din A3 Listen mit Sicherheit nicht.)

Aus den Demodaten (demodaten.csv) werden wir schrittweise jetzt die Dimension mit den dazugehörigen Elementen aufbauen. Hierzu wird auf der Metadaten-Ebene (linke Seite) ein entsprechender Eintrag unter der Kategorie „File delimited“ benötigt. Ein rechtsklick auf den Eintrag gestattet uns einen neuen Eintrag „Create file delimited“ vorzunehmen.
[attachment=152]

In dem nächsten Fenster geben wir nur den Namen vor, unter dem der Eintrag in unseren Metadaten wiederzufinden ist.
[attachment=153]

(Anmerkung: Auch wenn ich in dem Beispiel die Felder „Purpose“ und „Description“ nicht ausfülle, dann entbindet dass niemanden es dennoch zu tun. Talend kann auf Basis dieser Daten ein Audit durchführen und der ein oder andere Systemintegrator wurde hiermit schon vom Talend-Spezialisten zum absoluten Talend-Laien disqalifiziert.)

Fenster 2 ermöglicht nur die Eingabe des notwendigen Dateipfads.
[attachment=154]

Im nächsten Fenster können dann die Einstellung wie Feld- und Zeilenseparator, die Interpretierung der ersten Zeile als Spaltennamen und die Codepage festgelegt werden.
[attachment=155]

Im letzten Fenster wird nur noch festgelegt wie Talend intern mit den Werten arbeiten kann. Der Einfachheit wechseln wie hier direkt unsere Wertespalte auf Double. Das erspart uns hinterher einen Konvertierungsprozess.
[attachment=156]

Die neu erstellten Metadaten bitte mit D&D von der linken Seite in den Prozess reinziehen und das aufgehende Fenster einfach mit OK bestätigen.

Da die erste Dimension nur unsere Kundennummern enthalten sollen und wir eine Parent-Ebene einführen wollen, behelfen wir uns mit einem tMap zwischen der tFileInputDelimited und der tPaloDimension Komponente.
[attachment=157]

Unser Mapper erfüllt an dieser Stelle zwei Dinge: 1. Wird nur die Kundennummer an die Dimensionskomponente weitergegeben und 2. führen wir eine zusätzliche Ebene mit dem festen Inhalt „Alle Kunden“ ein.
[attachment=158]

Der SubJob (blauer Kasten) wird jetzt mittels dem Trigger „On Subjob OK“ von der tPaloConnection Komponenten ausgeführt.

Auch die tPaloDimension Komponente benötigt noch einige Vorgaben. Wie im obigen Fall beziehen wir uns auch hier auf die geöffnete Verbindung. Als Datenbanknamen verwenden wir den in tPaloDatabase angegebenen Namen. Da unsere Dimension mit Elementen erstellt werden soll, benötigen wir bei der Option „Action on Dimension“ den Eintrag „Create Dimension“, die Aktivierung von „Create dimension elements“ und natürlich auch einen passenden Dimensionsnamen.
[attachment=159]

In dem unteren Bereich der Komponente erscheint nach der Aktivierung von „Create dimension elements“ eine Reihe von weiteren Parametern. Für uns ist aber nur der „Consolidation Type“ und der Bereich Schema relevant. Über den Consolidation Type wird festgelegt wie mit den angelieferten Werte vom tMap verfahren werden soll und über das Schema wir definiert welche Column mit welchen Type und in welchem Modus erstellt wird. Da es sich in unserem Fall nicht um eine Parent-Child Beziehung handelt verwenden wir als „Consolidation Type“ die Einstellung „Normal“. D.h. die erste Zeile im Schema Fenster bildet den Vater von der nachfolgenden Ebene und so weiter. Um die Spalten 1:1 aus dem Mapper zu bekommen drückt man am besten den Button mit dem Doppel-Plus und bestätigt das nachfolgende Fenster einfach mit OK. Alternativ können die Einträge aber auch per Hand (Plus-Button->Auswahl Input Column) eingetragen werden.
[attachment=160]

Nach einem kleinen Test (mit F6) sollte dann im Modeller eine Dimension mit der passenden Struktur entstanden sein.
[attachment=161]

Mit den Regionen und dem Jahr bitte 1:1 wie bei der Kundennummer verfahren. Geübte Anwender können natürlich aus einem einzigen Mapper die Dimensionen direkt aufbauen. Achten Sie bitte auf die passenden Dimensionsnamen (Regionen und Jahre) und verbinden die SubJobs (blaue Kasten) mit dem Trigger „On Subjob OK“.
[attachment=162]

Sollten Sie sich unsicher sein, so gilt es die Ergebnisse immer wieder in der erstellten Datenbank zu verifizieren. Wenn die Dimension mit den Elementen schon nicht stimmig sind, dann kann letztendlich auch kein Würfel geschrieben werden.


Schritt 4 – Der Würfel

Der vorletzte Schritt bevor die Daten in den Würfel geschrieben werden können, erfordert eine Zuweisung der notwendigen Dimensionen zu einem Würfel(Cube). Die Zuweisung der Dimension zu einem Würfel ist abhängig wie die Daten hinterher in den Würfel geschrieben werden sollen. In dem Beispiel werden die Dimensionen in der oben definierten Reihenfolge(Kundennummer, Region, Jahr) erstellt.

Die Komponente tPaloCube wird wie gehabt mittels der Trigger-Steuerung „On SubJob OK“ mit dem vorhergehenden SubJob verbunden. Als Parameter wird auch hier die bestehende Verbindung genutzt und die jeweiligen Namen für Datenbank und Cube eingetragen.
[attachment=163]

Für die Dimensionlist werden die relevanten und bereits vorhandenen Dimensionen der Reihenfolge eingetragen. Für eine leere Zeile muss nur der Button mit dem grünen Plus Symbol gedrückt werden.
[attachment=164]

Die Reihenfolge kann durch die Pfeil-Buttons jederzeit variiert werden.


Schritt 5 – Die eigentlichen Daten

Nachdem die Dimensionen jetzt in einem Würfel vorliegen, kann mit dem eigentlichen Werteschreiben begonnen werden. Hierzu werden die CSV Daten erneut benötigt. Geschickt ist hierbei den Datenstrom der tFileInputDelmited Komponente wieder über einen Mapper(tMap) und dann erst in den tPaloOutputMulti zu übertragen. Es könnte durchaus vorkommen, dass einige Felder für den Würfel nicht benötigt oder erst Typenkonvertierungen durchgeführt werden. In einigen meiner Beispiele erstelle ich hierüber s.g. Kennzahlen Dimensionen welche nicht physisch vorliegen, sondern nur den Wert genauer qualifizieren (z.B. Menge oder Umsatz).

Da OLAP Würfel eine besondere Speicherform aufweisen akzeptieren diese Systems im Regelfall nur eine einzige Kennzahl. Ein direktes Schreiben des folgenden Beispiels ist daher nur durch eine vorhergehende Umwandlung möglich:
[attachment=165]

Um die Daten jetzt in einen Würfel schreiben zu können, müssen die Daten in folgendem Format vorliegen:
[attachment=166]

Glücklicherweise umfasst unser Beispiel nur eine einzige Kennzahl. Eine notwendige Konvertierung kann somit entfallen.
[attachment=167]

Bei dem durchgeführten Mapping handelt es sich daher um ein 1:1 Mapping. Wichtig ist auch hier die Reihenfolge der Dimensionen in Abhängigkeit vom Würfel einzuhalten. Anderenfalls könnte es bei der Prozessausführung zu keiner Werterstellung führen. Die Optionen der tPaloOutputMulit Komponente benötigen wie gehabt den Bezug zu der tPaloConnection Komponente, den Namen der Datenbank und des Würfels und es muss die Spalte ausgewählt werden, welche die Kennzahl enthält.
[attachment=168]

Nach der Prozessausführung sollte dann ein Ergebnis vom Würfel mittels des Excel PlugIn‘s abrufbar sein.
[attachment=169]


Abschließend

Das kurze Beispiel zeigt nur einen ganz kleinen Teil der Möglichkeiten. Denkbar sind Anwendungsszenarien wo SAP als Datenquelle dient, eine Planung in Palo erfolgt und anschließend die berechneten Werte wieder direkt ins SAP System zurückgeschrieben werden können. Auch ein typisches DWH benötigt mitunter Berechnungen aus einem OLAP-Würfel (End Of Year, manuelle Usereingabe, …).
Sowohl Talend aber auch Palo können höhere Geschwindigkeiten bei der Würfel-Erstellung erzielen, allerdings ist nur in den kommerziellen Varianten (Subskription) eine parallele Verarbeitung vorgesehen. Sollten Funktionen fehlen oder nach Ihrer Meinung falsch implementiert worden sein, so bin ich an dieser Stelle durchaus offen für Kritik bzw. konstruktive Anregungen und werde versuchen diese dann schrittweise in den kommenden Talend Versionen umzusetzen. Ferner bleibt aber immer noch die Möglichkeit selbst an TOS die gewünschten Änderungen umzusetzen.
Referenz-URLs