1

他のディメンションと同様に、OLAPキューブの時間ディメンションを独自のテーブルに含めるのが一般的な方法のようです。

私の質問は:なぜですか?

キューブ自体に列を設定する代わりに、外部キーでキューブと結合されたtime_dimensionテーブルを作成することの利点がわかりません。(int, timestamp)time_idtimestamp

主に、時点は不変で一定であり、それらは独自の値です。特定のに関連付けられた値を変更する可能性はほとんどありませんtime_id

さらに、timestamp列の型は4バイト幅(MySQLの場合)であり、intそうでない場合は通常キーとなる型であるため、スペースを節約することもできません。

私の同僚とこれについて話し合う際に、私が思いついた唯一のいくぶん賢明な議論は、他の次元との適合性です。しかし、私はこの議論がかなり弱いと思います。

4

2 に答える 2

3

多くの場合、時間ディメンション テーブルには週/月/年/四半期などの多数の列が含まれているため、特定の四半期のすべての X を取得するためのクエリを高速化できるためだと思います。

OLAP キューブの大部分が時間の経過とともにクエリを取得するように作成されていることを考えると、これは理にかなっています。

于 2009-12-03T12:28:14.413 に答える
1

水田は正しいです。時間ディメンションには、時間プリミティブの便利な「エイリアス」が含まれています。四半期、国民の休日など、日付自体に関する有用な情報を取得できます。クエリですべての休日をコーディングする必要がないため、この方法でより迅速にクエリを作成できます。

于 2010-01-05T14:43:39.880 に答える