DAX für mehrdimensionale Modelle

Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

In diesem Artikel wird beschrieben, wie Power BI DAX-Abfragen (Data Analysis Expressions) verwendet, um berichte für mehrdimensionale Modelle in SQL Server Analysis Services.

In der Vergangenheit verwenden Berichtsanwendungen MDX (Multidimensional Expressions) als Abfragesprache für mehrdimensionale Datenbanken. MDX ist für gängige visuelle Muster wie PivotTables in Excel und andere Berichtsanwendungen optimiert, die auf mehrdimensionale Geschäftssemantik abzielen. Ab SQL Server 2012 SP1 unterstützt Analysis Services die Verwendung von DAX und MDX für mehrdimensionale und tabellarische Modelle. DAX wurde jedoch ursprünglich für tabellarische Datenmodelle entwickelt. DAX gilt zwar als einfacher zu verwenden, konzentriert sich aber auch auf einfachere Datenvisualisierungen wie Tabellen, Diagramme und Karten in Berichten und Dashboards. Power BI verwendet DAX, um sowohl tabellarische als auch mehrdimensionale Modelle abzufragen.

Da DAX in erster Linie für tabellarische Modelle konzipiert ist, gibt es einige interessante und nützliche Zuordnungen und Einschränkungen, die beim Verwenden von DAX für mehrdimensionale Modelle verstanden werden müssen.

Kompatibilität

Power BI verwendet DAX zum Abfragen mehrdimensionaler Analysis Services-Modelle in SQL Server Enterprise- oder Standard-Editionen 2016 und höher. SQL Server 2012- und SQL Server 2014 Enterprise- oder Business Intelligence-Editionen werden ebenfalls unterstützt, diese Versionen werden jedoch nicht mehr unterstützt.

Funktionen

DAX ist keine Teilmenge von MDX. DAX wurde ursprünglich so konzipiert, dass es der Excel-Formelsprache ähnelt. In tabellarischen Modellen wird DAX für einen relationalen Datenspeicher verwendet, der aus Tabellen und Beziehungen besteht. DAX wird auch verwendet, um benutzerdefinierte Measures, berechnete Spalten und Sicherheitsregeln auf Zeilenebene zu erstellen.

Zusätzlich zu einer Berechnungssprache kann DAX auch zum Ausführen von Abfragen verwendet werden. In diesem Artikel wird beschrieben, wie DAX-Abfragen für ein mehrdimensionales Modell funktionieren.

Interaktion zwischen MDX und DAX

DAX-Ausdrücke werden nur in tabellarischen Modellen unterstützt. Sie können keine Measures verwenden, die von einem DAX-Ausdruck in einem mehrdimensionalen Modell erstellt wurden. Eine DAX-Abfrage auf ein mehrdimensionales Modell kann auf ein Measure oder eine andere Berechnung verweisen, die in diesem Modell definiert ist. Diese Berechnungen müssen jedoch mit der MDX-Sprache erstellt werden. DAX-Ausdrücke können nicht verwendet werden, wenn ein MDX-Ausdruck erforderlich ist und umgekehrt, und einige DAX-Funktionen wie PATH sind in der mehrdimensionalen Modellierung überhaupt nicht anwendbar.

DAX-Syntax

Die Syntax der DAX-Formeln ist der Syntax von Excel-Formeln sehr ähnlich und besteht aus einer Kombination aus Funktionen, Operatoren und Werten. Weitere Informationen zur Syntax für einzelne Funktionen finden Sie in der DAX-Funktionsreferenz.

Zuordnung zwischen mehrdimensionalen und tabellarischen Objekten

Analysis Services bietet eine tabellarische Darstellung der Modellmetadaten eines mehrdimensionalen Modells. Objekte in mehrdimensionalen Modellen werden dann als tabellarische Objekte in Power BI dargestellt. Diese Zuordnung wird mithilfe des DISCOVER_CSDL_METADATA Schemarowsets für Power BI verfügbar gemacht.

Objektzuordnung

Mehrdimensionales Objekt Tabellarisches Objekt
Cube Modell
Cubedimension Tabelle
Dimensionsattribute (Schlüssel, Name) Spalte
Measuregruppe Tabelle
"Measure" "Measure"
Measure ohne Measuregruppe In einer Tabelle mit dem Namen "Measures"
Measure group cube dimensions relationship Relationship
Perspektive Perspektive
KPI KPI
Benutzerhierarchien/Hierarchien aus über- und untergeordneten Elementen Hierarchy
Anzeigeordner Anzeigeordner

Measures, Measuregruppen und KPIs

Measuregruppen in einem mehrdimensionalen Cube werden in der Liste Power BI-Felder als Tabellen mit einem Rechnersymbol angezeigt.

