Auswählen zwischen Typen von langsam veränderlichen Dimensionen

Abgeschlossen

Die Theorie des Sternschemaentwurfs bezieht sich auf gängige Typen langsam veränderlicher Dimensionen. Die gängigsten sind Typ 1 und Typ 2. In der Praxis kann eine Dimensionstabelle eine Kombination von Verlaufsnachverfolgungsmethoden unterstützen, einschließlich Typ 3 und Typ 6. Im Folgenden erfahren Sie mehr über die Unterschiede dieser Typen langsam veränderlicher Dimensionen.

SCD Typ 1

Eine langsam veränderliche Dimension vom Typ 1 stellt immer die neuesten Werte dar. Wenn Änderungen an den Quelldaten ermittelt werden, werden die Daten der Dimensionstabelle überschrieben. Dieser Entwurfsansatz wird häufig für Spalten verwendet, die ergänzende Werte enthalten, z. B. E-Mail-Adressen oder Telefonnummern von Kunden. Wenn die E-Mail-Adresse oder Telefonnummer eines Kunden geändert wird, aktualisiert die Dimensionstabelle die Kundenzeile mit den neuen Werten. Dies erfolgt so, als hätte der Kunde schon immer über diese Kontaktinformationen verfügt. Das Schlüsselfeld, z. B. CustomerID, bleibt unverändert, weshalb die Datensätze in der Faktentabelle automatisch mit dem aktualisierten Kundendatensatz verknüpft werden.

An example Type 1 SCD row that updates CompanyName and ModifiedDate.

SCD Typ 2

Eine langsam veränderliche Dimension vom Typ 2 unterstützt die Versionskontrolle für Dimensionselemente. Häufig speichert das Quellsystem Versionen nicht, weshalb der Ladeprozess des Data Warehouse Änderungen in einer Dimensionstabelle ermittelt und verwaltet. In diesem Fall muss die Dimensionstabelle einen Ersatzschlüssel verwenden, um einen eindeutigen Verweis auf eine Version des Dimensionselements bereitzustellen. Sie enthält auch Spalten, die die Gültigkeit des Datumsbereichs der Version definieren (z. B. StartDate und EndDate), und möglicherweise eine Flagspalte (z. B. IsCurrent), um ganz einfach nach aktuellen Dimensionselementen filtern zu können.

Beispielsweise weist Adventure Works Vertriebsmitarbeiter zu einer Vertriebsregion zu. Wenn ein Vertriebsmitarbeiter einer anderen Region zugewiesen wird, muss eine neue Version des Vertriebsmitarbeiters erstellt werden, um sicherzustellen, dass Verlaufsdaten weiterhin der vorherigen Region zugeordnet bleiben. Die Dimensionstabelle muss Versionen von Vertriebsmitarbeitern und ihren zugeordneten Regionen enthalten, um eine genaue Verlaufsanalyse der Verkäufe pro Vertriebsmitarbeiter zu ermöglichen. Die Tabelle sollte auch Werte für das Start- und Enddatum enthalten, um die Gültigkeitsdauer zu definieren. Aktuelle Versionen können ein leeres Enddatum (oder 31. 12. 9999) definieren, was angibt, dass die Zeile der aktuellen Version entspricht. Die Tabelle muss außerdem einen Ersatzschlüssel definieren, weil der Geschäftsschlüssel (in diesem Fall die Mitarbeiter-ID) nicht eindeutig ist.

An example Type 2 SCD row that shows a new record for Region change.

Denken Sie daran, dass Sie ein Zwischensystem (beispielsweise ein Data Warehouse) zum Ermitteln und Speichern von Änderungen verwenden müssen, wenn die Quelldaten die Versionen nicht speichert. Der Tabellenladevorgang muss vorhandene Daten beibehalten und Änderungen ermitteln. Wenn eine Änderung ermittelt wird, muss der Tabellenladevorgang die aktuelle Version aktualisieren. Die Aufzeichnung dieser Änderungen erfolgt durch Aktualisieren des Werts EndDate und Einfügen einer neuen Version mit dem Wert StartDate, der ab dem vorherigen Wert von EndDate beginnt. Verwandte Fakten müssen außerdem eine zeitbasierte Suche verwenden, um den entsprechenden Dimensionsschlüsselwert für das Faktendatum abzurufen.

Langsam veränderliche Dimension vom Typ 3

Eine langsam veränderliche Dimension vom Typ 3 unterstützt die Speicherung von zwei Versionen eines Dimensionselements als separate Spalten. Die Tabelle enthält eine Spalte für den aktuellen Wert eines Elements sowie entweder den ursprünglichen oder vorherigen Wert des Elements. Typ 3 verwendet also zusätzliche Spalten zum Nachverfolgen einer wichtigen Instanz des Verlaufs, anstatt zusätzliche Zeilen zu speichern, um jede Änderung wie bei langsam veränderlichen Dimensionen vom Typ 2 nachzuverfolgen.

Dieser Typ der Nachverfolgung kann nur für eine oder zwei Spalten in einer Dimensionstabelle verwendet werden. Es ist unüblich, diesen Typ für viele Elemente derselben Tabelle zu verwenden. Er wird häufig in Kombination mit Elementen der Typen 1 und 2 verwendet.

An example Type 3 SCD row that shows an updated CurrentEmail column and an unchanged OriginalEmail column.

Langsam veränderliche Dimension vom Typ 6

Eine langsam veränderliche Dimension vom Typ 6 kombiniert die Typen 1, 2 und 3. Wenn eine Änderung an einem Element vom Typ 2 erfolgt, erstellen Sie eine neue Zeile mit entsprechenden StartDate- und EndDate-Werten. Im Entwurf von Typ 6 speichern Sie den aktuellen Wert auch in allen Versionen dieser Entität, sodass Sie problemlos den aktuellen Wert oder den Verlaufswert melden können.

Im Beispiel der Vertriebsregion teilen Sie die Spalte „Region“ in CurrentRegion und HistoricalRegion auf. CurrentRegion zeigt immer den neuesten Wert an und HistoricalRegion zeigt die Region an, die zwischen StartDate und EndDate gültig war. Für denselben Vertriebsmitarbeiter wird also für jeden Datensatz die letzte Region in CurrentRegion aufgefüllt, während HistoricalRegion genau wie das Feld „Region“ im Beispiel für eine langsam veränderliche Dimension vom Typ 2 funktioniert.

An example Type 6 SCD row that shows a new record for Region change with CurrentRegion updated for old and new row.