Im heutigen Artikel möchte ich mich auf langsam ändernde Dimensionen konzentrieren, auch bekannt als SCD. Dimension ist ein Wort aus Data Warehousing als solches. Nicht ohne Grund wird SCD in Bezug auf Data Warehouse (DW) – Themen sehr häufig verwendet und kann für Audit-Zwecke in OLTP-Systemen verwendet werden.
Das Ziel des Artikels ist es, die Arten von sich langsam ändernden Dimensionen zu überprüfen, da es nur wenige Versionen davon gibt.
Die Daten ändern sich im Laufe der Zeit., Möglicherweise interessieren Sie sich nicht für die historische Version von Daten in Ihrer OLTP-Datenbank, dies ist jedoch möglicherweise erforderlich, um alle historischen Änderungen beizubehalten. Mit anderen Worten, Sie müssen in einem Verkaufsbericht ein korrektes Regionalbüro eines Verkäufers anzeigen können, unabhängig davon, wann die Person die Region geändert hat. In diesem Fall müssen wir die Daten vor der Änderung und nach dem Update aufbewahren.
Wie funktionieren Transformationen?
Es gibt nur wenige Arten von SCD.
Je nach SCD-Typ können Sie keine, eine oder mehrere historische Änderungen der Zeilen beibehalten.,
Die Idee ist einfach: Jedes Mal, wenn sich die Zeile ändert, wird eine alte Version (vor dem UPDATE oder LÖSCHEN) der Zeile in der SCD-Tabelle gespeichert.
Die Umsetzung dieser Dinge ist nicht immer einfach. Schauen wir uns Beispiele an.
Als Beispiel für Quelldaten verwende ich die folgende Datenzeile:
SCD Source data example
Im obigen Beispiel ist CustomerID ein Primärschlüssel in der Quell-Datenbank (OLTP).,
Wir führen Ersatzschlüssel (CustomerKey) in DW ein, um Doppelungen der ursprünglichen CustomerID zu vermeiden und die Leistung zu optimieren, insbesondere wenn das Quellsystem Zeichen oder komplexe Schlüssel verwendet.
SCD-Daten im Data Warehouse Beispiel
SCD-Typ 0
Dieser Typ behält keine Änderungen der Attribute bei. Es behält nur den ursprünglichen Wert ohne Änderungen bei. Es wird hauptsächlich für Attribute verwendet, die nicht geändert werden können, wie Geburtsdatum.,
SCD Typ 1: überschreiben der geschichte für ein attribut
Diese methode kann nicht verfolgen die änderungen in daten, und überschreibt die alten daten mit neue. Sobald unsere kunden ändern seine adresse, neue adresse würde überschreiben:
SCD Typ 1
Wie sie sehen können – es ist sehr einfach zu implementieren und pflegen die prozess – es ist einfach update. In anderen Händen ist der Nachteil dieses Ansatzes das Fehlen des Zeilenverlaufs im Data Warehouse.,
SCD Typ 2: Hinzufügen neuer Zeilen
Die Methodik bewahrt den Verlauf durch Hinzufügen neuer Zeilen auf, und die Anzahl der Änderungen ist nicht begrenzt.,iv id=“f3da287bb9″>
SCD Type 2
Zusätzlich können Sie entscheiden, auf welche Weise Sie ältere Zeilen kennen möchten, indem Sie die aktuelle Flag-Spalte und/oder updateDate beibehalten:
SCD Type 2 with current flag
oder Version der Zeile, die nacheinander inkrementiert werden:
SCD Type 2 mit Version
SCD Type 3: zusätzliche historische Spalten
Bei diesem Ansatz können Sie eine begrenzte Anzahl von Verlaufsdaten verwalten, indem Sie zusätzliche Spalten für Tracking-Attribute hinzufügen.,
Wollen vorherige und aktuelle Stadt des Kunden haben, können Sie Spalten implementieren: PreviousCity und CurrentCity. Es wird nur eine Zeile in Data Warehouse (DW) pro Quelldatenbank geben, daher hat Typ 3 eine eingeschränkte Benutzerfreundlichkeit und ist weniger beliebt als Typ 1 und 2.
SCD Typ 3
Sie müssen vorsichtig sein, wenn Sie Typ 3 von SCD verwenden möchten. Stellen Sie sicher, dass Business Analyst und/oder Ihr Kunde sich der Einschränkungen von History bewusst sind.,
SCD Typ 4: Separate historische Tabelle
Dieser Typ verwendet separate Tabellen zum Speichern der aktuellen Datensätze und historischen Änderungen. Es lohnt sich zu verwenden, wenn:
• Dimension ändert sich ziemlich oft oder
• Dimension ist multi-Millionen Zeilen Tabelle
SCD Typ 4 aktuelle Tabelle
SCD Typ 4 – historische Tabelle
p>
Margy Ross von der Kimball Group nennt solche Tabellen „Mini-Dimension“.,
SCD Typ 6:
Dieser Ansatz ist nummeriert als 6 1+2+3=6 sowie 1x2x3=6. Daher handelt es sich um eine Kombination dieser drei Typen:
• Behalten Sie sowohl die vorherigen als auch die aktuellen Werte für das Attribut bei (als Typ 3, siehe Spalten: „HistoricCity“, „CurrentCity“)
• Überschreibt alle Datensätze für die aktuelle Version des Attributs (als Typ 1, siehe Spalte „CurrentCity“)
• Behält die historische Version des Attributs bei (als Typ 2, siehe Spalten: „IsCurrent“, „StartDate“, „EndDate“)
Schauen wir uns an, wie die Zeile geändert wird und wie sich., Das erste Laden der Zeile:
SCD Typ 6 (Schritt 1)
Zeilen in der Kundentabelle von DW nach dem ersten Kundenumzug:
SCD Typ 6 (schritt 2)
Zeilen in der Kundentabelle von DW nach dem zweiten Kundenumzug:
SCD Typ 6 (Schritt 3)
Welchen Typ sollte ich wählen?,
Als professioneller Berater antworte ich professionell:
Es hängt davon ab
Fragen Sie Ihr Geschäftsteam, Business Analytics oder Ihren Kunden: Was sie im Data Warehouse benötigen.
ich Vielleicht nicht sagen, dass es laut genug ist, aber in der gleichen Tabelle können Sie unterschiedliche SCD-Typen für jede Spalte.
Zum Beispiel: Typ 2 in die Spalte Stadt, Typ 1 in die Spalte Geburtsdatum. Alle in der gleichen Tabelle.
Fragen Sie sie daher für jede Dimension:
• welche Attribute sind konstant,
• welche Attribute sind Variablen?,
• welche Attribute sollten vollständig verfolgt werden, die nur vorherige und aktuelle Version halten sollte?
• Wie viele Zeilen sind in der Tabelle jetzt / werden in den nächsten 10 Jahren erwartet?
Halten Sie diese Antworten als Beweis. Menschen, insbesondere Kunden, lieben es, ihre Meinung zu ändern. Du weißt, was ich meine.
Wenn Sie immer noch nicht sicher sind, welche ausgewählt werden soll, denken Sie daran, dass:
Das Führen eines Verlaufs der Änderungen gut für Sie ist
, nur weil sich die Anforderungen ändern könnten.
Neben den Typen 0 und 1 sind meiner Meinung nach Typ 2 und Typ 4 die beliebtesten.
Wie lade ich Daten in SCD?,
Gute Frage. Aber dieses Thema ist eine ganz andere Geschichte.
Bevor ich den nächsten Beitrag darüber vorbereite-schauen Sie sich dieses Tool an:
SCD Merge Wizard
Das Tool hilft Ihnen beim Erstellen, Verwalten und Verwalten der Zuordnung zwischen Quelldatenbank (z. B. Staging) und Zieldatenbank (Data Warehouse). Darüber hinaus verwenden Sie bei diesem Ansatz die MERGE-Anweisung, um Ladevorgänge mit dem konfigurierten SCD-Typ für jede Spalte auszuführen.
In weiteren Beiträgen werde ich erklären, wie verschiedene SCD-Typen in diesem Tool anzuwenden.
Viel Glück mit Ihren Ladungen,
Kamil