Measures innerhalb einer Measuregruppe werden als Measures dargestellt. Wenn berechnete Measures ohne zugeordnete Measuregruppe vorhanden sind, werden sie unter einer speziellen Tabelle namens Measures gruppiert.

Um komplexere mehrdimensionale Modelle zu vereinfachen, können Modellentwickler einen Satz von Measures oder KPIs in einem Cube definieren, der in einen Anzeigeordner eingefügt wird. Power BI kann Anzeigeordner und die darin enthaltenen Measures und KPIs anzeigen.

Measures und KPIs in einer Measuregruppe

Measures und KPIs in der Liste

Measures als Varianten

Measures in mehrdimensionalen Modellen sind Varianten. Dies bedeutet, dass die Measures nicht stark typisiert sind und über unterschiedliche Datentypen verfügen können. In der folgenden Abbildung ist beispielsweise das Measure "Betrag " in der Tabelle "Finanzberichterstattung" standardmäßig der Datentyp "Währung", verfügt aber auch über einen Zeichenfolgenwert NA für das Teilergebnis der statistischen Konten, d. h. den Datentyp String. Power BI erkennt bestimmte Measures als Varianten und zeigt die richtigen Werte und Formatierungen in den verschiedenen Visualisierungen an.

Measure als Variante

Measure als Variante

Implizite Measures

Tabellarische Modelle bieten die Möglichkeit, implizite Measures wie COUNT, SUM oder AVERAGE für Felder zu erstellen. Da Dimensionsattributdaten bei mehrdimensionalen Modellen auf andere Weise gespeichert werden, kann das Abfragen impliziter Measures einige Zeit in Anspruch nehmen. Aus diesem Fall sind implizite Measures für mehrdimensionale Modelle in Power BI nicht verfügbar.

Dimensionen, Attribute und Hierarchien

Cubedimensionen werden in tabellarischen Metadaten als Tabellen verfügbar gemacht. In der Liste Power BI-Felder werden Dimensionsattribute als Spalten in Anzeigeordnern angezeigt. Die Dimensionsattribute, für die die AttributHierarchyEnabled-Eigenschaft auf False festgelegt ist; Beispiel: Das Geburtsdatum-Attribut in der Customer-Dimension oder die AttributHierarchyVisible-Eigenschaft, die auf false festgelegt ist, wird nicht in der Liste Power BI-Felder angezeigt. Hierarchien auf mehreren Ebenen oder Benutzerhierarchien; Beispielsweise werden Kundengeografie in der Customer-Dimension als Hierarchien in der Liste Power BI-Felder verfügbar gemacht. Ausgeblendete Unbekannte Elemente eines Dimensionsattributes werden in DAX-Abfragen und in Power BI verfügbar gemacht.

Dimension, Attribute und Hierarchien in SQL Server Data Tools (SSDT) und Power BI Fields List

Dimensionen, Attribute, Hierarchien in SSDT und Power BI Fields List

Dimensionsattributtyp

Mehrdimensionale Modelle unterstützen die Zuordnung spezifischer Dimensionsattributtypen zu Dimensionsattributen. Die folgende Abbildung zeigt die Geography-Dimension , bei der die Dimensionsattribute "Stadt", "Bundesstaat-Provinz", "Land" und "Postleitzahl" geografische Typen aufweisen. Diese werden in den tabellarischen Metadaten verfügbar gemacht. Power BI erkennt die Metadaten, mit denen Benutzer Kartenvisualisierungen erstellen können. Dies wird durch das Kartensymbol neben den Spalten Stadt, Land, Postleitzahl und State-Province in der Tabelle Geography in der Liste der Power BI-Felder angezeigt.

Geografiedimension in SSDT- und Power BI-Feldliste

Dimensionsattributetyp in ssdt und Power BI Fields list

Berechnete Dimensionselemente

Mehrdimensionale Modelle unterstützen berechnete Elemente für untergeordnete Elemente von All mit einem einzelnen realen Element. Beim Verfügbarmachen dieses Typs berechneter Elemente gelten folgende zusätzliche Einschränkungen:

  • Wenn die Dimension über mehrere Attribute verfügt, muss das Element ein einzelnes reales Element sein.
  • Ein Attribut, das berechnete Elemente enthält, darf nur das Schlüsselattribut der Dimension sein, wenn es das einzige Attribut ist.
  • Ein Attribut, das berechnete Elemente enthält, darf kein über- und untergeordnetes Attribut sein.

Berechnete Mitglieder von Benutzerhierarchien werden in Power BI nicht verfügbar gemacht. Benutzer können jedoch weiterhin eine Verbindung mit einem Cube herstellen, der berechnete Elemente in Benutzerhierarchien enthält.

