Frage

Ich bin Einrichtung Fact und Dim Tabellen und versuche, den besten Weg, um Setup-Wert meiner Zeit, um herauszufinden. AdventureworksDW verwendet einen TimeKey (UID) für jeden Zeiteintrag in der Tabelle DimTime. Ich frage mich, es irgendeinen Grund, warum ich sollte nicht nur einen Zeitwert verwenden, anstatt das heißt 0106090800 (My Granularität ist stündlich)?

War es hilfreich?

Lösung

„Intelligente Schlüssel“ (in diesem Fall ein kodiertes Datum und Stunde Nummer) können zu Problemen führen, wenn Sie in Ihrer Dimension Definitionen ändern mögen. Zum Beispiel der Benutzer könnten auf einer Änderung bestehen aus Ortszeit zu UTC. Jetzt ist Ihr Schlüssel nicht mehr wirklich eine nützliche Zahl, es ist der alte Wert in der Dimension.

Ferner kann mit einem Mitternachtsüberroll Problem könnte das Datum Teil Ihres intelligenten Schlüssels nicht das tatsächliche Datum der Ortszeit ändern UTC vs. entsprechen.

Um den Schlüssel zu verhindern, dass ein Problem werden, können Sie es nicht für jede Berechnung jeglicher Art verwenden. In diesem Fall ist es nicht viel besser als ein einfaches GUID oder Autoinkrement-Nummer.

Auto-Inkrement-Tasten (oder GUIDS) sind schnell und einfach. Am wichtigsten ist, sind sie in allen Dimensionen trivialer konsistent.

Zeit geschieht eine numerische Zuordnung haben, aber es hilft, betrachten dies ein seltsamer Zufall, keine Grundlage für ein gutes Design.

Andere Tipps

Hier ist Ralph Kimball neuesten auf Zeitdimension. Es ist datiert 2004, aber es ist immer noch gut.

Dieser eine auch helfen.

Der Primärschlüssel sollte Surrogat, bedeutungslos sein - ist aber mit YYYYMMDD für Datum Dimensionsschlüssel schwer zu widerstehen, und ermöglicht auch eine einfache Tabellenpartitionierung. Der Trick ist, dass es sollte immer noch als bedeutungslos angesehen werden - die Tatsache, dass es wie ein Datum aussieht sollte als rein zufällig angesehen werden. Dieser Schlüssel sollte nie für Business-Anwender ausgesetzt werden.

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