Multidimensionale Ausdrücke (MDX) ist eine Abfragesprache für die Online-Analyseverarbeitung (OLAP) unter Verwendung eines Datenbankverwaltungssystems. Ähnlich wie SQL ist es eine Abfragesprache für OLAP-Cubes. [1] Es ist auch eine Berechnungssprache mit einer Syntax, die Tabellenkalkulationsformeln ähnelt.
Hintergrund [ edit ]
Die Sprache MultiDimensional eXpressions (MDX) bietet eine spezielle Syntax zum Abfragen und Manipulieren der in OLAP-Würfeln gespeicherten multidimensionalen Daten. [1] Während dies möglich ist Wenn Sie einige davon in traditionelles SQL übersetzen, wird häufig selbst für sehr einfache MDX-Ausdrücke die Synthese unbeholfener SQL-Ausdrücke erforderlich. MDX wurde von einer großen Mehrheit der OLAP-Anbieter angenommen und ist zum Standard für OLAP-Systeme geworden.
Geschichte [ edit ]
MDX wurde erstmals 1997 als Teil der OLE DB for OLAP-Spezifikation von Microsoft eingeführt. Es wurde von der Gruppe der SQL Server-Ingenieure einschließlich Mosha Pasumansky erfunden. Auf die Spezifikation folgte schnell eine kommerzielle Version von Microsoft OLAP Services 7.0 im Jahr 1998 und später Microsoft Analysis Services. Die neueste Version der OLE DB for OLAP-Spezifikation wurde 1999 von Microsoft herausgegeben.
Obwohl es sich nicht um einen offenen Standard, sondern um eine von Microsoft gehaltene Spezifikation handelt, wurde sie von einer Vielzahl von OLAP-Anbietern übernommen.
Die XML for Analysis-Spezifikation bezog sich auf die OLE DB for OLAP-Spezifikation, um Einzelheiten zur MDX-Abfragesprache zu erhalten. In Analysis Services 2005 fügte Microsoft einige MDX-Abfragesprachenerweiterungen hinzu, wie beispielsweise Unterauswahlen. Produkte wie Microsoft Excel 2007 begannen, diese neuen Erweiterungen für MDX Query Language zu verwenden. Einige beziehen sich auf diese neuere Variante von MDX als MDX 2005.
mdXML [ edit ]
Im Jahr 2001 veröffentlichte der XMLA Council den XML-Standard (XML for Analysis), der mdXML als Abfragesprache enthielt. In der XMLA 1.1-Spezifikation ist mdXML im Wesentlichen MDX, das im XML-Tag eingeschlossen ist.
MDX-Datentypen [ edit ]
Es gibt sechs primäre Datentypen in MDX
- Scalar . Skalar ist entweder eine Zahl oder eine Zeichenfolge. Es kann als Literal angegeben werden, z. Nummer 5 oder Zeichenfolge "OLAP" oder kann von einer MDX-Funktion zurückgegeben werden, z.
Aggregat(Nummer),UniqueName(Zeichenfolge),.Value(Nummer oder Zeichenfolge) usw. - Dimension / Hierarchie . Dimension ist eine Dimension eines Cubes. Eine Dimension ist ein Hauptorganisator für Kennzahl- und Attributinformationen in einem Cube. MDX kennt keine Abhängigkeiten zwischen Dimensionen und geht auch nicht davon aus, dass sie voneinander unabhängig sind. Eine Dimension enthält einige Elemente (siehe unten), die in einigen Hierarchien oder Hierarchien mit Ebenen angeordnet sind. Sie kann durch ihren eindeutigen Namen angegeben werden, z.
[Time]oder kann von einer MDX-Funktion, z..Dimension. Hierarchie ist eine Dimensionshierarchie eines Cubes. Sie kann durch ihren eindeutigen Namen angegeben werden, z.[Time]. [Fiscal]oder es kann von einer MDX-Funktion, z..Hierarchy. Hierarchien sind in Dimensionen enthalten. ( OLEDB für die OLAP-MDX-Spezifikation unterscheidet nicht zwischen Dimensions- und Hierarchiedatentypen. Bei einigen Implementierungen, z. B. Microsoft Analysis Services, werden diese unterschiedlich behandelt. ) - Level . Ebene ist eine Ebene in einer Dimensionshierarchie. Sie kann durch ihren eindeutigen Namen angegeben werden, z.
[Time][Fiscal][Month]oder es kann von einer MDX-Funktion, z..Level. - Mitglied . Mitglied ist Mitglied in einer Dimensionshierarchie. Sie kann durch ihren eindeutigen Namen angegeben werden, z.
[Time][Fiscal][Month][August 2006]durch qualifizierten Namen, z.B.[Time][Fiscal][2006][Q3][August 2006]oder von einer MDX-Funktion zurückgegeben werden, z..PrevMember.Parent.FirstChildusw. Beachten Sie, dass alle Mitglieder für eine Hierarchie spezifisch sind. Wenn das selbe Produkt zu zwei verschiedenen Hierarchien gehört ([Product][ByManufacturer]und[Product]. [ByCategory]), sind zwei verschiedene Mitglieder sichtbar, die möglicherweise in Mengen und Tupeln koordiniert werden müssen (siehe unten). - Tuple . Tuple ist eine geordnete Sammlung von einem oder mehreren Mitgliedern mit unterschiedlichen Abmessungen. Tupel können durch Auflisten der Member angegeben werden, z.
([Time]. [Fiscal]. [Month]. [August][Customer]. [By Geography]. [All Customers]. [USA] [Measures] [Sales].oder 1945 zurückgegeben eine MDX-Funktion, z.Item. - Set . Set ist eine geordnete Sammlung von Tupeln mit derselben Dimensionalität oder Hierarchie im Falle der Implementierung von Microsoft. Es kann spezifiziert werden, die Tupel aufzuzählen, z.
{([Measures][Sales][Time]. [Fiscal]. [2006]), ([Measures] [Sales][Time]. [Fiscal]. [2007]) [2007]] [2007]] ] oder von MDX-Funktion oder -Operator zurückgegeben, zCrossjoinFilterOrderNachkommenusw. - Andere Datentypen. Elementeigenschaften entsprechen Attributen im Sinne des Data Warehouse. Sie können nach Namen in einer Abfrage über eine PROPERTIES-Achsenklausel einer Abfrage abgerufen werden. Auf den Skalardatenwert einer Member-Eigenschaft für einen Member kann in einem Ausdruck über MDX zugegriffen werden, entweder durch Benennen der Eigenschaft (beispielsweise
[Product] .CurrentMember. [Sales Price]) oder durch Verwendung einer speziellen Zugriffsfunktion (beispielsweise[Product] .CurrentMember.Properties ("Verkaufspreis")). In eingeschränkten Kontexten erlaubt MDX auch andere Datentypen - beispielsweise Array kann innerhalb derSetToArray-Funktion verwendet werden, um ein Array anzugeben, das nicht von MDX verarbeitet, sondern an eine benutzerdefinierte Funktion in einer ActiveX-Bibliothek übergeben wird . Objekte anderer Datentypen werden als Skalarzeichenfolgen dargestellt, die die Objektnamen angeben, z. B. den Namen der Messungsgruppe in der Microsoft-FunktionMeasureGroupMeasuresoder den KPI-Namen in beispielsweise MicrosoftKPIValueoderKPIGoal
Beispielabfrage [ edit ]
Das folgende, aus der SQL Server 2000-Onlinedokumentation angepasste Beispiel zeigt eine grundlegende MDX-Abfrage, die die SELECT-Anweisung verwendet. Diese Abfrage gibt eine Ergebnismenge zurück, die die Verkaufsumsätze von 2002 und 2003 für Filialen im Bundesstaat Kalifornien enthält.
1 SELECT
2 { [ Maßnahmen . ]. ON COLUMNS
3 { [ Datum . 2002 Date . 2003 ] ON ROWS
4 VON Verkauf
5 WO (19659049] Store ] . USA . CA [1945650151] [194590011] ] )
In diesem Beispiel definiert die Abfrage die folgenden Informationen zum Ergebnissatz
- Die SELECT-Klausel legt die Abfrageachsen als das Element Store Sales der Measures-Dimension und die Datumsangaben 2002 und 2003 der Date-Dimension fest.
- Die FROM-Klausel gibt an, dass die Datenquelle der Cube "Sales" ist.
- Die WHERE-Klausel definiert die "Slicer-Achse" als California-Element der Store-Dimension.
Anmerkung: In einer MDX-Abfrage können Sie bis zu 128 Abfrageachsen angeben.
Wenn Sie zwei Achsen erstellen, muss eine die Spaltenachse und eine die Zeilenachse sein. Dabei spielt es keine Rolle, in welcher Reihenfolge sie in der Abfrage angezeigt werden. Wenn Sie eine Abfrage erstellen, die nur eine Achse hat, muss diese die Spaltenachse sein. Die eckigen Klammern um die jeweilige Objektkennung sind optional, solange die Objektkennung nicht eines der reservierten Wörter ist und ansonsten keine anderen Zeichen als Buchstaben, Zahlen oder Unterstriche enthält.
1 SELECT
2 Maßnahmen . [19456501] ON SPALTEN
3 Datum . Mitglieder ON ROWS
4 FROM Vertrieb
5 WHERE [19456501] (19659049) Store USA )
Literaturhinweise [ ]
Weitere Informationen [
- George Spofford, Sivakumar Harinath, Chris Webb, Dylan Hai Huang und Francesco Civardi: MDX-Lösungen: Mit Microsoft SQL Server Analysis Services 2005 und Hyperion Essbase . Wiley, 2006, ISBN 0-471-74808-0
- Mosha Pasumansky, Mark Whitehorn, Rob Zare: Fast Track to MDX . ISBN 1-84628-174-1
- Larry Sackett: MDX-Berichterstellung und -Analyse mit SAP NetWeaver BW . SAP Press, 2008, 978-1-59229-249-3
Externe Links [ edit ]
Không có nhận xét nào:
Đăng nhận xét