维度建模创建/修改日期/人

Posted

技术标签:

【中文标题】维度建模创建/修改日期/人【英文标题】:Dimensional Modeling Created/Modified Date/Person 【发布时间】:2016-07-26 19:24:39 【问题描述】:

将 Created By、Created Timestamp、Modified By、Modified Timestamp 包含到维度模型中的最佳做法是什么?

前两个永远不会改变。对于某些数据元素,最后两个将缓慢变化,但对于其他数据元素会迅速变化。不过,我更喜欢一致的方法,以便报告用户熟悉它。

假设我真的只关心最近的值;我不需要历史。

是否最好将它们放入一个维度,知道对于高度修改的数据,该维度会经常变化?或者,将它们放入事实表中是否更好,将不变的 Created 信息视为销售订单号成为退化维度的方式大致相同?

【问题讨论】:

【参考方案1】:

在我的回答中,我假设这些附加列确实定义了维度记录的有效性,并且您正在谈论Slowly Changing Dimension type 1

所以我们实际上在这里谈论的是维度元数据,关于谁/哪个进程创建或修改了维度行。

我总是将这种元数据放在维度中,因为它:

与维度变化有关。这些变化独立于事实表发生 通常,建议将事实表保持尽可能小。如果您的事实表包含 5 个维度,这将导致向事实表添加 5*4=20 额外的列,这将严重影响其性能并影响性能。

【讨论】:

以上是关于维度建模创建/修改日期/人的主要内容,如果未能解决你的问题,请参考以下文章

QuickBI助你成为分析师-数据建模

维度建模中事实表的两个或多个相似计数

如何使用不同谷物的事实表对日期维度进行建模

维度建模几个问题

星型模式 - 贷款逾期日期建模

维度建模(星型雪花星座)