Standardelemente

Mehrdimensionale Modelle unterstützen Standardelemente für Dimensionsattribute. Das Standardelement wird von Analysis Services beim Aggregieren von Daten für eine Abfrage verwendet. Das Standardelement eines Dimensionsattributs wird als Standardwert oder Filter für die entsprechende Spalte in den tabellarischen Metadaten verfügbar gemacht.

Power BI verhält sich ähnlich wie Excel PivotTables, wenn Attribute angewendet werden. Wenn ein Benutzer einer Power BI-Visualisierung (Tabelle, Matrix oder Diagramm) eine Spalte hinzufügt, die einen Standardwert enthält, wird der Standardwert nicht angewendet, und alle verfügbaren Werte werden angezeigt. Wenn der Benutzer die Spalte zu Filter hinzufügt, wird der Standardwert angewendet.

Dimensionssicherheit

Mehrdimensionale Modelle unterstützen Sicherheit auf Dimensions- und Zellenebene mithilfe von Rollen. Ein Benutzer, der mithilfe von Power BI eine Verbindung mit einem Cube herstellt, wird authentifiziert und für geeignete Berechtigungen ausgewertet, die durch Rollen definiert sind, zu der der Benutzer gehört. Wenn die Dimensionssicherheit angewendet wird, werden die entsprechenden Dimensionselemente vom Benutzer in Power BI nicht angezeigt. Wenn ein Benutzer jedoch eine Zellsicherheitsberechtigung definiert hat, bei der bestimmte Zellen eingeschränkt sind, kann dieser Benutzer keine Verbindung mit dem Cube mit Power BI herstellen. In einigen Fällen können Benutzer Aggregatdaten anzeigen, wenn Teile davon aus gesicherten Daten berechnet werden.

Nicht aggregierbare Attribute/Hierarchien

In mehrdimensionalen Modellen kann für Attribute einer Dimension die IsAggregatable-Eigenschaft auf False festgelegt sein. Dies bedeutet, dass der Modellautor angegeben hat, dass Berichterstellungsanwendungen die Daten nicht hierarchieübergreifend (Attribut oder mehrere Ebenen) aggregieren sollten, wenn sie die Daten abfragen. In Power BI wird dieses Dimensionsattribute als Spalte verfügbar gemacht, für die keine Teilergebnisse verfügbar sind. In der folgenden Abbildung sehen Sie ein Beispiel für eine nicht aggregierbare Hierarchie, Konten. Die oberste Ebene der Über-/Unterordnungshierarchie "Accounts" kann im Gegensatz zu den anderen Ebenen nicht aggregiert werden. In einer Matrixvisualisierung der Kontenhierarchie (erste zwei Ebenen) sehen Sie Teilergebnisse für Kontoebene 02 , aber nicht für die oberste Ebene, Kontoebene 01.

Nicht aggregierbare Hierarchie in Power BI

Measure als Variante

Bilder

Power BI bietet die Möglichkeit, Bilder zu rendern. In mehrdimensionalen Modellen besteht eine der Möglichkeiten, Bilder bereitzustellen, die in Power BI angezeigt werden sollen, darin, Spalten mit URLs (Uniform Resource Locator) der Bilder verfügbar zu machen. Analysis Services unterstützt das Tagging von Dimensionsattributen als ImageURL. Dieser Datentyp wird dann in den tabellarischen Metadaten für Power BI bereitgestellt. Power BI kann dann die in den URLs angegebenen Bilder in Visualisierungen herunterladen und anzeigen.

Dimensionsattributtyp "ImageURL" in SSDT

ImageURL-Dimension in SSDT

Über-/Unterordnungshierarchien

Mehrdimensionale Modelle unterstützen übergeordnete und untergeordnete Hierarchien, die als Hierarchie in tabellarischen Metadaten verfügbar gemacht werden. Jede Ebene der Über-/Unterordnungshierarchie wird als ausgeblendete Spalte verfügbar gemacht. Das Schlüsselattribut der über- und untergeordneten Dimension wird in den tabellarischen Metadaten nicht verfügbar gemacht.

Übergeordnete und untergeordnete Hierarchien in SSDT- und Power BI-Feldliste

Übergeordnete und untergeordnete Hierarchien in SSDT- und Power BI-Feldliste

Perspektiven und Übersetzungen

Perspektiven sind Cubesichten, bei denen in Clienttools nur bestimmte Dimensionen oder Measuregruppen sichtbar sind. Sie können einen Perspektivnamen als Wert für die Cube-Verbindungszeichenfolge-Eigenschaft angeben. In der folgenden Verbindungszeichenfolge ist "Direct Sales" beispielsweise eine Perspektive im mehrdimensionalen Modell:

Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Direct Sales'

