Database
 sql >> Datenbank >  >> RDS >> Database

Dimensionen von Dimensionen:Ein Blick auf die gängigsten Dimensionstabellentypen von Data Warehousing

Wenn wir ein Data Warehousing-Projekt starten, definieren wir als Erstes die Dimensionstabellen. Maßtabellen sind die interessanten Teile, der Rahmen, um den herum wir unsere Messungen aufbauen. Sie kommen in vielen Formen und Größen. In diesem Artikel werden wir uns jede Art von Maßtabelle genauer ansehen.

Dimensionstabellen bieten Kontext zu den Geschäftsprozessen, die wir messen möchten. Sie sagen uns alles, was wir über eine Veranstaltung wissen müssen. Da sie den Messungen (d. h. Faktentabellen) des Data Warehouse (DWH)-Systems Substanz verleihen, verbringen wir mehr Zeit mit ihrer Definition und Identifizierung als mit jedem anderen Aspekt des Projekts. Faktentabellen definieren die Messungen; Maßtabellen geben Kontext. (Weitere Informationen zu Faktentabellen finden Sie in diesen Beiträgen zu Data Warehousing, dem Sternschema, dem Schneeflockenschema und Fakten zu Faktentabellen).

Das Hauptmerkmal von Dimensionstabellen ist ihre Vielzahl von Attributen . Attribute sind die Spalten, die wir zusammenfassen, filtern oder aggregieren. Sie haben eine niedrige Kardinalität und sind normalerweise textuell und zeitlich. Dimensionstabellen haben einen Primärschlüssel basierend auf dem zugrunde liegenden Geschäftsschlüssel oder einem Ersatzschlüssel . Dieser Primärschlüssel ist die Grundlage für das Verbinden der Dimensionstabelle mit einer oder mehreren Faktentabellen.

Im Vergleich zu Faktentabellen sind Dimensionstabellen klein, einfach zu speichern und haben nur geringe Auswirkungen auf die Leistung.

Werfen wir nun einen Blick auf einige der Dimensionstabellen, auf die Sie in einer Data-Warehouse-Umgebung stoßen werden.

Eine gemeinsame Dimensionstabelle:Die angepasste Dimension

Wir beginnen mit einem Grundtyp:der angepassten Dimension. Diese enthalten mehrere Attribute, die in mehreren Quelltabellen adressiert werden können, aber auf dieselbe Domäne verweisen (Kunde, Vertrag, Geschäft usw.) Angepasste Dimensionen werden mit vielen Fakten verwendet und sollten für den Korn-/Domänenwert im Data Warehouse eindeutig sein.

Beispiel:




Sehen wir uns eine typische Maßtabelle an, DIM_CUSTOMER .

Wir definieren:

  • id – Der Primärschlüssel der Dimensionstabelle.
  • cust_natural_key – Der natürliche Schlüssel für den Kunden.
  • first_name – Vorname des Kunden.
  • last_name – Nachname des Kunden.
  • address_residence – Wohnadresse des Kunden.
  • date_of_birth – Geburtsdatum des Kunden.
  • marital_status – Ist der Kunde verheiratet? Definiert als Y (ja) oder N (nein).
  • gender – Das Geschlecht des Kunden, M (männlich) oder F (weiblich).

Dimensionstabellenattribute hängen von den Geschäftsanforderungen ab. Wir können diese Art von Tabelle erweitern, um branchenspezifische Informationen (Datum des Ausfalls, Aktivität usw.) aufzunehmen

Sich langsam ändernde Maßtabellen

Im Laufe der Zeit können Dimensionen ihre Werte ändern. In den folgenden Abschnitten untersuchen wir Dimensionen, die danach klassifiziert sind, wie sie Verlaufsdaten speichern (oder nicht speichern).

Angenommen, Sie haben eine Kundendimension. Einige Attribute werden sich wahrscheinlich im Laufe des Lebens des Kunden ändern – z. Telefonnummer, Adresse, Familienstand usw. Diese Art von Tabelle nennt Ralph Kimball eine sich langsam ändernde Dimension oder SCD.

Die SCD gibt es in vielen Arten; acht von ihnen sind ziemlich häufig. Von diesen sehen Sie am häufigsten die Typen 0 bis 4; Typen 5, 6 und 7 sind Hybriden der ersten fünf. (Hinweis:Das Nummerierungsschema dieser SCDs beginnt mit einer 0 statt einer 1.)

