最近,我遇到了Rapidly Changing Dimensions
(迷你维度)的概念。
我理解快速变化的属性从主维度表中移除并放入一个junk dimension
(这些属性中所有可能的值组合)的部分。这个垃圾维度将通过中间的"bridge-table
“(迷你维度)连接到父维度表,其中将包含父维度键和垃圾维度surrogate key
(以及开始日期和结束日期)。
然而,我无法理解它是如何在现实生活中实现的。
那么,如果RCD属性更改了,那么是否用新SK更新了迷你维度(或父维度)中的记录?如果是,那么我们如何在这样的场景中跟踪历史,因为我们正在破坏性地更新迷你维度值中存在的相同记录?
或者,如果在包含新垃圾dim记录sk的mini维度(如SCD-2)中创建了“新”记录,那么我们再次遇到的问题是,随着时间的推移,迷你维度的大小也会增加。另外,这一事实是否只包含父dim的ik,还是包含父dim和垃圾点心sks的ik?
谁能用一个例子来说明一下吗?
假设DW模型中有4个表:
PAT_DIM:
--------
pat_dim_sk,
pat_id,
pat_dob,
blood_type
PAT_MINI_DIM:
------------
pat_id,
pat_rcd_sk,
start_date,
end_date
PAT_JNK_DIM:
----------
pat_rcd_sk,
pat_weight,
pat_bmi
有了上面的例子,任何人都可以帮助我理解快速变化的维度(RCD)是如何在现实世界场景中建模的。数据仓库中的RCD表是如何相互连接的。
发布于 2019-08-26 22:11:00
一般来说,垃圾维度是由维度模型中的低基数标志和指标组成的。
在你的情况下,你不需要一个桥牌桌。迷你维度应包含刚果民盟,并应直接加入事实表。
发布于 2019-09-07 12:55:47
根据需求,SCD类型1或类型4可能最适合RCDs。
但是,如果您需要将它实现为SCD类型2-那么有两种加入事实和这个RCD的选择,并且它也依赖于数据模型设计。
选项1:如果在设计中您有DIM SK中的事实表,那么您需要自己连接DIM to表,以便根据DIM行的自然键获得最新的RCD,其中当前国旗是真的。(注意,在更改RCD时,不更新事实表)。
选项2:在您的设计中,您可以为DIM创建一个新的密钥(持久的超自然密钥/stable键),并且这个键被携带到dim行的所有未来版本。在事实表中,你既保留了昏暗的SK键,又保留了昏暗的持久键。因此,当您加入可以避免自连接的Dim使用持久的键和当前的旗帜是真实的,以获得最新的昏暗行。如果你需要以前版本的昏暗行,你可以加入直接由昏暗SK。
https://stackoverflow.com/questions/57631621
复制相似问题