代码之家  ›  专栏  ›  技术社区  ›  Chris Vest

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

  •  1
  • Chris Vest  · 技术社区  · 15 年前

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

    我的问题是:为什么?

    我只是不知道拥有一个 time_dimension (int, timestamp) 与立方体相连的 time_id 外键,而不是 timestamp 多维数据集中的列本身。

    主要地,时间点是不变的和不变的,它们是它们自己的价值。我不认为有人会想改变给定值的关联值 时间标识 .

    此外, 时间戳 列类型是4字节宽(在MySQL中),就像 int 否则,类型通常是键,因此也不能节省空间。

    在和我的同事讨论这个问题时,我唯一能提出的稍微合理的论点是与其他维度的一致性。但我觉得这个论点相当薄弱。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Paddy    15 年前

    我认为这通常是因为Time维度表包含许多列,例如Week/Month/Year/Quarter,它允许更快的查询获得特定季度的所有x。

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

        2
  •  1
  •   dvincelli    15 年前

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