Hybrid-SCDs bieten mehr Flexibilität und bessere Leistung, jedoch auf Kosten der Einfachheit. Wir verwenden diese Tabellentypen, wenn wir eine analytische Analyse von Strom durchführen müssen Daten mit einigen historischen Überlegungen.

SCD-Typ 0:Einmaliges Füllen

Dies ist die grundlegendste Art der Maßtabelle:Sie füllen sie einmal und nie aus wieder füllen. Betrachten Sie dies als Referenzdaten. Ein typisches Beispiel hierfür ist die Datumsdimension. Wir müssen diese Dimension nicht mit jeder DWH-Ladung füllen. Die Maßtabelle ändert sich nicht mit der Zeit. Sie können keine weiteren Daten abrufen oder Daten ändern.

Die Faktentabelle verbindet sich mit den ursprünglichen Attributen der Dimension.

Beispiel

Schauen wir uns die Zeitdimension an:




Die Struktur ist ziemlich einfach:

  1. id – Ersatzschlüssel
  2. time_date – Aktuelles Datum
  3. time_day – Tag des Monats
  4. time_week – Woche im Jahr
  5. time_month – Monat in einem Jahr
  6. time_year – Zahlendarstellung einer Jahreszahl

SCD Typ 1:Umschreiben von Daten

Wie der Name schon sagt, schreiben wir diese Art von Maßtabelle bei jeder DWH-Ladung neu. Wir müssen keine Historie von ihnen führen, aber wir gehen davon aus, dass es einige Änderungen geben wird.

Der Unterschied zwischen einem Typ 0 SCD und einem Typ 1 liegt nicht in der Struktur der Tabelle. Es hat mit der Aktualisierung der Daten zu tun. Sie aktualisieren die Daten in einem Typ 0 nie, aber manchmal in einem Typ 1.

Eine wiederbeschreibbare Tabelle ist der einfachste Weg, um mit Änderungen umzugehen (Löschen/Einfügen), bringt aber nur wenig geschäftlichen Nutzen. Sobald Sie eine Dimensionstabelle wie diese definiert haben, ist es schwierig, die Verlaufsverfolgung zu installieren.

Die Faktentabelle verbindet sich mit den aktuellen Attributen der Dimension.

Beispiel

Sehen wir uns die Kontodimension an:




Seine Struktur ist wie folgt:

  • id – Der Ersatzschlüssel der Tabelle
  • account_name – Der Name des Kontos
  • account_type – Die Kategorie des Kontos
  • account_activity – Kennzeichnet verschiedene Arten von Aktivitäten

Wenn wir uns die Daten vor der Änderung ansehen, sehen wir Folgendes:

Wenn sich der Kontotyp geändert hat, werden die Daten einfach überschrieben:

SCD-Typ 2:Verfolgen historischer Attribute nach Zeile

Dies ist die häufigste Form der Verlaufsverfolgung in einem DWH-System. SCD-Tabellen vom Typ 2 fügen neue Zeilen für jede historische Änderung von Dimensionsattributen zwischen hinzu DWH lädt . Bei diesem Typ definieren wir den Primärschlüssel als Ersatzschlüssel, da der Geschäftsschlüssel im Laufe der Zeit mehrere Darstellungen haben wird. Wenn sich Zeilen mit geänderten Daten ändern, definieren wir einen neuen Wert für den Ersatzschlüssel, der dem Wert in der Faktentabelle entspricht. Wir müssen mindestens zwei Spalten hinzufügen, valid_from und valid_to , um den Verlauf auf diese Weise zu speichern.

Die Faktentabelle ist über den Ersatzschlüssel mit den historischen Attributen der Dimension verbunden. Die Aggregation erfolgt auf dem natürlichen Schlüssel .

Beispiel

Sehen wir uns die vorherige Kundendimensionstabelle an, die jetzt um zwei Datumsspalten erweitert wurde:




Sehen wir uns die Daten an:

Zu beachtende Punkte:

  • Wie können wir die aktuelle Zeile markieren, valid_to ? (Normalerweise mit 31.12.9999 oder NULL .)
  • Wie können wir die erste Zeile markieren, valid_from ? (In der Regel mit 01.01.1900, bzw. dem Datum der ersten Einfügung).
  • Definieren Sie eine inklusive oder exklusive Zeile? (Oben verwenden wir einen inklusiven valid_from und ein exklusives valid_to ).

