Code & Queries

Code & Queries: Your Source for SQL, Python, and AI Insights

Swappable Dimension Modellierung

- Veröffentlicht unter Community & Best Practices von

Eine Swappable Dimension (austauschbare Dimension) ist eine Dimension, die in einem Datenmodell so gestaltet ist, dass sie leicht gegen eine andere Dimension ausgetauscht werden kann, ohne die Struktur oder Funktionalität des Modells wesentlich zu beeinträchtigen. Swappable Dimensions sind besonders nützlich, wenn unterschiedliche Analysen mit ähnlicher Logik erforderlich sind, jedoch anhand verschiedener Dimensionen betrachtet werden sollen.

Beispiel: Swappable Dimension für geografische und kundenbezogene Analysen

Angenommen, wir haben ein Verkaufs-Datenmodell und möchten den Umsatz basierend auf verschiedenen geografischen und kundenbezogenen Dimensionen analysieren. Je nach Analysenanforderung könnte der Benutzer wählen, ob er den Umsatz entweder nach Verkaufsregion oder nach Vertriebsmitarbeiter aufschlüsseln möchte.

1. Datenstruktur

In diesem Beispiel richten wir zwei Dimensionen als Swappable Dimensions ein: - Verkaufsregion (Dim_Region) - Vertriebsmitarbeiter (Dim_Vertreter)

2. Faktentabelle und Beispiel-Tabellenaufbau

Wir erstellen eine Faktentabelle Fakt_Verkauf, in der Umsätze entweder nach Verkaufsregion oder nach Vertriebsmitarbeiter analysiert werden können.

Dim_Region (Verkaufsregion)
Region_ID Region_Name
1 Nord
2 Süd
3 Ost
4 West
Dim_Vertreter (Vertriebsmitarbeiter)
Vertreter_ID Vertreter_Name
101 Max Müller
102 Lisa Schmidt
103 Tom Weber
104 Anna Becker
Fakt_Verkauf (Faktentabelle für Umsätze)
Verkauf_ID Datum Produkt_ID Umsatz Dimension_ID Dimension_Typ
1 2024-10-01 501 1500 1 Region
2 2024-10-02 502 2500 101 Vertreter
3 2024-10-03 503 3000 2 Region
4 2024-10-04 501 2000 102 Vertreter
  • Dimension_ID: Verweist entweder auf die Region_ID aus Dim_Region oder die Vertreter_ID aus Dim_Vertreter.
  • Dimension_Typ: Gibt an, ob die Dimension auf Region oder Vertreter verweist.

3. Abfragen und Analysen mit Swappable Dimensions

Mit der Struktur der Dimension_Typ- und Dimension_ID-Felder in der Faktentabelle können Benutzer wählen, ob sie den Umsatz nach Region oder nach Vertriebsmitarbeiter analysieren möchten.

Beispiel-Abfragen:

Analyse des Umsatzes nach Region:

SELECT R.Region_Name, SUM(F.Umsatz) AS Gesamtumsatz
FROM Fakt_Verkauf F
JOIN Dim_Region R ON F.Dimension_ID = R.Region_ID
WHERE F.Dimension_Typ = 'Region'
GROUP BY R.Region_Name;

Analyse des Umsatzes nach Vertriebsmitarbeiter:

SELECT V.Vertreter_Name, SUM(F.Umsatz) AS Gesamtumsatz
FROM Fakt_Verkauf F
JOIN Dim_Vertreter V ON F.Dimension_ID = V.Vertreter_ID
WHERE F.Dimension_Typ = 'Vertreter'
GROUP BY V.Vertreter_Name;

4. Nutzen und Vorteile einer Swappable Dimension

  • Flexibilität: Der Benutzer kann dynamisch zwischen verschiedenen Dimensionen wechseln, je nachdem, welche Perspektive für die Analyse benötigt wird.
  • Skalierbarkeit: Das Modell kann bei Bedarf durch zusätzliche Swappable Dimensions erweitert werden, z. B. durch eine neue Dimension Dim_Kunde, um Umsätze auch nach Kundengruppen aufzuschlüsseln.
  • Reduzierter Pflegeaufwand: Die Swappable Dimension-Strategie ermöglicht es, mehrere Perspektiven ohne zusätzliche Faktentabellen zu pflegen.

In diesem Beispiel sind die Verkaufsregion und der Vertriebsmitarbeiter als Swappable Dimensions definiert. Die Dimension_Typ-Spalte in der Faktentabelle Fakt_Verkauf ermöglicht es, zwischen beiden Dimensionen zu unterscheiden und somit unterschiedliche Analysemöglichkeiten bereitzustellen. Dieses Modell ist besonders nützlich in Umgebungen, in denen der gleiche Datenfakt auf unterschiedliche Weise betrachtet werden muss.