1

FactテーブルとDimテーブルを設定し、時間値を設定するための最良の方法を見つけようとしています。AdventureworksDWは、DimTimeテーブルの各時間エントリにタイムキー(UID)を使用します。代わりに時間値、つまり0106090800(私の粒度は1時間ごと)を使用するべきではない理由があるのだろうか?

4

3 に答える 3

3

「インテリジェント キー」(この場合は、コード化された日付と時間の数字) は、ディメンションの定義を変更するときに問題を引き起こす可能性があります。たとえば、ユーザーが現地時間から UTC への変更を要求する場合があります。これで、キーは実際には有用な数値ではなくなり、ディメンション内の古い値になります。

さらに、真夜中のロールオーバーの問題により、インテリジェント キーの日付部分が、UTC と現地時間の変更の実際の日付と一致しない場合があります。

キーが問題になるのを防ぐために、どのような種類の計算にもキーを使用できません。その場合、単純な GUID または自動インクリメント番号よりも少し優れています。

自動インクリメント キー (または GUIDS) は高速でシンプルです。最も重要なことは、それらがすべての次元にわたって自明に一貫していることです。

時間にはたまたま数値マッピングがありますが、これは奇妙な偶然であり、優れた設計の根拠ではないことに注意してください。

于 2009-01-06T22:28:25.460 に答える
1

ラルフ・キンボールの最新のオンタイム ディメンションは次のとおりです。2004年製ですがまだまだ綺麗です。

こっちも助かります。

于 2009-01-07T00:54:45.367 に答える
0

主キーはサロゲートである必要がありますが、意味がありません。ただし、日付ディメンションキーにYYYYMMDDを使用することは抵抗が難しく、テーブルのパーティション分割も容易になります。秘訣は、それがまだ無意味であると見なされるべきであるということです-それが日付のように見えるという事実は、純粋に偶然であると見なされるべきです。このキーは、ビジネスユーザーに公開しないでください。

于 2009-11-29T05:13:52.097 に答える