Power BI DAX Spalte vs. Power Query “M” Spalte

Im vorliegenden Blog untersuche ich den Umstand, wie sich eine Tabellenspalte auswirkt im Vergleich zu einer in Spalte die mittels Query „M“ Language erstellt wurde. Die Ausgangslage ist die Frage, ob Query Language „M“ die bessere Vorgehensweise ist ggü. DAX-Formeln.

Im letzten Blog https://blog.ppedv.de/post/Kalender-Dimension-mit-Query-Language-M-vs-DAX-erstellen habe ich DAX und „M“ auf Basis einer Tabelle verglichen, herausgekommen ist, dass die DAX Tabelle deutlich größer gewesen ist als mittels Query „M“ erstellt. Das kann u.U. verhängnisvoll dann sein, wenn das Dataset ohnehin groß ist, ggf. überschreitet es die von Microsoft vorgegebenen Grenzwerte. Diese sind bei der Lizensierung Power BI Pro 1 GB pro Dataset. Also Speicher zu sparen ist grundsätzlich sehr angebracht.

Im vorliegenden Beispiel wird deutlich, dass die Erstellung von Spalten sogar in Bezug auf den Speicherverbrauch noch erheblicher ist.

Per DAX Formel und Query „M“ wird im Grunde die gleiche berechnete Spalte erstellt.

Die Formel per DAX schaut wie folgt aus:

PreisbereichDAX = Switch(TRUE();[UnitPrice] <=10;"niedrig";[UnitPrice] <=20; "mittel";"hoch")

Mit Query „M“ wurde das Gleiche erstellt, lediglich mit dem Unterschied, dass hier die Funktion „IF“ Verwendung fand, da Query „M“ die Funktion Switch nicht kennt.

Die Spalte wird nun in Power Query mittels „M“ erstellt:

clip_image002

Die zwei neuen Spalten werden nun im DAX Studio unter die Lupe genommen:

clip_image004

Fazit: Was bei diesem Beispiel sehr deutlich wird ist, dass eine DAX-Formel für eine Spalte erheblich mehr Kosten hinsichtlich Speicher verursacht als „M“. Wie auf dem Screenshot zu sehen ist, belegt die erstellte Spalte mit DAX (PreisbereichDAX) über 1 MB, dagegen die Spalte mit „M“ (Preisbereich) 17 KB.

Berechnete Spalten sind mit DAX Formeln demnach sehr viel teurer was den Speicherverbrauch angeht. Das ist sicher bei kleinen Datasets nicht wirklich ein Problem, aber wird schnell zum Problem bei großen Datenmengen.

Kommentare sind geschlossen