Monatsdimension in Jedox/Palo mit tFixedFlowInput

Montag, 09. Januar 2012, 21:12 Uhr

Noch keine Kommentare

Wenn man mit Jedox bzw. Palo arbeitet und sich den ein oder anderen Würfel baut, dann gehört da meist auch immer eine Dimension „Monat“ mit dazu. Da diese in der Regel auch immer gleich aussieht, kann die Erstellung sehr einfach wiederverwendbar gestaltet werden wenn man das Talend Open Studio for Data Integration als ETL-Tool benutzt.

Ziel dieses kurzen Tutorials ist es innerhalb eine Jedox- bzw. Palo-Datenbank eine 3-stufige Dimension „Monat“ anzulegen. 3-stufig bedeutet beispielsweise für den April:

  • Alle Monate
    • 2. Quartal
      • April

Da die Zuordnung von Monaten zu Quartalen im Gegensatz zu den Kalenderwochen immer gleich ist, taucht in der Monatsdimension auch keine Jahreszahl auf.

Die folgende kurze Anleitung funktioniert sowohl mit der kommerziellen Jedox BI Suite als auch dem zugehörigen Open-Source-Ableger Palo. Als ETL-Tool verwenden ich das Talend Open Studio for Data Integration in der Version 5 und mit folgendem kleinen Job legen wir ganz einfach und schnell die 3-stufige Monatsdimension an:

Der gesamte ETL-Job zum Anlegen der 3-stufigen Monatsdimension

Zur Erläuterung der einzelnen Schritte:

  • tPaloConnection – Verbindung zum OLAP-Server herstellen
    Zunächst einmal müssen wir die Verbindung zum OLAP-Server herstellen und uns mit korrekten Zugangsdaten anmelden. Wenn bei der Installation keine Änderungen vorgenommen wurden dann läuft der OLAP-Server unter „localhost“ auf dem Port „7777“ mit dem Benutzernamen und Passwort „admin“ kann man sich anmelden. In der Praxis sollte man aber natürlich nicht unbedingt immer mit dem Admin-Benutzer arbeiten…
  • tPalodatabase  – Datenbank anlegen falls nötig
    Da jede Dimension innerhalb einer Datenbank angelegt werden muss, überprüfen wir im zweiten Schritt zunächst die Existenz der Datenbank und legen diese wenn nötig an. In den Eigenschaften der Komponente tPaloDatabasenehmen wir dazu folgende Einstellungen vor:

    • eine bestehende Verbindung verwenden: Haken gesetzt
    • Verbindungseinstellungen: „tPaloConnection_1“
    • Database: „Hugo“
    • Action on database: „Create database if not exists“
  • tFixedFlowInput – Struktur der Monatsdimension übergeben
    Mit Hilfe der Komponente tFixedFlowInputlässt sich ganz einfach der Inhalt einer CSV-Datei verarbeiten. Als Modus wählen wir hierzu „Use inline content (delimited file)“ und fügen für das Beispiel folgenden Inhalt in das Textfeld:

    Alle Monate;1. Quartal;Januar
    Alle Monate;1. Quartal;Februar
    Alle Monate;1. Quartal;März
    Alle Monate;2. Quartal;April
    Alle Monate;2. Quartal;Mai
    Alle Monate;2. Quartal;Juni
    Alle Monate;3. Quartal;Juli
    Alle Monate;3. Quartal;August
    Alle Monate;3. Quartal;September
    Alle Monate;4. Quartal;Oktober
    Alle Monate;4. Quartal;November
    Alle Monate;4. Quartal;Dezember

    Anschließend sollte noch das Schema angepasst werden. Die Spalten legen wir hierzu alle mit dem Datentyp „String“ an und nennen diese „ALLE_MONATE“, „QUARTAL“, „MONAT“:

    Schema der Komponente tFlowFixedInput

  • tPaloDimension – 3-stufige Monatsdimension anlegen
    Den Ausgang der Komponente tFixedFlowInput verbinden wir nun mit der Komponente tPaloDimensionund nehmen dabei folgende Einstellung vor:

    • Eine bestehende Verbindung verwenden: Haken gesetzt
    • Verbindungseinstellungen: „tPaloConnection_1“
    • Database: „Hugo“
    • Dimension: „Monat“
    • Action on dimension: „Create dimension if not exists“
    • Create dimension elements: Haken gesetzt
    • Consolidation type: „normal“

    Die Spalten werden dann in absteigender Reihenfolge wie folgt ausgewählt:

    Spaltenreihenfolge innerhalb der Komponente tPaloDimension

Wenn wir uns jetzt die Dimension über das Excel-Plugin oder den OLAP-Manager über die Web-Oberfläche anschauen, sollte diese ausschnittsweise wie folgt aussehen:

  • Alle Monate
    • 1. Quartal
      • Januar
      • Februar
      • März
    • 2. Quartal
      • April
      • Mai
      • Juni
    • usw.

Da wir diese Dimension sicherlich öfter brauchen lässt sich das Beispiel sehr gut und schnell durch wiederverwenden.

Update 16.10.2013: Gerne komme ich an dieser Stelle auch noch dem Hinweis eines Blog-Lesers nach, der sich an diesem Tutorial orientiert aber später Probleme beim Beladen des Palo-Cubes hatte. Beim Beladen des Cubes gibt es insbesondere 2 Dinge zu beachten:
  • es dürfen nur Basiselement (z.B. Januar, Februar etc.) in den Cube geladen werden, die Aggregation nach Quartalen geschieht automatisch; im vorliegenden Beispiel wäre es also nicht möglich das „2. Quartal“ in den Cube zu laden
  • das Basiselement muss bereits innerhalb der Dimension vorhanden sein, es wird nicht implizit angelegt (es darf also kein Monat fehlen)
Danke für die Rückmeldung, vielleicht bleiben mit obiger Ergänzung anderen Lesern ähnliche Probleme erspart…

Tags: ,

Kommentare zu diesem Beitrag

Bisher wurde noch keine Kommentare abgegeben.
Sie können also die oder der Erste sein.

Jetzt einen neuen Kommentar abgeben



(optional, Ihr Name wird entsprechend verlinkt)