Wählen Sie einen langsam sich ändernden Dimensionstyp (SCD) aus
Tipp
Weitere Details finden Sie auf der Registerkarte "Text und Bilder ".
Dimensionstabellen in einem Data Warehouse erfassen beschreibende Attribute zu Geschäftsentitäten wie Kunden, Produkten oder Mitarbeitern. Diese Attribute ändern sich im Laufe der Zeit, und wie Sie diese Änderungen direkt behandeln, wirkt sich auf ihre Fähigkeit aus, genaue verlaufsgeschichtliche Analysen durchzuführen. Langsam ändernde Dimensionen (SCDs) bieten Frameworks für die Verwaltung dieser Änderungen, und die Auswahl des richtigen SCD-Typs ist eine wichtige Entwurfsentscheidung.
Als Dateningenieur wird von Ihnen erwartet, dass Sie SCD-Typen verstehen und sie auf Anweisung implementieren. Während Datenarchitekten häufig die anfänglichen Entwurfsentscheidungen treffen, benötigen Sie ausreichende Kenntnisse, um Kompromisse auszuwerten, Ansätze zu empfehlen und Implementierungen richtig auszuführen. Diese Einheit hilft Ihnen, die Merkmale jedes SCD-Typs zu verstehen, damit Sie den geeigneten Ansatz für Ihre Geschäftlichen Anforderungen auswählen können.
Verstehen Sie Dimensionenänderungen
Bevor Sie einen SCD-Typ auswählen, sollten Sie berücksichtigen, was passiert, wenn sich Quelldaten ändern. Stellen Sie sich vor, ein Kunde namens Hank Zoeng wechselt von Seattle nach Portland. Ihre Kundendimensionstabelle zeigt derzeit Seattle als seine Stadt an. Sie haben drei grundlegende Optionen:
- Überschreiben Sie den vorhandenen Wert mit Portland, wobei alle Spuren gelöscht werden, dass er jemals in Seattle war.
- Bewahren Sie den Seattle-Eintrag auf, und erstellen Sie eine neue Version mit Portland, wobei der vollständige Verlauf beibehalten wird.
- Verfolgen Sie einen begrenzten Verlauf, indem Sie neben dem aktuellen Wert eine Spalte "vorherige Stadt" hinzufügen.
Jeder Ansatz dient verschiedenen analytischen Anforderungen. Verkaufsberichte, die "aktueller Kundenstandort" zeigen, benötigen eine andere Behandlung als Analysen zur Nachverfolgung von "Kundenmigrationsmustern" oder "Verkäufe nach Region des Kunden zum Zeitpunkt des Kaufs".
SCD-Typ 0
SCD-Typ 0 stellt den einfachsten Ansatz dar: Bemaßungsattribute nach dem ersten Einfügen nie aktualisieren. Die ursprünglichen Werte bleiben unabhängig von Systemänderungen des Quellsystems dauerhaft.
Dieser Typ eignet sich gut für:
- Wahre Konstanten: Geburtsdatum, ursprüngliche Anmeldedaten oder Gründungstermine, die sich wirklich nie ändern.
- Auditanforderungen: Wenn Vorschriften den ursprünglichen Wert genau so beibehalten müssen, wie zuerst erfasst.
- Referenzdaten: Nachschlagewerte, die dauerhafte Klassifizierungen darstellen.
Typ 0 wird selten isoliert verwendet, da sich die meisten Dimensionsattribute im Laufe der Zeit ändern. Einzelne Spalten in einer Dimensionstabelle können jedoch die Typ 0-Behandlung verwenden, während andere Spalten unterschiedliche SCD-Typen verwenden.
SCD-Typ 1
SCD Type 1 überschreibt den vorhandenen Dimensionsdatensatz mit neuen Werten. Wenn Hank von Seattle nach Portland wechselt, aktualisieren Sie seine Zeile direkt. Die Dimensionstabelle gibt immer den aktuellen Zustand des Quellsystems wieder.
Typ 1 ist geeignet, wenn:
- Historische Werte spielen keine Rolle: Korrigieren von Dateneingabefehlern, Aktualisieren von E-Mail-Adressen oder Aktualisieren von Telefonnummern.
- Die Analyse konzentriert sich auf den aktuellen Zustand: Berichte, die die Frage beantworten "wo leben unsere Kunden heute?" anstatt "wo haben sie gelebt, als sie Einkäufe getätigt haben?"
- Einfachheit ist priorisiert: Typ 1 erfordert keine zusätzliche Spalten- oder Versionsverwaltungslogik.
Von Bedeutung
Typ 1-Änderungen wirken sich auf historische Aggregationen aus. Wenn Hank in Seattle Produkte im Wert von 10.000 US-Dollar gekauft hat, werden diese Verkäufe nach dem Update nun Portland zugeordnet. Dieses Verhalten kann die historische Leistung nach Region falsch darstellen.
Erwägen Sie die Verwendung von Typ 1 für zusätzliche Attribute, die sich nicht auf die analytische Genauigkeit auswirken, z. B.:
- Kontaktinformationen (E-Mail, Telefon, Adresskorrekturen).
- Beschreibende Textfelder (Produktbeschreibungen, Kundennotizen).
- Fehlerkorrekturen in jedem Attribut.
SCD-Typ 2
SCD Typ 2 behält den vollständigen Verlauf bei, indem neue Zeilen für jede Version eines Dimensionselements eingefügt werden. Wenn Hank nach Portland wechselt, bleibt die vorhandene Seattle-Zeile bestehen und eine neue Portland-Zeile wird erstellt. Beide Zeilen verwenden denselben natürlichen Schlüssel (Kunden-ID), weisen jedoch unterschiedliche Ersatzschlüssel auf.
Hinweis
Ein natürlicher Schlüssel wird auch als Geschäftsschlüssel oder Quellsystemschlüssel bezeichnet. Sie stellt den eindeutigen Bezeichner aus der ursprünglichen Datenquelle dar, z. B. Kunden-ID, Mitarbeiternummer oder Produktcode.
Typ-2-Dimensionen erfordern zusätzliche Verfolgungsattribute:
| Merkmal | Zweck |
|---|---|
| Ersatzschlüssel | Eindeutiger Bezeichner für jede Version |
| Gültigkeitsanfangsdatum | Als diese Version wirksam wurde |
| Gültigkeitsendedatum | Wenn diese Version abgelaufen ist (häufig 12.31.9999 für aktuell) |
| Aktuelle Kennzeichnung | Boolescher Wert, der die aktive Version angibt |
Die folgende Tabelle zeigt, wie der Kundendatensatz von Hank Zoeng nach dem Wechsel von Seattle nach Portland angezeigt wird:
| SK | Kunden-ID | Name | Stadt | ValidFrom | ValidTo | Current |
|---|---|---|---|---|---|---|
| 1001 | C-555 | Hank Zoeng | Seattle | 2020-01-15 | 2024-03-01 | FALSE |
| 1002 | C-555 | Hank Zoeng | Portland | 2024-03-01 | 9999-12-31 | WAHR |
Typ 2 ist geeignet, wenn:
- Historische Genauigkeit ist wichtig: Analysieren des Umsatzes durch den Standort des Kunden zum Zeitpunkt des Kaufs.
- Überwachungspfade sind erforderlich: Nachverfolgen von Mitarbeiterzuweisungen, Gebietsänderungen oder organisatorischer Umstrukturierungen im Laufe der Zeit.
- Trendanalyse ist erforderlich: Verständnis der Entwicklung von Dimensionsattributen.
Typ 2 erhöht komplexitäts- und Speicheranforderungen. Jede Version erstellt eine neue Zeile, und Faktentabellen verweisen über Ersatzschlüssel auf bestimmte Versionen. Die Komplexität der Abfrage steigt, da Analysten das Versionsverwaltungsmodell verstehen müssen.
Tipp
Reservieren Sie Typ 2 für Attribute, bei denen sich die historische Perspektive auf Geschäftsentscheidungen auswirkt. Wenden Sie Typ 2 nicht auf jedes geänderte Attribut an. Der Aufwand ist nicht für ergänzende Daten wie Telefonnummern gerechtfertigt.
SCD-Typ 3
SCD Type 3 verfolgt eine eingeschränkte Historie, indem Spalten für vorherige Werte hinzugefügt werden. Anstatt neue Zeilen zu erstellen, fügen Sie neben "aktuelle Stadt" eine Spalte "vorherige Stadt" hinzu. Dieser Ansatz verfolgt nur die letzte Änderung, nicht den vollständigen Verlauf.
Die folgende Tabelle zeigt, wie der Kundendatensatz von Hank Zoeng nach dem Wechsel von Seattle nach Portland angezeigt wird:
| Kunden-ID | Name | CurrentCity | PreviousCity |
|---|---|---|---|
| C-555 | Hank Zoeng | Portland | Seattle |
Typ 3 ist geeignet, wenn:
- Nur der vorherige Wert ist wichtig: Vergleich der aktuellen und vorherigen Organisationsstruktur.
- Speichereinschränkungen sind vorhanden: Wenn die Versionierung von Typ 2 zu viele Zeilen erzeugen würde.
- Die Analyse vergleicht vor und nachher: Produktreformulationen, Preisniveauänderungen oder Richtlinienupdates.
Typ 3 ist der am wenigsten häufig verwendete SCD-Typ, da:
- Er erfasst nur einen vorherigen Wert (oder eine feste Anzahl früherer Werte).
- Durch das Hinzufügen von Spalten für jedes nachverfolgte Attribut können Tabellen erheblich erweitert werden.
- Semantische Modelle finden Typ 3-Strukturen schwer zu verwenden.
Die meisten Szenarien, die Typ 3 benötigen, werden besser von Typ 2 bedient, was den vollständigen Verlauf ohne Schemaänderungen für jedes Attribut bereitstellt.
SCD-Typen vergleichen
In der folgenden Tabelle wird zusammengefasst, wann jeder SCD-Typ ausgewählt werden soll:
| Überlegung | Typ 0 | Typ 1 | Typ 2 | Typ 3 |
|---|---|---|---|---|
| Geschichte bewahrt | Nur Original | Nichts | Vollständig | Begrenzt |
| Auswirkungen auf die Speicherung | Wenig | Wenig | High | Mäßig |
| Abfragekomplexität | Simple | Simple | Complex | Mäßig |
| Häufig verwendete Anwendungsfälle | Konstanten, Prüfanforderungen | Fehlerkorrekturen, Kontaktaktualisierungen | Vertriebszuordnung, Gebietverfolgung | Before/After-Vergleiche |
| Beziehung der Faktentabelle | Natürlicher Schlüssel | Natürlicher Schlüssel | Ersatzschlüssel | Natürlicher Schlüssel |
Anwenden gemischter SCD-Strategien
Produktionsdimensionstabellen kombinieren häufig mehrere SCD-Typen. Eine Kundendimension kann Attribute je nach analytischer Bedeutung unterschiedlich behandeln:
- Typ 0: Ursprüngliches Registrierungsdatum (nie geändert).
- Typ 1: E-Mail-Adresse, Telefonnummer (aktueller Status ist ausreichend).
- Typ 2: Zugewiesene Vertriebsregion (historische Genauigkeit erforderlich für die Verkaufszuordnung).
Dieser Hybridansatz gleicht die Speichereffizienz mit analytischen Anforderungen ab. Bewerten Sie beim Entwerfen von Dimensionen jedes Attribut einzeln, um die entsprechende Änderungsbehandlungsstrategie zu ermitteln.
Wenn Sie wissen, wann jeder SCD-Typ angewendet werden soll, können Sie Dimensionen implementieren, die die analytischen Anforderungen Ihrer Organisation genau unterstützen. Die Implementierungsdetails zum Laden und Verwalten von SCD-Tabellen in Azure Databricks werden in späteren Einheiten behandelt.