Daten mit MDX analysieren und verwalten

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:

Daten mit MDX-Berichten analysieren

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.

So erstellen Sie einen MDX-Bericht:
  1. Melden Sie sich als Datenbankmanager oder eine höhere Rolle bei der Essbase-Weboberfläche an.
  2. Navigieren Sie zu Daten analysieren:
    • Öffnen Sie in der Redwood-Oberfläche die Anwendung, öffnen Sie die Datenbank (den Cube), und klicken Sie auf Daten analysieren.
    • Blenden Sie in der klassischen Weboberfläche die Anwendung ein, wählen Sie einen Cube aus, klicken Sie rechts neben dem Cube-Namen auf das Menü "Aktionen", und wählen Sie Daten analysieren aus.
  3. Wählen Sie in der Ansicht "Analysieren" das Register Berichte aus, und klicken Sie auf Erstellen.
  4. Geben Sie einen Namen und optional eine Beschreibung für den Bericht ein.
  5. Geben Sie im Feld "Abfrage" eine MDX-Abfrage für den aktuellen Cube ein. Beispiel:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    Die Abfrage muss sowohl Zeilen- als auch Spaltenachsenspezifikationen enthalten. Das heißt: Die Abfragesyntax muss Spezifikationen für ON COLUMNS und ON ROWS enthalten, selbst wenn nur ein leeres Set {} für eine Achse angegeben ist.

    Da der Kontext von "Daten analysieren" der aktive Cube ist, wird empfohlen, die optionale Cube-Spezifikation (die FROM-Klausel) in MDX-Berichten wegzulassen. Das Auslassen der FROM-Klausel bietet Ihnen mehr Flexibilität: Wenn der Cube kopiert oder umbenannt wird, funktioniert der Bericht weiterhin im neuen Cube.

    Substitutionsvariablen werden in MDX-Berichten unterstützt, Laufzeitsubstitutionsvariablen aber nicht. Um Laufzeitsubstitutionsvariablen zu verwenden, speichern Sie die MDX-Abfrage als Skript, und führen Sie dieses aus Smart View mit Berechnen im Essbase-Menüband aus.

  6. Klicken Sie auf Validieren, um die MDX-Syntax zu überprüfen, und klicken Sie dann auf Speichern.
  7. Wählen Sie im Bereich "Berichte" auf der linken Seite den gespeicherten Bericht aus, um ein Raster anzuzeigen.

Weitere Informationen zu MDX finden Sie unter MDX und MDX-Abfragen schreiben.

Zugriff auf MDX-Berichte

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.

Beispiele für MDX-Berichte

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:

Die Berichtsausgabe zeigt die Product-Elemente 100, 200, 300, 400 und Diet

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:

Die Berichtsausgabe zeigt in Zeilen die Product-Elemente 100, 200, 300, 400 und Diet. In Spalten werden Attributelemente angezeigt: Ounces_32, Ounces_20, Ounces_16 und Ounces_12

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:

Die Berichtsausgabe zeigt in Zeilen die Market-Elemente Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri und Iowa. In Spalten wird der Gewinn angezeigt. Die Datenwerte sind alle negativ.

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:

Die Berichtsausgabe zeigt in Zeilen die Product-Elemente 100, 200, 300, 400 und Diet. In Spalten werden die wichtigen Märkte "East" und "Central" angezeigt.

Daten mit MDX einfügen und exportieren

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.

MDX-Skripte ausführen

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:

MDX-Skript schreiben, hochladen und ausführen

Mit diesem Workflow können Sie MDX-Skripte in einem Texteditor schreiben und in Essbase hochladen.

  1. Schreiben Sie das MDX-Skript in einem Texteditor, und speichern Sie es mit einer MDX-Erweiterung.

  2. Laden Sie das MDX-Skript in der Essbase-Weboberfläche in das Anwendungs- oder Cube-Verzeichnis unter Dateien hoch.

  3. 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.

MDX-Skript im Skripteditor schreiben und ausführen

Mit diesem Workflow können Sie MDX-Skripte in einem Skripteditor auf dem Cube schreiben und über Jobs ausführen.

  1. Öffnen Sie auf der Seite "Anwendungen" die Anwendung und dann die Datenbank (den Cube).

  2. Klicken Sie auf Skripte, MDX-Skripte.

  3. Klicken Sie auf Erstellen, geben Sie einen Namen für das Skript ein, und klicken Sie auf OK.

  4. Schreiben Sie das MDX-Skript. Dabei können ein Elementbaum und eine Funktionsliste helfen.

  5. Validieren und speichern Sie das Skript, und schließen Sie dann den Skripteditor.

  6. 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.

  1. Blenden Sie auf der Seite "Anwendungen" eine Anwendung und einen Cube ein.

  2. Klicken Sie im Menü "Aktionen" des Cubes auf Prüfen.

  3. Klicken Sie auf Skripte und dann auf MDX-Skripte.

  4. Klicken Sie auf +, um einen Skripteditor zu öffnen.

  5. Schreiben Sie das MDX-Skript. Dabei können ein Elementbaum und eine Funktionsliste helfen.

  6. Validieren und speichern Sie das Skript, und schließen Sie dann den Skripteditor.

  7. 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.

MDX-Skripte in Cube Designer erstellen und ausführen

Mit diesem Workflow können Sie MDX-Skripte mit einer Anwendungsarbeitsmappe erstellen und auf der Seite Jobs ausführen.

  1. Erstellen Sie in einer Anwendungsarbeitsmappe ein MDX-Arbeitsblatt. Siehe Mit MDX-Arbeitsblättern in Cube Designer arbeiten.
  2. Geben Sie im Feld Dateiname einen Dateinamen ein.
  3. Geben Sie im Feld MDX ausführen an, ob MDX zum Zeitpunkt der Cube-Erstellung ausgeführt werden soll. Gültige Eingaben sind Ja und Nein.
  4. Fügen Sie das MDX-Skript unter der Zeile Skript ein.
  5. Speichern Sie die Anwendungsarbeitsmappe.
  6. Erstellen Sie den Cube. Siehe Anwendungen und Cubes in Cube Designer erstellen.
  7. Führen Sie das MDX-Skript aus Jobs aus. Wenn Sie Smart View verwenden, können Sie es mit Berechnen im Essbase-Menüband ausführen.

Richtlinien für MDX-Skripte

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.

Substitutionsvariablen verwenden

Beispiele für MDX-Skripte

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