Cubes können Metadaten und Datenübersetzungen für verschiedene Sprachen innerhalb des Modells angeben. Um die Übersetzungen (Daten und Metadaten) anzuzeigen, kann eine Anwendung dem Verbindungszeichenfolge die optionale Eigenschaft Gebietsschemabezeichner hinzufügen, z. B.:

Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Adventure Works'; Locale Identifier=3084

Wenn Power BI Desktop eine Verbindung mit einem mehrdimensionalen Modell herstellt, wird automatisch das aktuelle Benutzergebietsschema an den Server übergeben. Dies tritt jedoch nicht für einen Bericht auf, der im Power BI-Dienst veröffentlicht wird.

Nicht unterstützte Funktionen

Sicherheit auf Zellenebene : Wird in Power BI-Berichten nicht unterstützt.

Aktionen : Werden in Power BI-Berichten oder in DAX-Abfragen für ein mehrdimensionales Modell nicht unterstützt.

Benannte Sätze : In mehrdimensionalen Modellen werden in Power BI oder in DAX-Abfragen für ein mehrdimensionales Modell nicht unterstützt.

Hinweis

Nicht unterstützte Aktionen und benannte Sätze verhindern nicht, dass Benutzer bei Verwendung von Power BI eine Verbindung mit mehrdimensionalen Modellen herstellen und diese untersuchen.

CSDLBI-Anmerkungen

Mehrdimensionale Cubemetadaten werden als EDM (Entity Data Model)-basiertes konzeptionelles Modell durch die konzeptionelle Schemadefinitionssprache mit Business Intelligence-Anmerkungen (CSDLBI) verfügbar gemacht.

Mehrdimensionale Metadaten werden als Namespace für tabellarische Modelle in einem CSDLBI-Dokument oder in "CSDL/out" dargestellt, wenn eine DISCOVER_CSDL_METADATA-Anforderung an die Analysis Services-Instanz gesendet wird.

Beispiel: DISCOVER_CSDL_METADATA Anforderung

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <Body>
      <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
         <RequestType>DISCOVER_CSDL_METADATA</RequestType>
         <Restrictions>
            <RestrictionList>
              <CATALOG_NAME>"catalogname"<CATALOG_NAME>
            </RestrictionList>
         </Restrictions>
         <Properties>
            <PropertyList>
            </PropertyList>
         </Properties>
      </Discover>
   </Body>
</Envelope>

Die DISCOVER_CSDL_METADATA-Anforderung weist die folgenden Einschränkungen auf:

Name Erforderlich BESCHREIBUNG
CATALOG_NAME Yes Der Katalog-/Datenbankname.
PERSPECTIVE_NAME Ja, wenn der Cube mehr als eine Perspektive enthält. Optional, wenn nur ein Cube oder eine Standardperspektive vorhanden ist. Der Cube- oder Perspektivenname in der mehrdimensionalen Datenbank.
VERSION Yes Vom Client angeforderte CSDL-Version. Mehrdimensionale Funktionen und Konstrukte werden in Version 2.0 unterstützt.

Im zurückgegebenen "CSDL/out"-Dokument wird das Modell als Namespace mit Entitäten, Zuordnungen und Eigenschaften dargestellt.

Weitere Informationen zu CSDLBI-Anmerkungen finden Sie unter Technische Referenz für BI-Anmerkungen zu CSDL und [MS-CSDLBI]: Konzeptionelles Schemadefinitionsdateiformat mit Business Intelligence-Anmerkungen.

SuperDAXMD

Mit jedem Release von SQL Server Analysis Services unterstützen Verbesserungen neue und vorhandene DAX-Funktionen und -Funktionen. In SQL Server 2019 CU5 ist eine Klasse von DAX-Funktionen, die erstmals für tabellarische Modelle eingeführt wurden, informell als SuperDAX bekannt, jetzt für mehrdimensionale Modelle aktiviert.

Während einige vorhandene DAX-Abfragemuster möglicherweise neu gestaltet werden müssen, bieten SuperDAX-Funktionen erhebliche Verbesserungen der Abfrageleistung. Moderne DAX-Abfragemuster, die SuperDAX für mehrdimensionale Modelle verwenden, bieten einen starken Anreiz für Organisationen, die Power BI verwenden, um ihre mehrdimensionalen Datenquellenserver auf SQL Server 2019 mit CU5 zu aktualisieren. Weitere Informationen finden Sie unter SuperDAX für mehrdimensionale Modelle.

Weitere Informationen

DAX-Referenz