Frage

In meinem neuen Data-Warehouse, das (natürlich) aus der OLTP-Datenbank aufgebaut wird, ich habe alle Identity-Spalten gelöscht und verändert sie Spalten INT.

Was sind die besten Praktiken in Bezug auf die folgenden zumal das Lager ist denormalized:

  1. Primary Key
    -> kann dies nun ein zusammengesetzter Schlüssel sein, weil mehrere Tabellen zusammen gekommen sind
    -> muss ich die Schlüsselstruktur aus OLTP folgen
    ?
  2. Constraints
    -> gibt es einige Einschränkungen (NOT NULL) mit Standardwerten (0) Bit Spalten
War es hilfreich?

Lösung

Für Ihre Primärschlüssel, sollten Sie eine Leihmutter oder alternativen Schlüssel; Sie werden für langsam veränderliche Dimensionen gerecht zu werden müssen, zum Beispiel wenn Sie einen Bericht über die letzten 5 Jahre im Durchschnitt Umsatz pro verheiratet / ledig Verkäufer tun, sollten Sie die Tatsache registrieren, dass jemand für 2 Jahre ledig war, dann verheiratet letzten 3. Dieser Data Warehouse bedeuten, dass haben zwei dimensionsTabellenZeilen für die gleiche Person. Im Anschluss an die OLTP-Struktur für das wird hart:)

Constraints sind weniger ein Problem; DW sind für liest massiv optimiert (vorausgesetzt, Sie als Batch sind bevöl) und Zwänge nicht wirklich Faktor in Leseoperationen. Sie können umgehen normalerweise keine Einschränkung Probleme mit dem DW Bestücken Job, und befassen sich mit NULL-Werten usw. im Reporting-Tool, wenn nötig. Es ist viel wichtiger, dass die Standardwerte mit konzeptionellem Datenmodell passen zu machen, und nicht einführen Fragen an den DW-Client-Tool.

Andere Tipps

Dimension Tabellen:

  • Halten Sie das Surrogat Autoinkrement (Identität) PK, mit Ausnahme der Datumsdimension (siehe unten).
  • Stellt sicher, dass Sie eine alternative „natürliche Schlüssel“ langsam zu ermöglichen, haben zum Ändern Dimensionen (Typ 2).
  • Keine in Maßtabellen erlaubt nulls, ersetzen Sie sie durch die ausführliche "n / a, nicht eintrat, unbekannt .."
  • Wenn möglich, Boolesche Flags ändern (1/0) auf Ausführlich "Ja, Nein", um es Unternehmen zu machen berichten / benutzerfreundlich.
  • Werden Sie berechnete Felder loswerden und ersetzen sie durch Werte oder zumindest das berechnete Feld bestehen -. Hängt von db
  • Implementieren Sie das Star-Schema, wenn Sie können, Handelsraum für die Geschwindigkeit. Snowflake nur, wenn Sie müssen.
  • Ihre Fragen prüfen, ob es eine Funktion in der WHERE Klausel ist, fügen Sie eine Spalte in der Dimensionstabelle und vorge berechnen Werte.
  • Es ist zu Partition Datum Dimension einfach, wenn die PK wie 20090619 aussehen.
  • Sie sich von CHECK-Einschränkungen und Vorgaben befreien, bewegen, dass in den entspricht Phase des ETL-Prozesses. Checks und Standardwerte verlangsamen Laden, und wenn Sie Laden beenden sie spielen keine Rolle.

Tatsache Tabellen:

  • Betrachten wir ein Surrogat Autoinkrement mit (Identität) PK für die einfache Partitionierung zu ermöglichen, wenn Verbund PK verwenden, können Sie eine zusammengesetzte einmalige nicht gruppierten stattdessen machen.

  • Haben Sie Skripte für Ihre Fremdschlüssel an einem sicheren Ort, es ist eine gängige Praxis Schlüssel vor dem Laden Faktentabellen, um fallen Läden zu beschleunigen. Manche Menschen laufen DW mit Fremdschlüssel ist „logisch nur“, sie verwenden „Look-for-Waisen“ Abfragen nach dem Laden.

ETL

  • Gestalten Sie Ihre ECCD (ETL) Prozess durch alle Phasen. Extrakt, sauber, entsprechen, liefern
  • Wenn möglich, Zwischenergebnisse (Dateien) nach jeder Stufe für Prüfung und Debug-Zwecke.
  • Dokument der ETL, und bei Verwendung von Skripten verwenden, um eine Versionskontrolle, so dass Sie Skriptversionen mit archivierten (Zwischen-) Dateien bieten können.
  • Haben Sie eine Data-Lineage-Chart, ist Excel besser als nichts. Halten Versionen auch.

Ich würde sagen, etwa 2 .: Bit Spalten -> Arbeit als Bool cols -> nur 1/0 (true / false) erlaubt -> Constraint ok

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top