SCD-Typ 3:Verfolgen historischer Attribute nach Spalte

Wie beim Typ 2 SCD fügt dieser Typ etwas hinzu, um historische Werte darzustellen. In diesem Fall fügen wir jedoch neue Spalten hinzu. Diese stellen den Wert eines dimensionalen Zeilenattributs dar, bevor es sich ändert. Normalerweise behalten wir nur die vorherige Version des Attributs.

Hinweis:Dieser SCD wird selten verwendet.

Die Faktentabelle stellt eine Verbindung zu den aktuellen und vorherigen Attributen der Dimension her.

Beispiel

Schauen wir uns die Kundendimension an, diesmal mit einer früheren Wohnadresse:




In diesem Beispiel haben wir eine neue Spalte hinzugefügt, previous_address_residence , um die alte Adresse des Kunden darzustellen. Wenn wir uns unser erstes Beispiel ansehen, würden die Daten in dieser Tabelle so aussehen:

Alle historischen Informationen, mit Ausnahme der vorherigen Adresse des Kunden, gehen verloren.

SCD-Typ 4:Hinzufügen einer Mini-Dimension

Diese Art von Dimension basiert nicht auf strukturellen (Typ 3) oder wertmäßigen (Typ 2) Veränderungen. Vielmehr basiert es auf konstruktiven Änderungen am Modell. Wenn unsere Maßtabelle hochflüchtige Daten enthält – d. h. Daten, die sich häufig ändern – würde die Größe der Maßtabelle erheblich zunehmen.

Um dies abzumildern, extrahieren wir die flüchtigen Attribute in eine Mini-Dimension . Diese Mini-Dimensionen könnten dann auf die geschäftsrelevante Ebene aggregiert werden. Allerdings sollte diese Aggregation nicht mit Faktenaggregation verwechselt werden . Das Beispiel wird dies verdeutlichen.

Die Faktentabelle stellt eine Verbindung zu den historischen Attributen der Dimension her.

Beispiel

Schauen wir uns ein Beispiel aus einem einfachen Finanzdatenmarkt an. Angenommen, Sie müssen nachverfolgen, wie spät bestimmte Kunden mit ihren Zahlungen sind. Nennen wir dieses Attribut Tage überfällig oder DPD. Würden wir DPD jeden Tag in einer Typ-2-Dimension tracken, würde die Tabellengröße schnell über die Grenzen hinaus explodieren. Also extrahieren wir das Attribut und finden geschäftsrelevante DPD-Zeiträume – sagen wir in 30-Tages-Schritten (0–30 DPD, 30–60 DPD, 60–90 DPD usw.)

Wir können andere Attribute mit hoher Volatilität wie das Alter nehmen und für sie ebenfalls geschäftsrelevante Zeiträume konstruieren (z. B. 20–30 Jahre alt, 30–40 Jahre alt usw.)

Wenn wir uns die Daten in der Kunden-Mini-Dimension ansehen, hätten wir etwa Folgendes:

Die Attribute sind:

  • id – Ersatz-Primärschlüssel
  • DPD_period – Tage der Überfälligkeit
  • DEM_period – Demografischer Zeitraum

Das einfache Sternschema würde so aussehen:




Beachten Sie, dass wir sie durch die Faktentabelle überbrücken müssten, um Analysen zu Attributen aus beiden Tabellen durchzuführen.

SCD-Typ 5:Erstellen einer Mini-Dimension mit einer wiederbeschreibbaren Erweiterung

Dies ist das erste unserer hybriden Maßtabellenkonstrukte. In einer SCD vom Typ 5 fügen wir die aktuelle Version der minidimensionalen Daten zur Dimensionstabelle hinzu. Wir müssen bedenken, dass wir nur den aktuellen hinzufügen Darstellung der Minidimension zur Hauptdimension.

Wir füllen diese Mini-Dimensionserweiterung bei jeder Ladung nach (das „wiederbeschreibbare“ SCD vom Typ 1).

Obwohl die Historisierung dieser Erweiterung sehr wohl zu Größenproblemen führen könnte, haben wir diese bereits mit der Mini-Maßtabelle gemildert.

Wir verwenden diese Technik, wenn wir Analysen direkt durchführen möchten auf den Maßtabellen.

Beispiel

Erweitern wir das vorherige Beispiel um die aktuelle Mini-Dimension, erhalten wir:




