数据仓库类型 2 scd 员工维度和 HR Facts (Kimball's)

Posted

技术标签:

【中文标题】数据仓库类型 2 scd 员工维度和 HR Facts (Kimball\'s)【英文标题】:Data warehouse type 2 scd Employee dimension and HR Facts (Kimball's)数据仓库类型 2 scd 员工维度和 HR Facts (Kimball's) 【发布时间】:2015-12-18 13:43:18 【问题描述】:

我正在关注 Kimball 的“数据仓库工具包”一书,但我对员工维度和 HR 快照事实表的示例感到困惑。

这里是书中给出的例子的截图:

我对“员工人数”、“新员工人数”、“调动人数”和“晋升人数”字段感到困惑。如您所见,HR 事实表和 Employee 维度表之间存在关系,但在这些计数值的情况下,将在事实表中分配哪个键?我知道月底可能会有一个“新员工人数”,我们会在事实表中拥有指向该月的月维度 FK,但是员工维度键呢?

我希望我在这里说清楚,如果这是一个愚蠢的问题,我很抱歉。

谢谢。

【问题讨论】:

其实我看不到HR事实表和Employee维度表之间的关系。您指的是员工交易维度和人力资源快照事实表吗? @DanBracuk 是的,抱歉,员工维度是指“员工交易维度”。 【参考方案1】:

污名, 我相信来自Employee Transaction Dimension 的最新行的代理键是事实表中包含的内容。 Employee Transaction Dimension 中的月份可能有多行,但在给定月份的事实表行中只会引用最近的一行。

希望这会有所帮助。

最好的问候, 杰西·戴森

【讨论】:

【参考方案2】:

在 SCD(类型 2 或类型 3)中,您想考虑两种类型的键;自然键和伪键。自然键是“现实世界”可以理解的标识符,在员工维度的示例中,这可能是某种员工 ID。每次向此表添加条目时,都会获得一个新的伪键,我喜欢将其视为“原样”键。它表示添加记录时该维度成员“原样”的状态。

随着时间的推移,在 SCD 中,每个自然键都会有很多很多记录,每个记录都有自己的“原样”键。考虑到最近的条目,它的“as-was”键也是“as-is”键,因为它代表当前状态。

在事实表中,您应该始终期望找到“原样”键。如果您要假设事实表将始终保存“原样”键或最新键,那么它假设您将返回并更新事实表中的历史记录,仅仅是因为属性维度改变了。这是对刚开始的资源的浪费,实际上适得其反,因为 SCD 的主要好处之一是能够进行“原样与原样”分析,而要做到这一点,您需要保留“原样”状态。

【讨论】:

以上是关于数据仓库类型 2 scd 员工维度和 HR Facts (Kimball's)的主要内容,如果未能解决你的问题,请参考以下文章

聊聊数据仓库中的缓慢变化维度(SCD)

如何处理 SCD 类型 2 维度和重复维度记录?

SCD缓慢变化维拉链表

事实表与维度表

如何最好地处理缓慢变化维度 (SCD2) 中的历史数据变化

SQL Server scd2 和 scd1 中的 DWH SCD 类型 2 实现