Leider verrät der Titel schon die Preisfrage für die Essbase Administratoren und Entwickler unter uns. Ich kenne kein Werkzeug der Community, welches so oft eingesetzt wird, wie der Outline Extractor. Sein kompletter Name hat diesem exzellenten Tool auch einen Ruf beschert, der oft wieder viel Überzeugungsarbeit erfordert: OlapUnderground Essbase Outline Extractor. Jetzt gibt es die Next-Generation-Version mit vielen Verbesserungen! Daher hier einen Beitrag, um diese zu verbreiten.
Eine brennende Frage mag sein, wer hinter dem Namen OlapUnderground steckt. Es sind 2 Personen, die jetzt bei Oracle arbeiten, einer als Produkt Manager und der andere als Chef-Entwickler. Die beiden konnten diese Tätigkeiten nicht mit der Arbeit bei Oracle vereinigen und haben den Source Code an Tim Tow weitergereicht. Dieser hat daraus die Next Generation Version erstellt und auch frei verfügbar gemacht.
Was kann der Essbase Outline Extractor?
Nun, es macht einen Extrakt der Outline in eine Datei oder Tabelle, die weiter verarbeitet oder analysiert werden kann. Ist dieses denn so etwas Besonderes? Ja, denn es macht das „richtig“, schnell und bietet viele Optionen. Diese Next-Generation-Version ist jetzt völlig überarbeitet und in Java portiert worden. Damit ist keine Essbase Runtime Client Installation mehr nötig, nur eine Java Runtime Environment (JRE). Solange keine Firewalls im Wege stehen, kann der Rechner mit dem Extractor arbeiten.
Eine weitere Superfunktion ist die Verwendung von „properties“ Dateien und damit die Automatisierung von Extraktionen. Diese Dateien sind sehr einfach zu erstellen, denn eine Extrakt-Konfiguration in der Benutzeroberfläche kann als properties-Datei gespeichert werden. Dann kann diese mit der Kommandozeilenversion in Batchprozessen erstellt werden.
Extrakt Prozess mit der Benutzeroberfläche
Der Extraktions-Prozess kann je nach gewählten Optionen einen anderen logischen Weg gehen. Das heißt, wenn eine Option gewählt wird, dann werden die relevanten Reiter mit weiteren Optionen auf der linken Seite aktiviert. Dann kann man auch direkt in diesen Prozessschritt springen und nicht mit „Next“, „Next“ usw..
Start
Generell kann der Prozess mit einer gespeicherten oder einer neuen Extraktion beginnen. Es können also Properties-Dateien mit den Einstellungen abgelegt werden, die dann erneut in der Benutzeroberfläche ausgeführt werden können.
Abbildung 1: Startfenster
Input Source
Es gibt 3 Quellen, mit denen der Outline Extractor verwendet werden kann. Selbstverständlich direkt auf die Outline einer Datenbank (Essbase API), aber auch die Extraktion der Outline als XML „MaxL Extracted Outline“ und dann wird dieser Export verwendet. Als letztes gibt es die „MaxL Extracted File” welches eine vorher exportierte XML Datei als Eingabe verwendet. In der letzten Option braucht man auch keine Essbase Client Installation für den Outline Extractor.
Abbildung 2: Quelle der Outline
Mit dem Essbase Administration Services oder den MaxL Befehl: export outline <app>.<db> all dimensions to xml_file <filename> kann eine Outline in eine XML Datei exportiert werden. In Abbildung 3 sehen sie einen Ausschnitt einer solchen XML Datei. Diese kann als Quelle dienen für den Outline Extractor.
Abbildung 3: Beispiel einer Outline Ausgabe in XML Format.
Login
Zur Anmeldung muss entweder der Servername oder die URL vom Analytic Service Provider angegeben werden. Eine Beispiel URL vom APS ist ‚http://essbasehost:13080/aps/JAPI‘
Nachdem der Benutzername und Password eingegeben sind und auf dem Login Knopf geklickt wurde, erscheinen in alphabetischer Reihenfolge die Applikationen und Datenbanken, auf denen Rechte zugewiesen wurden. Hier kann man eine Datenbank auswählen.
Abbildung 4: Login Fenster und Selektion der Datenbank.
Dimensionen
In dem Reiter Dimensionen sieht man die Dimensionen der Datenbank. Neu sind hier die Filtermöglichkeiten. Hier können Sie einen Filter angeben mit der Syntax, die Sie auch aus den Berechnungsskripten kennen. In Abbildung 5 sehen Sie ein Beispiel.
Wenn ein Filter verwendet wird, dann muss für jede zu exportierende Dimension ein Filter angegeben werden. Wie auch in der Abbilung 5 sind Year und Market selektiert und beide haben eine Filterdefinition. Eine weitere Dimension ohne Filterangabe zu selektieren ist nicht möglich. Es kann ein positiver (Selektierung) oder negativer Filter (Ausschluss) angegeben werden.
Abbildung 5: Auswahl von Dimensionen und setzen von einem Filter.
Wenn nichts angegeben wird, dann werden einfach alle Elemente ausgewählt. Dieses ist in der Abbildung 6 gezeigt.
Abbildung 6: Auswahl aller Dimensionen.
Output Handlers
Unter dieser Option hat sich sehr viel getan. Es wurden verschiedene Formate hinzugefügt, welche die Integration dieser Stammdaten viel einfacher machen. Es ist jetzt sogar möglich, die Daten direkt in eine relationale Tabelle zu schreiben. Das Potential, welches sich dann erschließt, wird ihnen wohl deutlich sein bezüglich Zugriff, Modifikation und Weiterverwendung. Man könnte sich ja fast vorstellen, eine Master-Outline zu erstellen und die Extrakte so zu erstellen, dass weitere Essbase-Outlines hieraus erstellt werden können. Es entsteht ein „EPMA light“.
Es können verschiedene Exportformate auf einmal ausgewählt werden. Diese Exporte werden dann alle gleichzeitig ausgeführt und die Dateien werden dann in das Verzeichnis abgelegt. Ein „prefix“ gibt die Unterscheidung an und sogar diesen kann man selbst definieren. Standard trägt der Fastload Export z.B. den Namen 2008SR2SRV.Sample.Basic.FastLoadFile.Measures.csv und der Export in Planning Format 2008SR2SRV.Sample.Basic.Planning11.Measures.csv. Aber unten auf der Seite kann definiert werden, wie die extrahierte Datei heißen sollte. Hier wurde auch wieder eine sehr praktische Funktionalität programmiert: Variablen für den Servernamen, Applikation, Datenbank, Outputformat und die Dimension. Super!
Eine Ausnahme ist der Export in eine relationale Tabelle. Diese kann nicht gleichzeitig mit anderen ausgeführt werden und hierbei entstehen auch keine Dateien.
Abbildung 7: Auswahl der Extrakt Formate.
Hier doch eine kurze Erklärung der verschiedenen Extrakt Formate:
Fast Load File Writer. Ein super schneller Extrakt Ersteller, in dem eine Parent-Child-Struktur mit den wichtigsten Elementeigenschaften exportiert wird.
Documentation Text Writer. Wird hauptsächlich für Dokumentationszwecke der Outline verwendet.
Abbildung 8: Beispiel einer Ausgabe in Dokument Format.
Generation Text Writer. Der Export ist geeignet, um mit einer Laderegel im Generation-Build in eine Outline geladen zu werden. Der Export enthält nur die Element-ID und Alias Information.
Level Text Writer. Wie der Generation Text Writer, aber dann mit Level Information.
MaxL XML Writer. Wie sie vielleicht wissen, gibt es feste XML Definitionen für Essbase. Schon sehr früh war das damalige Hyperion Solutions bei diesen Entwicklungen involviert.
Hyperion Planning 11 Test Writer. Hiermit kann eine Essbase Outline in eine Datei exportiert werden, welche mit dem Outline Load Utility in Planning geladen werden kann. Sehr praktisch, wenn sie aus einer Essbase Datenbank eine Planning Applikation machen wollen. Der Weg über den EPMA ist ja ein mühseliger.
Abbildung 9: Beispiel einer Ausgabe in Planning 11 Format.
Relational Cache Writer. Wie schon oben beschrieben, kann der Export mit einem JDBC Treiber in eine relationale Datenbank geschrieben werden. Also können alle Datenbanken wie Oracle, Microsoft SQL, IBM DB2, MySQL oder andere, die einen JDBC Treiber haben, verwendet werden. Hier gibt es auch eine Versionierung der Extrakte, also könnte es ein Mittel sein, um Outline Strukturen und Veränderungen zu dokumentieren und nachzuhalten.
Load File Test Writer. Dieses Format ist geeignet, um den Extrakt mit einer Essbase Laderegel in eine Outline zu laden. Es werden die .csv Regeln angewendet, was Komma und Hochkommas betrifft.
Abbildung 10: Beispiel einer Ausgabe in Load File Format mit „Pipe“ als Trennzeichen.
Konfiguration für den Export in eine Relationale Tabelle
Dieses Fenster wird verfügbar wenn sie auch die „Relational Cache Writer“ Option gewählt haben. Nachdem die Daten eingegeben wurden, kann mit dem Knopf die Verbindung getestet werden. Wenn die Tabellen nicht vorhanden sind, dann warden diese erstellt.
Auch diese Eingaben werden in einer .properties Datei gespeichert!
Abbildung 11: Konfiguration der RDBMS Anbindung.
Abbildung 12: Exportergebnis in einer MS SQL Datenbank.
Für weitere Details verweise ich gern auf die Dokumentation. Der Link ist unten in diesem Beitrag angegeben.
Export Datei Optionen
In diesem Fenster können sie verschiedene Optionen angeben, wie die Export Datei aussehen und was in ihr enthalten sein sollte. Für jedes Exportformat wird ein Bereich erstellt, in dem die Optionen für dieses Exportformat selektiert werden können.
Abbildung 13: Export Datei Optionen.
In dem Beispiel in Abbildung 8 sehen sie die Optionen des Load File Formates. Die wichtigsten sind, ob es eine Kopfzeile geben sollte, welche Dateierweiterung und welches Trennzeichen verwendet werden sollten.
Performance
Neu ist auch dieses Fenster mit Optionen, in denen die Exportgeschwindigkeit optimiert werden kann. Weil der Source-code auf die Java API umgestellt wurde, musste eine Lösung gefunden werden für das bekannte Problem, dass Essbase für jede Abfrage einen neuen Port öffnet. Da ein offener Port nicht direkt wieder geschlossen wird, kann bei großen Outlines schnell das Limit an Ports erreicht werden. Deshalb wird die Datenbank erst wieder erreichbar, wenn die Auszeit eines Ports diesen wieder frei gibt. Die Option sollte die Abfrage etwas verzögern, wirkt also mehr als eine Bremse.
Abbildung 14: Optionen zur Regelung der Exportgeschwindigkeit.
Member Query Cursor Size – Die Anzahl der Elemente die bei einer Abfrage aus der Outline abgezogen werden. Braucht nur bei sehr schlechten Netzwerkverbindungen angepasst zu werden.
Member Query Delay – Die Wartezeit zwischen den Abfragen. Diese Option sollte heraufgesetzt werden, wenn es zu einer Warteschlange kommt.
Member Query Delay Increment – Wenn es zu einer Warteschlage gekommen ist, dann wird eine Pause gemacht. Hier kann die Länge der Pause definiert werden.
TCP/IP Port Exhaustion Wait Time – Wenn das Limit der möglichen Ports erreicht wurde, also wenn alle Ports für eine Zeit belegt sind, dann werden diese in den Status TIMED_WAIT gesetzt. Diese Option sollte nur nach sorgfältiger Überlegung angepasst werden, denn der ganze Server ist betroffen.
Logger Level – gibt an, welche Kategorie von Logeinträgen in die Ausgabe-Logdatei übernommen werden sollen.
Replace Line Endings in Formulas – Eine Option wie Zeilenumbrüche in Formeln definiert werden. (Empfohlen wird ‘\n’)
Escape All CSV – Eine Option, wie eine CSV Datei getrennt wird, mit Hochkommata oder Backslash.
Normalerweise exportiert der Outline Extractor eine Outline in 1 bis 3 Minuten. In einem Fall hatte ich aber eine Outline, die satte 4 Stunden brauchte. Mit Anpassungen im Query Delay (von 0 auf 10 gesetzt) Member Query Delay (von 100 auf 40 heruntergebracht) und Port Exhaustion (den Standardwert halbiert) konnte ich dieses auf 2 Stunden herunterbringen. Dieses war mir aber noch immer zu lange.
Tim Tow gab mir den Tipp, die Outline als XML-Datei zu exportieren und diese Datei als Quelle im Outline Extractor zu verwenden. Nun, das gab den gewünschten Erfolg. Im automatisierten Ablauf ist der Export in XML-Format in einer Minute durch. Im nächsten Schritt wird diese Datei in 2 Minuten in das Load File Format umgewandelt.
Finish
Der letzte Reiter enthält eine Möglichkeit um die gemachten Einstellungen als Properties Datei abzuspeichern. Diese kann dann mit der Kommandozeilenversion zur Automatisierung des Exports verwendet werden.
Der kleine Knopf Execute startet den Export. Er hat einen ungewöhnlichen Platz und schon öfter habe ich anstatt dessen den Close Knopf unten rechts verwendet…
Beim Durchlaufen des Extrakt Prozesses wird das Log sichtbar.
Abbildung 15: Starten des Exports und Loganzeige.
Nun, sie haben jetzt hoffentlich einen guten Eindruck bekommen von diesem wunderbaren Werkzeug, welches von Applied Olap völlig überarbeitet und modernisiert der Community angeboten wird. Wenn Sie es ein paar Mal verwendet haben, werden sie merken, wie gut und zuverlässig es funktioniert. Es ist auch nicht ungewöhnlich, auch in größeren Unternehmen, dass dieses in Produktionsprozesse eingebunden wird. Dann sagen wir natürlich nicht, dass es ein Olapunderground Tool ist!
Ihr Philip Hulsebosch
Weitere Links
Dokumentation: http://www.appliedolap.com/free-tools/NG_Outline_Extractor
Download: http://www.appliedolap.com/free-tools/outline-extractor
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.