use*_*708 8 postgresql data-warehouse dimension time
你会使用哪个,为什么?单独的时间维度还是在事实表中放置时间戳?或者两者兼而有之?
我正在构建一个数据仓库,需要表示事件发生的时间,精确到一秒。我想汇总数据;例如,绘制一天中每小时的事件数量图。
Kimball 的“The Data Warehouse Toolkit”,有一个时间维度的设计。最近的一篇博文建议不要这样做,而是在事实表中使用时间戳:
http://www.kimballgroup.com/2004/02/design-tip-51-latest-thinking-on-time-dimension-tables/
如果我在事实表中使用时间戳,按小时汇总是否仍然容易/快速?
做出此选择时还需要考虑其他任何权衡吗?
小智 5
我建议将两者都包括在事实表中。维度应该用于过滤和分组,而时间戳值可以用于详细报告/查询。
除非您关心事件是在 8 秒还是 42 秒后发生,否则请以 1 分钟为单位创建时间维度。
由于您没有标记您的 RDBMS,我认为谨慎地提及 SQL Server 的更高版本不允许date + time
数据类型操作;即从日期和时间维度业务键重新创建时间戳。解决方法是convert(datetime, [date column]) + convert(datetime, [time column])
,或类似的。