具有时间维度的数据建模
Data Modeling with a Time Dimension
将 hh:mm:ss 一起创建一个时间维度会更好,还是将它们分成 3 个维度会更好,因为它们分开占用的空间会更少 space?
你会推荐什么,为什么?
为什么不是日期维度?
日期维度是数据仓库中的一个关键维度,因为它允许从日期的不同方面分析数据。除了年、季、月、日、小时、分钟...等标准日期属性外,日期维度还可以扩展到更丰富的分析
使用星型模式模型是最佳做法。日期维度称为 a conformed dimension.
在 3 维中拆分 = 更多联接 = 复杂查询。
为什么不在维度 table 上创建一个包含以下(也许更多)列的时间维度?
- HH
- MM
- SS
- AM PM 指标
- HH:MM:SS
- 昵称(例如 'noon')
- 时段(例如 'morning')
- HH Military(下午 2 点可以放 14)
这里的关键可能很有趣。也许它是一个序列,但您也可以使用 HHMMSS 作为键(带前导零)。我认为性能不会有显着差异。
我最后所做的只是创建一个单独的时间维度,其中为小时、分钟和秒的每种可能组合创建一行。
我这样做与创建 3 个单独的 tables 分别代表小时、分钟和秒,以减少连接数量,而不是使数据库与 tables 过于聚集。
我将它与我的日期分开 table 以减少行数并降低性能。
感觉效果不错,感谢大家的反馈。
将 hh:mm:ss 一起创建一个时间维度会更好,还是将它们分成 3 个维度会更好,因为它们分开占用的空间会更少 space?
你会推荐什么,为什么?
为什么不是日期维度? 日期维度是数据仓库中的一个关键维度,因为它允许从日期的不同方面分析数据。除了年、季、月、日、小时、分钟...等标准日期属性外,日期维度还可以扩展到更丰富的分析
使用星型模式模型是最佳做法。日期维度称为 a conformed dimension.
在 3 维中拆分 = 更多联接 = 复杂查询。
为什么不在维度 table 上创建一个包含以下(也许更多)列的时间维度?
- HH
- MM
- SS
- AM PM 指标
- HH:MM:SS
- 昵称(例如 'noon')
- 时段(例如 'morning')
- HH Military(下午 2 点可以放 14)
这里的关键可能很有趣。也许它是一个序列,但您也可以使用 HHMMSS 作为键(带前导零)。我认为性能不会有显着差异。
我最后所做的只是创建一个单独的时间维度,其中为小时、分钟和秒的每种可能组合创建一行。
我这样做与创建 3 个单独的 tables 分别代表小时、分钟和秒,以减少连接数量,而不是使数据库与 tables 过于聚集。
我将它与我的日期分开 table 以减少行数并降低性能。
感觉效果不错,感谢大家的反馈。