top of page

Tutorial: Stammdaten Zuordnung mit Datumsbezug

Slowly Changing Dimensions (SCD) sind ein gängiges Konzept im Bereich der Datenmodellierung, insbesondere in Data Warehouses und Business-Intelligence-Systemen. Sie treten auf, wenn sich die Werte in Dimensionstabellen im Laufe der Zeit ändern, und es notwendig wird, diese Änderungen nachzuvollziehen, um historische Analysen durchzuführen. In diesem Blogartikel zeige ich, wie man SCDs in Power BI implementiert, indem man Stammdaten mit Bewegungsdaten verknüpft. Insbesondere gehe ich auf die Vor- und Nachteile der Verwendung von DAX-basierten berechneten Spalten ein.



Herausforderung: Verknüpfung von Bewegungsdaten mit sich ändernden Stammdaten

Eine häufige Herausforderung bei der Arbeit mit SCDs ist, dass eindeutige Schlüssel, die normalerweise verwendet werden, um Tabellen miteinander zu verknüpfen, nicht mehr eindeutig sind. Dies ist beispielsweise der Fall, wenn eine Filiale ihre Verkaufsfläche erweitert. Stellen Sie sich vor, eine Filiale (Store) vergrößert ihre Verkaufsfläche von 500 Quadratmetern auf 900 Quadratmeter. In diesem Szenario möchten wir im Zeitverlauf analysieren, wie sich die Umsätze in Relation zur Verkaufsfläche entwickelt haben.


Stammdaten Zuordnung mit Datumsbezug - Datenbasis ssbi-blog
Die Datenbasis | Quelle: https://ssbi-blog.de/

Der Schlüssel für diese Filiale, z.B. die StoreID, ist jedoch nicht mehr eindeutig, da er nun auf zwei unterschiedliche Flächen verweist. Eine einfache Verknüpfung der Tabellen über diese ID ist somit nicht möglich. An dieser Stelle kommt der sogenannte „Surrogate-Key“ ins Spiel, ein eindeutiger Indikator, der nur innerhalb der BI-Lösung existiert und zur Unterscheidung der verschiedenen Zeiträume genutzt wird.


Lösung mit Power Query: Aufwand und Grenzen

Lars Schreiber hat in einem früheren Artikel gezeigt, wie man diese Problematik innerhalb von Power Query lösen kann. Dabei wird ein Surrogate-Key in Power Query generiert, um die Beziehung zwischen den Tabellen zu ermöglichen. Allerdings kann diese Methode, insbesondere bei großen Datenmengen, sehr rechenintensiv und aufwendig sein, da das Query Folding nicht mehr vollständig greift und die Transformationen in Power Query komplex werden können.


Stammdaten Zuordnung mit Datumsbezug - Power Query Lösung ssbi-blog

Alternative Lösung: Berechnete Spalten mit DAX

In meinen Projekten habe ich daher oft einen alternativen Ansatz gewählt, bei dem ich eine berechnete Spalte mit DAX verwende. Diese Methode möchte ich im Folgenden näher erläutern.


Schritt 1: Generierung eines fortlaufenden Schlüssels

Zunächst wird innerhalb der Store-Tabelle ein fortlaufender Key generiert, der als Surrogate-Key fungiert. Dies kann einfach in Power Query durch die Erstellung eines Indexes geschehen, der jede Position durchnummeriert und somit eine eindeutige StoreID generiert, die jedoch nur in der BI-Applikation existiert.

Stammdaten Zuordnung mit Datumsbezug - Power Query Surrogate-Key Indexspalte

Schritt 2: Zuordnung des Surrogate-Keys in den Bewegungsdaten

Um die Bewegungsdaten korrekt mit den Stammdaten zu verknüpfen, muss der Surrogate-Key auch in den Umsatzdaten verfügbar sein. Anstatt diesen in Power Query zu berechnen, erfolgt die Ermittlung über eine berechnete Spalte in DAX. Diese berechnete Spalte wird erstellt, nachdem die Daten aus Power Query geladen wurden und sich im Datenmodell befinden.

Stammdaten Zuordnung mit Datumsbezug - Surrogate Key Beziehung

Schritt 3: DAX-Formel zur Ermittlung des Surrogate-Keys

Die DAX-Formel in der berechneten Spalte durchsucht die Store-Tabelle nach der maximalen StoreID, die den Kriterien für den Gültigkeitszeitraum entspricht. Dabei wird sichergestellt, dass das Umsatzdatum innerhalb des gültigen Zeitraums liegt, in dem die Quadratmeterzahl für die Filiale zutrifft. Dies ermöglicht eine exakte Zuordnung der Umsätze zu den entsprechenden Flächen im Zeitverlauf.

Stammdaten Zuordnung mit Datumsbezug - DAX Surrogate Key

Vorteile der DAX-basierten Lösung

Diese Methode hat mehrere Vorteile:

  1. Effizienz: Da die Berechnung in DAX erfolgt, werden die Transformationen erst durchgeführt, wenn die Daten bereits im Datenmodell geladen sind, was die Performance verbessert.

  2. Flexibilität: Die DAX-Formel kann dynamisch an verschiedene Szenarien angepasst werden, ohne dass die Daten in Power Query erneut transformiert werden müssen.

  3. Fehlerresistenz: Durch die Aggregation der Ergebnisse wird verhindert, dass Bewegungsdaten fälschlicherweise verdoppelt werden, falls es Überschneidungen im Gültigkeitszeitraum der Stammdaten gibt.


Fazit

Die Verwendung von DAX-basierten berechneten Spalten zur Implementierung von Slowly Changing Dimensions in Power BI bietet eine effiziente und flexible Alternative zu Power Query. Insbesondere bei großen Datenmengen oder komplexen Transformationsanforderungen kann dieser Ansatz deutliche Vorteile in Bezug auf Performance und Anpassungsfähigkeit bieten.

Hast du bereits Erfahrung mit Slowly Changing Dimensions in Power BI gemacht? Welche Methode bevorzugst du – die Arbeit in Power Query oder den Einsatz von DAX? Teile deine Gedanken und Erfahrungen in den Kommentaren!

10 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page