Der Eigentümer des Data Warehouse muss entscheiden, wie auf die Änderungen in den Beschreibungen von dimensionalen Entitäten wie Mitarbeiter, Kunde, Produkt, Lieferant, Standort und anderen reagiert werden soll. In 30 Jahren des Studiums dieses Themas habe ich festgestellt, dass nur drei verschiedene Arten von Antworten benötigt werden. Ich nenne diese langsam wechselnden Dimensionstypen (SCD) 1, 2 und 3. In der Spalte des letzten Monats habe ich Typ 1 beschrieben, der die geänderten Informationen in der Dimension überschreibt., In dieser Spalte beschreibe ich die Typen 2 und 3.
Typ 2: eine Neue Dimension Hinzufügen, Record
Lassen Sie uns ändern das Szenario der vorherigen Spalte, wo ich überschrieb die Stadt, Gebiet in Ralph Kimball ‚ s employee-Datensatz zu übernehmen, die von Ralph Kimball tatsächlich zog vom Santa Cruz Boulder Creek on July 18, 2008. Angenommen, unsere Richtlinie besteht darin, die Privatadressen der Mitarbeiter im Data Warehouse genau zu verfolgen. Dies ist eine klassische Typ-2-Änderung.
Der Typ 2 SCD verlangt, dass wir mit Wirkung zum 18. Juli 2008 einen neuen Mitarbeiterrekord für Ralph Kimball ausstellen., Dies hat viele interessante Nebenwirkungen:
- Typ 2 erfordert, dass wir den Primärschlüssel der Mitarbeiterdimension verallgemeinern. Wenn Ralph Kimballs natürlicher Mitarbeiterschlüssel G446 ist, dann ist dieser natürliche Schlüssel der „Kleber“, der Ralph Kimballs mehrere Datensätze zusammenhält. Ich empfehle nicht, einen intelligenten Primärschlüssel für SCDs vom Typ 2 zu erstellen, der den wörtlichen natürlichen Schlüssel enthält. Die Probleme mit Smart Keys werden besonders deutlich, wenn Sie mehrere inkompatible HR-Systeme mit unterschiedlich formatierten natürlichen Schlüsseln integrieren., Vielmehr sollten Sie vollständig künstliche Primärschlüssel erstellen, denen einfach sequentiell Ganzzahlen zugewiesen werden. Wir nennen diese Schlüssel Ersatzschlüssel. Sie müssen einen neuen Ersatz-Primärschlüssel erstellen, wenn Sie eine Typ-2-Änderung in einer Dimension verarbeiten.
- Zusätzlich zum primären Ersatzschlüssel empfehle ich, einer Dimension, die einer Typ-2-Verarbeitung unterzogen wird, fünf zusätzliche Felder hinzuzufügen. Diese Felder sind in Abbildung 1 dargestellt. Die Datumszeiten sind Vollzeitstempel, die den Zeitraum zwischen dem Zeitpunkt, zu dem die Änderung wirksam wurde, und dem Zeitpunkt, zu dem die nächste Änderung wirksam wird, darstellen., Die end-effective-datetime eines Dimensionsdatensatzes vom Typ 2 muss genau der begin-effective-datetime der nächsten Änderung für dieses Dimensionsmitglied entsprechen. Der aktuellste Dimensionsdatensatz muss ein Ende haben-effektiv-datetime gleich einer fiktiven Datetime weit in der Zukunft. Der Grundtext für die Änderung sollte aus einer vorgeplanten Liste von Gründen für eine Änderung in unserem Beispiel zu den Mitarbeiterattributen gezogen werden. Schließlich bietet das current-Flag eine schnelle Möglichkeit, genau den Satz von Dimensionsmitgliedern zu isolieren, der zum Zeitpunkt der Abfrage wirksam ist., Mit diesen fünf Verwaltungsfeldern können Endbenutzer und Anwendungen viele leistungsstarke Abfragen ausführen.
- Bei einer Dimension, die einer Typ-2-Verarbeitung unterzogen wird, muss in jeder betroffenen Faktentabelle mit großer Sorgfalt auf die Verwendung der korrekten zeitgenössischen Ersatzschlüssel aus dieser Dimension geachtet werden. Dadurch wird sichergestellt, dass die richtigen Dimensionsprofile mit der Aktivität der Faktentabelle verknüpft sind. Der ETL-Prozess (Extract, Transform and Load) zum Ausrichten der Dimensionstabellen mit Faktentabellen zur Ladezeit wird als Ersatzschlüsselpipeline bezeichnet und wird in meinen Artikeln und Büchern ausführlich behandelt.,
Typ 3: Fügen Sie ein neues Feld hinzu
Obwohl die SCDs vom Typ 1 und 2 die primären Arbeitstier-Techniken zum Reagieren auf Änderungen in einer Dimension sind, benötigen wir eine dritte Technik zum Umgang mit alternativen Realitäten. Im Gegensatz zu physischen Attributen, die zu einem bestimmten Zeitpunkt nur einen Wert haben können, können einige vom Benutzer zugewiesene Attribute je nach Sicht des Beobachters legitim mehr als einen zugewiesenen Wert haben. Beispielsweise kann eine Produktkategorie mehr als eine Interpretation haben., In einem Schreibwarengeschäft könnte ein Markierungsstift der Kategorie Haushaltswaren oder der Kategorie Kunstbedarf zugeordnet werden. Endbenutzer und Anwendungen müssen bei der Abfrage auswählen können, welche dieser alternativen Realitäten zutrifft.
Die Anforderung an eine alternative Realitätsansicht eines Dimensionsattributs geht in der Regel mit einer subtilen Anforderung einher, dass in der Vergangenheit und in der Zukunft jederzeit separate Versionen der Realität verfügbar sein müssen, obwohl die Anforderung, diese Realitäten sichtbar zu machen, heute im Data Warehouse angekommen ist.,
In der einfachsten Variante gibt es nur eine Alternative-Realität. In diesem Fall fügen wir für das Beispiel Produktkategorie ein neues Feld in der Dimension hinzu, das möglicherweise als alternative Kategorie bezeichnet wird. Wenn die Hauptkategorie unseres Markierungsstifts früher Haushaltswaren waren und jetzt Kunstartikel sein sollten, schieben wir in einer Typ-3-Behandlung das Haushaltswarenetikett in das Feld Alternative Kategorie und aktualisieren das Feld reguläre Kategorie mit Kunstartikeln, indem wir es überschreiben. Der Überschreibschritt ähnelt einer SCD vom Typ 1 und provoziert dieselben Einschränkungen in der Spalte des letzten Monats.,
Mit Typ-3-Maschinen können Endbenutzer und Anwendungen nahtlos zwischen diesen alternativen Realitäten wechseln. Wenn die Umgebung mehr als eine alternative Realität erfordert, kann dieser Ansatz verallgemeinert werden, indem weitere alternative Felder hinzugefügt werden, obwohl dieser Ansatz offensichtlich nicht anmutig über einige Auswahlmöglichkeiten hinaus skaliert.
Die drei SCD-Ansätze zur Behandlung von Zeitabweichungen in Dimensionen haben eine enorme Anwendbarkeit in den realen Situationen des Data Warehouse., Insbesondere Typ 2 ermöglicht es uns, das Data Warehouse-Versprechen, die Geschichte treu zu bewahren, zu erfüllen.