Daten Export mit MDX

Generell, werden in Essbase Anwendungen viele Daten importiert. Weil Essbase diese Daten weiterverarbeitet, besteht oft auch die Anforderung, diese Daten auch in andere Systeme zu übertragen. Hierzu gibt es verschiedene Wege und in diesem Beitrag möchte ich den Export mit MDX zeigen.

MDX steht für MultiDimensional eXpressions

MDX ist eine herstellerunabhängige Sprache für Abfragen (Query Language) auf OLAP Systeme. Seit der Version 7 kann dieses MDX auch für Essbase verwendet werden. Mit der Einführung von Aggregate Storage (ASO) brauchte man eine Sprache, um Formeln während der Datenabfrage zu berechnen. Dieses wurde dann MDX.

Neben der Funktion um Berechnungen zu machen, kann diese auch für Daten Extrakte gut eingesetzt werden. Eine Erweiterung war dann die Entwicklung von „XML for Analysis“ womit MDX generierte Daten in SOAP Berichte an andere Systeme geschickt werden können.

MDX ist in seiner Struktur vergleichbar mit SQL, denn es hat auch ein SELECT, FROM, WHERE. Es hat aber zusätzlich viele weitere Funktionen die auf Dimensionen von OLAP Systeme Bezug haben, wie z.B. .PrevMember, .Parent und .FirstChild. Zudem gibt es auch die Konzepte von Tuple und Set.

Exportfunktion

Das MDX hat immer schon eine gute Performance gehabt und wird breit eingesetzt. Zum Exportieren von Daten in Dateien gab es eine große Verbesserung in der Version 11.1.2.4 die allerlei Zwischenschritte nicht mehr erforderlich machte, wenn das MDX mit MaxL ausgeführt wird.

Jetzt wurde es möglich um den Output zu formatieren – etwas was essentiell ist in automatisierte Systeme. In MaxL gibt es verschiedene SET Kommando’s die den Extrakt so aufbereiten, das andere Systeme diesen weiter verarbeiten können. Dieses waren die wichtigsten

set column_separator                   definiert das Trennzeichen, z.B. „|“

set column_header                        definiert die Spaltenüberschrift

set echo_mode                               schaltet den Export in eine Datei ein oder aus.

In dem nachfolgenden Beispiel sieht man wie diese eingesetzt werden können. Es ist ein MaxL Skript mit darin eine MDX-Abfrage in rot:

login ‚Benutzername‘ ‚Password‘ on ‚Servername‘;

set message level all;

set column_separator „|“;

set column_header on;

set echo_mode off;

alter session set dml_output alias off;

alter session set dml_output cell_status on;

alter session set dml_output numerical_display fixed_decimal;

alter session set dml_output precision 2;

spool on to ‚C:\Export\Ergebnis.txt‘;

select {[May],[Jun]} on AXIS(0),

{[100],[200]} on AXIS(1)

from [Sample].[Basic];

spool off;

logout;

exit;

Das Ergebnis ist eine Datei mit dem Namen Ergebnis.txt und dem Inhalt:

Product|May|Jun
100|2571.00|2859.00
200|2302.00|2445.00

In Detail

Die Befehle können unterschieden werden in SET und ALTER.

set message level             definiert welche Botschaften in die Logdatei geschrieben werden sollen.

set column_separator    definiert das Trennzeichen, z.B. „|“

set column_header         TRUE gibt den Dimensionsnamen als Spaltenüberschrift, FALSE nicht.

set echo_mode                schaltet den Export in eine Datei ein oder aus.

alter session set dml_output…   

Beschreibt die Formattierung der Daten in dem Export. Hierin aufgenommen sind die Anzahl der Dezimalstellen, ob ein Alias angezeigt werden soll und was mit fehlende Werte geschehen soll.

In rot ist dann das MDX mit der Selektion der Daten eingefügt. Dieser Teil kann als variable genommen werden, und damit gibt es das MaxL als Vorlage welches dann mit Variablen für MDX und Export Datei verbunden werden kann.

Fazit

MDX kann sehr gut im Zusammenspiel mit MaxL zum Daten Export verwendet werden. Einige Konfigurationsoptionen die ab der Version 11.1.2.4 zur Verfügung stehen, verbessern in einem Sprung die Formatierung, sodass das Ergebnis in der Datei direkt zum Import in andere Systeme verwendet werden kann.

Ihr Philip Hulsebosch

Veröffentlicht unter Bewirtschaftung & Automatisierung, Essbase Getagged mit: , ,