Der dim_mini_customer_current Tabelle enthält die neuesten Attributwerte, die dim_customer Tisch. Jetzt können wir kundenspezifische Analysen durchführen, ohne die Faktentabelle zu überbrücken (was sehr langsam ist).

Die Faktentabelle stellt eine Verbindung zu den historischen Attributen der Dimension her.

Typ 6:Typ 2 (Historische Zeile) Dimension mit einem wiederbeschreibbaren Attribut

Dies ist ein sehr verbreitetes Dimensionskonstrukt. Wir fügen ein Attribut hinzu, das etwas speichert, normalerweise den letzten bekannten Wert, den wir bei jedem Ladevorgang neu schreiben. Dadurch können wir alle Fakten nach ihrem aktuellen Wert gruppieren, während das historische Attribut Daten so anzeigt, wie sie waren, als die Ereignisse eingetreten sind.

Die Faktentabelle verbindet die Dimensionswerte zum Zeitpunkt des Ereignisses mit extra aktuellen Dimensionswerten.

Beispiel

Erweitern wir die vorherige Kundentabelle um einen current_address_residence Spalte.




Jetzt haben wir ein Attribut, das wir mit dem natürlichen Schlüssel (cust_natural_key) auf den aktuellen Wert aktualisieren ).

Typ 7:Typ 2 (Historische Reihe) Bemaßungen mit einem aktuellen Spiegel

Wir können diesen Typ nur verwenden, wenn es einen natürlichen Schlüssel in der Tabellendimension gibt. Der Schlüssel darf sich nicht ändern während der Lebensdauer des Unternehmens.

Die Idee ist einfach:Wir fügen dem Schneeflockenschema eine aktuelle Darstellung der Maßtabelle hinzu. Dann fügen wir den natürlichen Schlüssel der neuen Dimension in die Faktentabelle ein. (Der Ersatzschlüssel der historischen Dimension ist noch vorhanden.)

Die Faktentabelle verbindet sich mit den Dimensionswerten zum Zeitpunkt des Ereignisses und mit den aktuellen Dimensionswerten.

Beispiel

Schauen wir uns unser Sternschema für Kundenkonten an. Wir fügen die neue Dimension dim_current_customer , zur Faktentabelle. Diese Tabelle ist über einen natürlichen Schlüssel, cust_natural_key, mit der Faktentabelle verbunden .




Diese Konstruktion ermöglicht es uns, analytische Abfragen des Sternschemas sowohl mit den aktuellen als auch mit den historischen Werten von Kundenattributen durchzuführen.

Domänenabmessungen

Eine Domänendimension ist eine einfache Form einer Maßtabelle. Es enthält Informationen über die Domäne der zugrunde liegenden Messung eines Dimensionsattributs. Diese Tabellen speichern verschiedene Codes und erklärende Werte.

Beispiel

Ein einfaches Beispiel wäre eine Währungstabelle.




In dieser Tabelle speichern wir beschreibende Informationen zu verschiedenen Geldeinheiten.

Meiner persönlichen Meinung nach ist die beste Verwendung der Domänendimension die Dokumentation der Datenwerte, die wir im DWH-System finden.

Junk-Dimensionen

Transaktionale Quellsysteme generieren viele Indikatoren und Flags. Diese Attribute können als kategoriale Daten betrachtet werden, sie sind jedoch nicht geschäftsrelevant oder selbsterklärend. Wir können all diese Indikatoren und Flags in einer eindimensionalen Tabelle namens Junk-Dimension ablegen . Die Junk-Dimension ist die Alternative zur Verwendung degenerierter Dimensionen. Wenn wir die Faktentabelle nicht mit vielen degenerierten Dimensionen belasten wollen, erstellen wir eine Junk-Dimension.

Wir sollten beachten, dass wir nicht alle möglichen Kombinationen von Indikatoren und Flags füllen. Wir befüllen nur die, die im Quellsystem vorhanden sind.

Beispiel




Dimensionstabellen sind die Skelette der Data-Warehousing-Welt:Alles ist um sie herum aufgebaut. Sie sind nicht so groß wie Faktentabellen, aber ihre Struktur kann komplexer sein.

Sie können viele Arten von Maßtabellen zusammenstellen, sogar über die gerade besprochenen hinaus. Was ist mit Ihrem Unternehmen und Ihrer Branche? Wenn Sie Maßtabellentypen zu etwas Neuem kombiniert haben, erzählen Sie uns davon!