MySQL OLAP多维数据集中的外化时间维度?

时间:2009-12-03 12:08:32

标签: mysql olap

似乎通常的做法是让OLAP多维数据集的时间维度与其他维度一样位于自己的表中。

我的问题是:为什么?

我根本看不出有一个time_dimension (int, timestamp)表与一些time_id外键上的多维数据集连接,而不是{多维数据集本身的{1}}列。

主要是,时间点是不可变的和不变的,它们是它们自己的价值。我发现很可能不想更改给定timestamp的相关值。

此外,time_id列类型为4字节宽(在MySQL中),timestamp类型通常也是键,因此也不能节省空间。

在与同事讨论这个问题时,我能够提出的唯一合情合理的论点是与其他方面的一致性。但我发现这个论点相当薄弱。

2 个答案:

答案 0 :(得分:3)

我认为通常是因为时间维度表包含许多列,例如周/月/年/季度,这样可以更快地查询特定季度的所有X.

鉴于大多数OLAP多维数据集都是为了获取查询而编写的,这对我来说很有意义。

答案 1 :(得分:1)

Paddy是正确的,时间维度包含时间原语的有用“别名”。您可以捕获有关日期本身的有用信息,例如季度,国定假日等。您可以通过这种方式编写更快的查询,因为您无需在查询中对每个假日进行编码。