Slowly Changing Dimension
Auch: SCD, Slowly Changing Dimensions, Dimension history tracking
Eine Slowly Changing Dimension (SCD) ist eine Technik im Data Warehousing, mit der sich Dimensionsattribute verwalten lassen, die sich im Laufe der Zeit ändern. Je nach gewählter Regel wird die Historie bewahrt oder der Wert überschrieben.
Was es ist
Eine Slowly Changing Dimension (SCD) ist eine Methode im Data Warehousing, um Änderungen an beschreibenden Attributen in Dimensionstabellen über die Zeit zu behandeln. Dimensionen liefern den Kontext zu Fakten (numerischen Messwerten): Kunden, Produkte, Mitarbeiter, Filialen und ähnliche Entitäten. Weil sich diese Attribute (die Adresse eines Kunden, die Kategorie eines Produkts, die Abteilung eines Mitarbeiters) selten und unvorhersehbar ändern, braucht das Warehouse eine abgestimmte Strategie, wie diese Änderungen erfasst werden.
Warum das wichtig ist
Ohne klare SCD-Strategie wird historisches Reporting ungenau. Wenn ein Kunde von einer Region in eine andere umzieht und Sie die alte Region einfach überschreiben, erscheinen alle vergangenen Verkäufe so, als hätten sie immer zur neuen Region gehört. SCD-Techniken erlauben es Teams zu entscheiden, ob nur der aktuelle Stand, die vollständige Historie oder eine Mischung relevant ist. Das wirkt sich direkt auf Compliance, Trendanalyse, Attribution und Audit-Verlässlichkeit aus.
Gängige Typen
- Typ 0: Attribute ändern sich nie (zum Beispiel ein Geburtsdatum). Updates werden ignoriert.
- Typ 1: Der alte Wert wird überschrieben. Keine Historie. Einfach, aber der vergangene Kontext ist verloren.
- Typ 2: Für jede Änderung wird eine neue Zeile angelegt, mit Gültigkeitsdaten und einem Current-Flag. Die vollständige Historie bleibt erhalten. Das ist der gängigste Ansatz für belastbare historische Analysen.
- Typ 3: Begrenzte Historie in zusätzlichen Spalten (zum Beispiel current_region und previous_region). Nützlich, wenn nur ein vorheriger Wert zählt.
- Typ 4 und 6: Hybride Ansätze mit Historientabellen oder Kombinationen aus Typ 1, 2 und 3.
Wie es in der Praxis genutzt wird
ETL- oder ELT-Pipelines vergleichen eingehende Quelldatensätze mit bestehenden Dimensionszeilen. Weicht ein überwachtes Attribut ab, wendet die Pipeline die konfigurierte SCD-Logik an. Moderne Transformationstools und Frameworks automatisieren die Typ-2-Behandlung häufig über Surrogate Keys, Hash-Vergleiche und Gültigkeits-Timestamps.
Konkretes Beispiel
Eine Kundin namens Maria wohnt in der Region North. Verkäufe werden ihr zugeordnet. Sie zieht in die Region South.
- Mit Typ 1 überschreibt das Warehouse North mit South. Alte Verkäufe sehen jetzt wie South-Verkäufe aus.
- Mit Typ 2 wird eine neue Zeile angelegt. Verkäufe vor dem Umzug bleiben mit North verknüpft, Verkäufe danach mit South. Die Reports zeigen korrekt, wo sie zum Zeitpunkt jedes Kaufs gewohnt hat.
Die Wahl des richtigen Typs ist eine Business-Entscheidung, nicht nur eine technische.
Häufige Fragen
Was ist eine Slowly Changing Dimension im Data Warehousing?
Eine Slowly Changing Dimension (SCD) ist die abgestimmte Methode, um Änderungen an beschreibenden Attributen in Dimensionstabellen zu erfassen: die Adresse eines Kunden, die Kategorie eines Produkts, die Abteilung eines Mitarbeiters. Dimensionen liefern den Kontext rund um numerische Fakten, und diese Attribute ändern sich selten und unvorhersehbar. Der gewählte SCD-Typ entscheidet, ob das Warehouse den alten Wert behält, ersetzt oder beide speichert.
Warum beeinflusst die Wahl des SCD-Typs die Genauigkeit des Reportings?
Weil das Überschreiben eines Attributs die Vergangenheit umschreibt. Wenn ein Kunde von der Region North nach South umzieht und Sie den Wert einfach ersetzen, erscheint plötzlich jeder historische Verkauf als South-Verkauf. Das verzerrt Trendanalyse, Attribution und Audit Trails, weshalb die Entscheidung Compliance-Folgen hat und nicht nur technische.
Was ist der Unterschied zwischen SCD Typ 1 und Typ 2?
Typ 1 überschreibt den alten Wert und behält keine Historie: einfach im Betrieb, aber der vergangene Kontext verschwindet. Typ 2 fügt für jede Änderung eine neue Zeile mit Gültigkeitsdaten und einem Current-Flag ein, sodass Fakten mit dem Attributwert verknüpft bleiben, der zum Zeitpunkt ihres Eintretens galt. Typ 2 ist die übliche Wahl, wenn historische Analysen wichtig sind.
Wann genügt Typ 0 oder Typ 3 anstelle einer vollständigen Typ-2-Historie?
Typ 0 passt zu Attributen, die sich nie ändern sollten, etwa einem Geburtsdatum: eingehende Updates werden einfach ignoriert. Typ 3 passt zu Fällen, in denen nur ein vorheriger Wert zählt, gespeichert in zusätzlichen Spalten wie current_region und previous_region. Typ 4 und 6 existieren als Hybride, mit separaten Historientabellen oder einer Mischung aus Typ 1, 2 und 3 in derselben Dimension.
Wie wenden ETL- oder ELT-Pipelines die SCD-Logik konkret an?
Die Pipeline vergleicht jeden eingehenden Quelldatensatz mit der bestehenden Dimensionszeile und erkennt, ob ein überwachtes Attribut abweicht, und wendet dann die konfigurierte SCD-Regel an. Moderne Transformationstools automatisieren die Typ-2-Behandlung mit Surrogate Keys, Hash-Vergleichen zum Erkennen von Änderungen und Gültigkeits-Timestamps, um die alte Zeile zu schließen und die neue zu öffnen.