質問

ファクトテーブルとディムテーブルを設定し、時間値を設定する最適な方法を見つけようとしています。 AdventureworksDWは、DimTimeテーブルの各タイムエントリにタイムキー(UID)を使用します。私は代わりに時間値を使用するべきではない理由がありますか?

役に立ちましたか?

解決

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

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

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

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

時間にはたまたま数値マッピングがありますが、これは奇妙な偶然であり、良いデザインの基礎ではないことを確認するのに役立ちます。

他のヒント

Ralph Kimballの最新は時間ディメンションです。 2004年の日付ですが、それでも良いです。

このも役立ちます。

主キーは代理である必要がありますが、日付ディメンションキーにYYYYMMDDを使用することは困難であり、テーブルのパーティション分割も簡単です。秘Theは、それがまだ無意味であると見なされるべきであるということです。日付のように見えるという事実は、純粋に偶然と見なされるべきです。このキーは、ビジネスユーザーには決して公開しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top