Von Lukas Hillesheim, 5. Februar 2024
Der folgende Artikel zeigt, wie kaskadierende Aufrufe von CALCULATETABLE dazu verwendet werden können, um einen Filter über mehrere Hops zu transportieren. Mögliche Szenarien hierfür sind Tabellen, die im Galaxy-Schema organisiert sind oder die Teil eines weiter verzweigte Snowflake-Schema sind.
Von Lukas Hillesheim, 18. August 2023
In Internet-Artikeln wird meist eine vereinfachte Verwendung der Funktion RANKX gezeigt, bei der von den 5 möglichen Argumenten nur die Argumente 1, 2 und 4 belegt werden. Dabei ist unklar, welche Aufgabe Argument 3 (Value) hat. Der folgende Artikel zeigt, welche Auswirkung die Verwendung von Argument 3 hat und wie man sich die Interna der RANKX-Funktion vorstellen kann.
Von Lukas Hillesheim, 8. August 2023
Das Verkleinern des Logfiles ist ein gelegentlich auftretender administrativer Task bei der Verwaltung von SQL Server. Dass sich das Logfile in manchen Fällen nur noch unter Zuhilfenahme des SIMPLE Recovery Modes verkleinern läßt und dabei ein Problem für die Backup Chain auftritt, kann als Bug oder als lästige Verhaltensweise angesehen werden. Die zusätzliche Hürde beim Einsatz in einer Cluster Umgebung mit AlwaysOn Availability Group besteht darin, dass der Recovery Mode hier nicht auf SIMPLE gesetzt werden kann, ohne die Konfiguration des AON-Clusters zu resetten. Der nachfolgende Artikel zeigt eine Lösung für das Problem.
Von Lukas Hillesheim, 21. Juli 2023
In der DAX-Sprache kann Sortierung erst am Schluss - bei der Ausgabe der Daten - angewandt werden, nicht jedoch zwischendurch, um beispielsweise Ergebnisse von Teil-Operationen als sortierte Menge in Variablen abzulegen. Der folgende Artikel zeigt, wie dieses Ziel mit der Hilfe von GENERATE und GENERATESERIES erreicht werden kann.
Von Lukas Hillesheim, 17. März 2023
Wie schwer ist es, DAX zu erlernen? Der Artikel beschäftigt sich mit den Herausforderungen beim Erlernen von DAX als BI-Sprache für das Tabulare Modell und den Unterschied zur Sprache MDX.
Von Lukas Hillesheim, 2. Januar 2023
Attribute Relationships sind interne Objekte der Analysis Services MultiDimensional Engine. Sie sind vom MDX-Client aus nicht sichtbar, nur indirekt zu nutzen und nur in der Entiwcklungs-Umgebung konfigurierbar. Sie wirken sich aber auf MDX-Objekte und implizite Verhaltensweisen aus. Relationships zu verstehen, ist daher grundsätzlich wichtig für das Verständnis von MDX.
Von Lukas Hillesheim, 30. Dezember 2022
In diesem Artikel wird beschrieben, wie ein explizit übergebener, unvollständiger Tupel-Ausdruck wie z.B. ([East]) implizit zu einem vollständigen Tupel wie z.B. ([East], [2018], [Amount] etc.) expandiert wird. Dieses Wissen ist wesentlich, um zu verstehen, welche automatischen Verhaltensweisen zur Rückgabe eines bestimmten Wertes führen.
Von Lukas Hillesheim, 8. September 2022
Der erste Artikel dieser Serie soll die komplexe Sprache DAX aus der Sicht anderer Konzepte beleuchten, im Internet wird dafür gerne der Begriff Projektion verwendet. Mit den anderen Konzepten sind Mengen-Konzepte, OOP-Konzepte und SQL gemeint. Konzepte aus anderen Sprachen sollen dabei helfen, die relativ schwer zu erlernende Sprache DAX transparenter zu machen und die grundlegenden DAX-Objekte und DAX-Verhaltensweisen wie Tabelle, Spalte, Relationship etc. aus deren Sicht zu erklären.
Von Lukas Hillesheim, 30. August 2022
Artikel 3 dieser Serie behandelt "List.Generate". Es handelt sich hierbei um eine der wichtigsten Power Query Funktionen. So wie in anderen Sprachen verkapselt "List.Generate" eine Schleife und stellt das Pendant eines ForEach-Loops dar. Für das Verständnis von "List.Generate" sind Kenntnisse über Lambda Expressions notwendig.
Von Lukas Hillesheim, 30. August 2022
In Teil 1 dieser Serie wird gezeigt, wie Lambda Expressions innerhalb von Power Query Iteratoren funktionieren. Da sehr viele Power Query Funktion Iteratoren sind, werden Lambda Expressions, die innerhalb eines Iterators plaziert werden, wiederholt aufgerufen. Bei jedem Aufruf übergibt der Iterator andere Daten an die Lambda Expression.
Von Lukas Hillesheim, 30. August 2022
In Teil 1 dieser Serie wurde darauf hingewiesen, dass die MSDN keine Auskunft über den konkreten (Daten-) Verkehr zwischen der aufrufenden Funktion - meist ein Iterator - und der Lambda Expression gibt. Teil 2 dieser Serie zeigt an drei konkreten Beispielen, wie Power Query Iterator und Lambda Expression miteinander interagieren.