首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据仓库类型2 scd员工维度和HR事实(Kimball's)

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

Stack Overflow用户
提问于 2015-12-18 21:43:18
回答 2查看 3.6K关注 0票数 1

我正在阅读由Kimball编写的"Data Warehouse Toolkit“一书,我对一个employee维度和一个HR快照事实表的示例感到困惑。

以下是书中给出的示例的屏幕截图:

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

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

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-12-18 23:29:48

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

希望这能有所帮助。

致以最好的问候,杰西·戴森

票数 1
EN

Stack Overflow用户

发布于 2015-12-26 12:20:10

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

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

在事实表中,您应该总是期望找到“原样”键。如果您要假设事实表将始终保留“原样”键或最近的键,那么它假定您将返回并更新事实表中的历史记录,仅仅是因为维度的属性发生了更改。这对于started来说是一种资源的浪费,而且实际上是适得其反的,因为SCD的主要好处之一是能够进行" as -was vs as- is“分析,而要做到这一点,您需要保留"as-was”状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34357086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档