具有时间维度的数据建模

问题描述

用 hh:mm:ss 创建一个时间维度会更好还是将它们分成 3 个维度更好,因为它们分别占用更少的空间?

你会推荐什么?为什么?

解决方法

为什么不是日期维度? 日期维度是数据仓库中的一个关键维度,因为它允许分析日期不同方面的数据。除了年、季、月、日、小时、分钟...等标准日期属性外,日期维度还可以扩展到更丰富的分析

使用星型架构模型是最佳实践。日期维度称为 a conformed dimension

在 3 个维度上拆分 = 更多连接 = 复杂查询。

,

为什么不在维度表上创建一个包含以下(或许更多)列的时间维度?

  • 哈哈
  • MM
  • SS
  • AM PM 指示器
  • 时:分:秒
  • 昵称(例如“中午”)
  • 时段(例如“早上”)
  • HH Military(在这里你可以把 14 放在下午 2 点)

这里的关键可能很有趣。也许它是一个序列,但也可以使用 HHMMSS 作为键(带前导零)。我认为性能不会有显着差异。

,

我最终做的只是创建了一个单独的时间维度,其中为小时、分钟和秒的每种可能组合创建了一行。

我这样做与分别为小时、分钟和秒创建 3 个单独的表,以减少联接的数量,并且不会使数据库与表过于聚集。

我将它与我的日期表分开,以减少行数并降低性能。

似乎工作得很好,感谢大家的反馈。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...