Blog.
- AI
BI Testing - Daten, ETL, KPIs - AI
Testing wird im Bereich Business Intelligence noch immer unterschätzt. Dabei sollten (Berichts-) Daten, ETL-Prozesse z.B. auf Basis von Power Query, als auch KPIs mit DAX systematisch getestet werden. Schließlich sind SQL Statements, Power Query Abfragen und DAX Code nichts anderes als Software …
- AI
KI-basierte DAX Measures validieren
Wie kann man sicherstellen, dass DAX Measures, die man mit KI generiert hat - wie z.B. mit Copilot, Claude Code, ChatGPT etc. - korrekte Daten zurückgeben?
- AI
Power BI | Integration einer lokalen KI
Es erfordert nur wenig Coding-Aufwand, Daten einer KI - entweder Cloud-basiert oder Lokal - in einen Power BI Bericht einzubinden. Das nachfolgende Beispiel zeigt, wie ein Rezept live in mehrere Sprachen übersetzt wird. Dabei kann die Sprache der Übersetzung vom Anwender interaktiv aus einem …
- Power BI
Low Code im MS BI Stack - Wo geht die Reise hin?
Mit Low Code und No Code - manchmal gleichgesetzt - lassen sich Anwendungen entwickeln. Dabei wird die Entwicklung teilweise oder vollständig über eine Oberfläche durchgeführt. Viele Komponenten eines MS BI Stacks - sowohl Azure-basiert, als auch OnPremise-basiert - folgen diesem Paradigma. In der …
- Power Query
Binning von Listen mit alphanumerischen Daten
In Power BI können Listen mit numerischen Inhalt wie z.B. Messergebnisse automatisch in Gruppen unterteilt werden. Das automatische s.g. Binning funktioniert aber nicht mit alphanumerischen Daten wie Personennamen. In solchen Fällen können die Daten vorher mit Power Query vorbereitet werden. Im …
- Power BI
Direct Query - Paging Performance im Tabularen Client
In Tabularen Modellen - PowerBI und SSAS Tabular - kann zwischen Import Mode und Direct Query Mode gewählt werden. In den meisten Fällen ist zwar der Import Mode der besser geeignete, jedoch gibt es verschiedene Szenarien, in denen der Direct Query Mode die bessere Wahl ist:
- KQL
KQL - Rekonstruktion fehlender Reihen-Elemente mit 'make-series' und 'series-fill-linear'
Reihen wie z.B. Zeitreihen sind nützlich, wenn es darum geht, Vorhersagen zu treffen oder Muster zu erkennen. KQL bietet eine Fülle von Funktionen für die Arbeit mit Reihen an. Der folgende Artikel zeigt, wie die beiden Funktionen make-series und series-fill-linear verwendet werden kann, um fehlende Werte aus den vorhandenen Werten mittels Interpolation zu konstruieren.
- KQL
Analytische Abfragen auf Graphen und Neuronale Netze mit KQL in Microsoft Fabric und Azure Data Explorer (ADX)
Mit KQL steht eine relativ neue BI-Sprache von Microsoft zur Verfügung. Sie wird in der Azure Cloud eingesetzt - u.a. Azure Data Explorer (ADX) und MS Fabric. In diesem Artikel wird gezeigt, wie man mit KQL die integrierte Graph-Engine nutzt. Dabei kommen die Operatoren 'make-graph' und 'graph-match' zum Zuge. Der Artikel orientiert sich an den Modellierungs- und Abfrage-Aufgaben, die im Zusammenhang mit Stücklisten entstehen.
- KQL
KQL - Konvertieren eines Arrays in eine Tabelle
Dieser Artikel zeigt, wie ein KQL Array in eine KQL Tabelle transformiert werden kann.
- DAX
DAX - Kaskadierende Tabellen-Filter
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.
- DAX
DAX - RANKX Argument 3 (Value)
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.
- AON
LDF Truncate in einer AON-Umgebung (SQL Server Availability Groups)
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.
- DAX
Benutzerdefinierte Sortierung in DAX
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.
- Power BI
Meine Top Visualisierungs Features in Power BI
Meine Top Visualisierungs Features in Power BI. Artikel über die Visualisierungs-Features in Power BI Desktop, mit denen schnell ansprechende Layouts gestaltet werden können.
- Power Query
PowerQuery - Dynamische Text-Ersetzung mit Table.ReplaceValue
Die Funktion Table.ReplaceValue ersetzt in einer oder mehreren Tabellen-Spalten einer Werte. Dabei können Lambda-Expressions eingesetzt werden, um die Ersetzung dynamisch zu gestalten.
- DAX
Herausforderungen der Sprache DAX
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.
- MDX
MDX – Attribute Relationships in Analysis Services Multidimensional
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.
- MDX
MDX - Expansion unvollständiger Tupel-Ausdrücke
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.
- DAX
DAX - Grundoperation CrossJoin
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.
- Power Query
Lambda Expressions in Power Query - Teil 1 - Einführung
In Teil 1 dieser Serie wird gezeigt, wie Lambda Expressions innerhalb von Power Query Iteratoren eingesetzt werden. Von den vielen Power Query Funktionen gehören einige zur Klasse der Iteratoren. Dabei werden Lambda Expressions, die sich im Inneren eines Iterators befinden, wiederholt ausgeführt. Bei jedem Aufruf übergibt der Iterator andere Daten an die Lambda Expression.
- Power Query
Lambda Expressions in Power Query - Teil 3 - List.Generate
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.
- Power Query
Lambda Expressions in Power Query - Part 2 - Kontext Interaktion
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.