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
ausDim_Region
oder dieVertreter_ID
ausDim_Vertreter
. - Dimension_Typ: Gibt an, ob die Dimension auf
Region
oderVertreter
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.