MDX (Multidimensional Expressions) ist eine leistungsstarke Sprache zum Bearbeiten und Abfragen von Daten.
Mit MDX können Sie:
Daten und Metadaten in Essbase-Cubes abfragen und in Berichte aufnehmen
Daten in einen Essbase-Cube einfügen
Daten aus einem Essbase-Cube exportieren
Eine MDX-Abfrage ist eine einzelne MDX-Anweisung mit genau einer Ergebnismenge, die für einen einzelnen Cube gilt.
Ein MDX-Bericht ist eine einzelne MDX-Abfrage, die im Cube-Kontext gespeichert wird. Sie können über Smart View und auf der Essbase-Weboberfläche auf MDX-Berichte zugreifen.
Ein MDX-Skript ist eine Datei mit der Erweiterung .mdx
, die Sie hochladen und unter "Jobs" oder in Smart View ausführen können. In MDX-Skripten dürfen nur MDX Insert- und MDX Export-Anweisungen verwendet werden. Um Rasterdaten zu analysieren, verwenden Sie MDX-Berichte anstelle von MDX-Skripten.
Themen:
Sie können Abfragen auf der Essbase-Weboberfläche mit MDX-Berichten speichern und anzeigen. Zum Erstellen eines Berichts ist mindestens die Berechtigung "Datenbankmanager" erforderlich.
Das Definieren von Layouts auf dem Register "Ad-hoc-Analyse" ist nicht unbedingt die effizienteste Methode zum Erstellen eines komplexen Berichts. Wenn Sie genau wissen, was Sie abfragen möchten, können Sie mit MDX eine Abfrage zum Auffüllen des Rasters erstellen.
Weitere Informationen zu MDX finden Sie unter MDX und MDX-Abfragen schreiben.
Wie Sie mit Berichten arbeiten, ist von Ihrem Cube-Zugriff abhängig.
Benutzer mit der Anwendungsrolle "Datenbankzugriff" oder darüber können von anderen Benutzern erstellte gespeicherte MDX-Berichte anzeigen. Welche Daten ein Benutzer im Bericht sieht, hängt vom Filterzugriff dieses Benutzers ab.
Benutzer mit Datenbankzugriff können nicht nur gespeicherte Berichte anzeigen, sondern auch Ergebnismengen in verschiedenen Formaten exportieren: HTML, CSV, Excel und JSON.
Benutzer mit Datenbankzugriff können zudem die MDX-Abfrage anzeigen, die den Bericht definiert. Dazu klicken sie neben dem Berichtsnamen auf das Menü Aktionen und wählen Ansicht aus.
Wenn Sie mindestens die Rolle "Datenbankmanager" besitzen, können Sie Berichte genauso wie Benutzer mit Datenbankzugriff verwenden. Darüber hinaus können Sie Berichte über das Menü Aktionen bearbeiten und löschen.
Wenn Sie Serviceadministrator sind, können Sie auch die Schaltfläche Ausführen als verwenden, um andere Benutzer zu impersonieren und deren Datenzugriff zu prüfen. So können Sie ganz einfach die Filter testen, die verschiedenen Benutzern zugewiesen sind.
Die MDX-Beispiele in diesem Abschnitt demonstrieren spezielle Analysetypen, die Sie mit MDX-Berichten durchführen können und deren Durchführung in der Ansicht "Ad-hoc-Analyse" weniger einfach ist.
Die folgenden Beispiele wurden für den Cube "Sample Basic" entworfen.
Metadatenbericht
Das folgende Beispiel gibt nur Metadaten zurück (Elementnamen, aber keine Daten):
SELECT {[Product].Levels(1).Members} ON ROWS, {} ON COLUMNS
Das folgende Raster wird zurückgegeben:
Attributbericht
Das folgende Beispiel verwendet Elemente einer Attribute-Dimension für Spalten:
SELECT [Product].Children ON ROWS, [Ounces].Children ON COLUMNS WHERE {Sales}
Das folgende Raster wird zurückgegeben:
Gefilterter Bericht
Das folgende Beispiel verwendet einen Slicer (WHERE-Klausel), um die Abfrage auf "Cola" zu begrenzen. Darüber hinaus begrenzt die Filterfunktion die Märkte der Ebene 0 in der Abfrage auf solche mit einem negativen Gewinn.
SELECT { Profit } ON COLUMNS, Filter( [Market].levels(0).members, Profit < 0) ON ROWS WHERE {Cola}
Das folgende Raster wird zurückgegeben:
UDA-Bericht
Das folgende Beispiel zeigt Product-Daten für Market-Dimensionselemente, die das benutzerdefinierte Attribut (UDA) "Major Market" aufweisen. Ein Slicer (WHERE-Klausel) begrenzt die Abfrage auf Sales-Daten.
SELECT [Product].Children ON ROWS, {Intersect(UDA([Market], "Major Market"), [Market].Children)} ON COLUMNS WHERE {Sales}
Das folgende Raster wird zurückgegeben:
MDX eignet sich nicht nur für die rasterbasierte Analyse, sondern ermöglicht es Ihnen auch, Teilmengen von mehrdimensionalen Daten zu kopieren und zu aktualisieren.
Mit der MDX Insert-Klausel können Sie den Cube anhand eines berechneten (nicht physischen) Elements, das Sie mit MDX definieren, mit Daten aktualisieren.
Mit der MDX Export-Klausel können Sie Abfrageergebnisse als Datenteilmengen speichern und exportieren, die Sie später anzeigen oder importieren können.
MDX Insert- und MDX Export-Anweisungen können als gespeicherte MDX-Skripte ausgeführt werden.
Weitere Informationen zu MDX Insert und MDX Export finden Sie unter MDX Insert-Spezifikation und MDX Export-Spezifikation.
Verwenden Sie MDX-Skripte, wenn Sie Insert- oder Export-Datenvorgänge ausführen müssen.
Verwenden Sie MDX-Berichte zur Analyse von Rasterdaten. Siehe Daten mit MDX-Berichten analysieren.
Wählen Sie einen Workflow für die Verwendung von MDX-Skripten aus:
Mit diesem Workflow können Sie MDX-Skripte in einem Texteditor schreiben und in Essbase hochladen.
Schreiben Sie das MDX-Skript in einem Texteditor, und speichern Sie es mit einer MDX
-Erweiterung.
Laden Sie das MDX-Skript in der Essbase-Weboberfläche in das Anwendungs- oder Cube-Verzeichnis unter Dateien hoch.
Führen Sie das MDX-Skript über Jobs aus. Wenn Sie Smart View verwenden, können Sie es mit Berechnen im Essbase-Menüband ausführen.
Mit diesem Workflow können Sie MDX-Skripte in einem Skripteditor auf dem Cube schreiben und über Jobs ausführen.
Öffnen Sie auf der Seite "Anwendungen" die Anwendung und dann die Datenbank (den Cube).
Klicken Sie auf Skripte, MDX-Skripte.
Klicken Sie auf Erstellen, geben Sie einen Namen für das Skript ein, und klicken Sie auf OK.
Schreiben Sie das MDX-Skript. Dabei können ein Elementbaum und eine Funktionsliste helfen.
Validieren und speichern Sie das Skript, und schließen Sie dann den Skripteditor.
Führen Sie das MDX-Skript auf der Seite Jobs aus (siehe MDX ausführen). Wenn Sie Smart View verwenden, können Sie es mit Berechnen im Essbase-Menüband ausführen.
Blenden Sie auf der Seite "Anwendungen" eine Anwendung und einen Cube ein.
Klicken Sie im Menü "Aktionen" des Cubes auf Prüfen.
Klicken Sie auf Skripte und dann auf MDX-Skripte.
Klicken Sie auf +, um einen Skripteditor zu öffnen.
Schreiben Sie das MDX-Skript. Dabei können ein Elementbaum und eine Funktionsliste helfen.
Validieren und speichern Sie das Skript, und schließen Sie dann den Skripteditor.
Führen Sie das MDX-Skript auf der Seite Jobs aus (siehe MDX ausführen). Wenn Sie Smart View verwenden, können Sie es mit Berechnen im Essbase-Menüband ausführen.
Mit diesem Workflow können Sie MDX-Skripte mit einer Anwendungsarbeitsmappe erstellen und auf der Seite Jobs ausführen.
Beachten Sie die folgenden Richtlinien bei der Arbeit mit MDX-Skripten.
Verwenden Sie MDX-Skripte, um Insert- oder Export-Datenvorgänge auszuführen.
Verwenden Sie zur Rasteranalyse MDX-Berichte anstelle von MDX-Skripten.
MDX-Skripte können optional Laufzeitsubstitutionsvariablen enthalten.
Für die Verwendung in Smart View müssen MDX-Skripte mit Laufzeitsubstitutionsvariablen die XML-Syntax im Berechnungsbefehl SET RUNTIMESUBVARS verwenden, einschließlich <RTSV_HINT>
.
Damit eine Laufzeitsubstitutionsvariable nur das sichtbare Datensegment in Smart View berechnet, setzen Sie den Wert der Laufzeitsubstitutionsvariablen auf POV und den Datentyp auf Element.
Bei der Ausführung über die Essbase-Weboberfläche können MDX-Skripte Substitutionsvariablen, aber keine Laufzeitsubstitutionsvariablen verwenden. Um Laufzeitsubstitutionsvariablen in MDX-Skripten zu verwenden, müssen Sie die Skripte aus Smart View ausführen, mit Berechnen im Essbase-Menüband.
Die folgenden MDX-Beispielskripte können im Cube "Sample Basic" ausgeführt werden, entweder aus "Jobs" oder in Smart View.
MDX Insert-Vorgang
Sie können dieses MDX
-Skript speichern und aus Jobs oder über das Dialogfeld Berechnen in Smart View ausführen.
INSERT "([Measures].[Payroll])" TO "([Measures].[Revised_Payroll])" INTO [Sample].[Basic] FROM ( SELECT {[Measures].[Payroll]} ON COLUMNS, {Crossjoin (Crossjoin(Descendants([Year]), Crossjoin(Descendants([Scenario]), Descendants([Product]))), Descendants([Market]))} ON ROWS FROM [Sample].[Basic] );
Beim obigen Beispiel wird vorausgesetzt, dass Sie bereits die Kennzahl "Revised_Payroll" zu "Sample Basic" hinzugefügt haben.
MDX-Export
Sie können dieses MDX
-Skript speichern und aus Jobs oder über das Dialogfeld Berechnen in Smart View ausführen.
EXPORT INTO FILE "sample01" OVERWRITE SELECT {[Mar],[Apr]} ON COLUMNS, Crossjoin({[New York]}, Crossjoin({[Actual],[Budget]}, {[Opening Inventory],[Ending Inventory]})) ON ROWS FROM [Sample].[Basic] WHERE ([100-10])
Nachdem Sie das Skript ausgeführt haben, wird die folgende Exportdatei (sample01.txt
) im Cube-Verzeichnis des Dateikatalogs gespeichert:
Market,Scenario,Measures,Mar,Apr New York,Actual,Opening Inventory,2041,2108 New York,Actual,Ending Inventory,2108,2250 New York,Budget,Opening Inventory,1980,2040 New York,Budget,Ending Inventory,2040,2170
MDX-Export mit Laufzeitsubstitutionsvariablen
Sie können dieses MDX
-Skript speichern und über das Dialogfeld Berechnen in Smart View ausführen.
SET RUNTIMESUBVARS { States = "Massachusetts"<RTSV_HINT><svLaunch> <description>US States</description> <type>member</type> <allowMissing>false</allowMissing> <dimension>Market</dimension> <choice>multiple</choice> </svLaunch></RTSV_HINT>; }; EXPORT INTO FILE "sample002" OVERWRITE SELECT {[Mar],[Apr]} ON COLUMNS, Crossjoin({&States}, Crossjoin({[Actual],[Budget]}, {[Opening Inventory],[Ending Inventory]})) ON ROWS FROM [Sample].[Basic] WHERE ([100-10])
Nachdem Sie das Skript ausgeführt haben, wird die folgende Exportdatei (sample002.txt
) im Cube-Verzeichnis des Dateikatalogs gespeichert:
Market,Scenario,Measures,Mar,Apr Massachusetts,Actual,Opening Inventory,-54,-348 Massachusetts,Actual,Ending Inventory,-348,-663 Massachusetts,Budget,Opening Inventory,-160,-520 Massachusetts,Budget,Ending Inventory,-520,-910