3

搜索关键字有点棘手,因此如果存在此问题,我深表歉意。

假设我有一个标准类型 2 缓慢变化的维度,使用 Startdate 和 Enddate 列建模。Enddate 为 NULL 的记录是维度记录的当前版本。

我知道当我检测到从源数据中插入的事实表时,这非常简单。基于匹配业务键和 Enddate = NULL 的维度记录,新的事实表记录被简单地插入映射到最新的维度记录。

当源系统中的度量值有更新时,我很难弄清楚我的事实表中的更新,而不是插入。看来我只有要加入的业务密钥,事实表中的现有记录可能指向以前版本的维度记录。我不确定如何从维度中获取正确的代理键并执行事实表更新。

如果需要,我可以提供更多细节。

提前致谢。

4

1 回答 1

4

您在源表上有任何日期insert或日期吗?create你可以用它来做

select * from dim where src_dt 
between dim.startdate and dim.enddate and keys = src.keys 

并返回正确的维度行。如果您使用的是 SCD。

当您进行查找时,您应该使用日期和自然键来获取正确的维度行,而不是为插入和更新选择最新的暗淡行。

于 2013-02-05T02:19:39.217 回答