与其他维度一样,让 OLAP 多维数据集的时间维度位于其自己的表中似乎是一种常见的做法。
我的问题是:为什么?
我根本不明白拥有一个 (int, timestamp)
的 time_dimension
表有什么好处,它在某些 上与多维数据集连接time_id
外键,而不是在多维数据集本身中有一个 timestamp
列。
原则上,时间点是不可变的和恒定的,它们是它们自己的值。我发现人们不太可能想要更改给定 time_id
的关联值。
此外,timestamp
列类型的宽度为 4 个字节(在 MySQL 中),int
类型通常是键,因此不能也可以节省空间。
在与我的同事讨论这个问题时,我能够提出的唯一有点合理的论点是与其他维度的一致性。但我觉得这个论点相当站不住脚。
最佳答案
我认为这通常是因为时间维度表包含多个列,例如周/月/年/季度,这样可以更快地查询以获取特定季度的所有 X。
鉴于大多数 OLAP 多维数据集都是为随时间获取查询而编写的,这对我来说很有意义。
关于mysql - MySQL OLAP 多维数据集中的外部化时间维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1839527/