MySQL OLAP 多维数据集中的外部化时间维度?
Posted
技术标签:
【中文标题】MySQL OLAP 多维数据集中的外部化时间维度?【英文标题】:Externalized time dimension in MySQL OLAP cubes? 【发布时间】:2009-12-03 12:08:32 【问题描述】:将 OLAP 多维数据集的时间维度放在自己的表中似乎是一种常见的做法,就像其他维度一样。
我的问题是:为什么?
我根本看不出拥有(int, timestamp)
的time_dimension
表在某些time_id
外键上与多维数据集连接有什么好处,而不是在多维数据集中拥有timestamp
列自己。
原则上,时间点是不可变的和恒定的,它们是它们自己的价值。我发现人们不太可能想要更改给定 time_id
的关联值。
此外,timestamp
列类型是 4 字节宽(在 mysql 中),int
类型也是如此,否则通常是键,因此也不能节省空间。
在与我的同事讨论这个问题时,我能够提出的唯一合理的论点是与其他维度的一致性。但我觉得这个论点相当薄弱。
【问题讨论】:
【参考方案1】:我认为这通常是因为时间维度表包含许多列,例如周/月/年/季度,这允许更快地查询以获取特定季度的所有 X。
鉴于大多数 OLAP 多维数据集都是为了随着时间的推移而获取查询,这对我来说很有意义。
【讨论】:
【参考方案2】:Paddy 是正确的,时间维度包含时间原语的有用“别名”。您可以捕获有关日期本身的有用信息,例如季度、国定假日等。您可以通过这种方式编写更快的查询,因为无需在查询中对每个假日进行编码。
【讨论】:
以上是关于MySQL OLAP 多维数据集中的外部化时间维度?的主要内容,如果未能解决你的问题,请参考以下文章