Wählen Sie einen langsam sich ändernden Dimensionstyp (SCD) aus

Abgeschlossen

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.

Diagramm zur Erläuterung des SCD-Typs 0.

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.

Diagramm zur Erläuterung des SCD-Typs 1.

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.