搜索关键字有点棘手,所以如果存在这个问题我会道歉。
假设我有一个标准类型2缓慢变化的维度,使用Startdate和Enddate列建模。 NULL Enddate的记录是维度记录的当前版本。
我理解当我从源数据中检测到什么是事实表插入时,它非常简单。基于匹配业务键和Enddate = NULL的维度记录,简单地将新事实表记录插入映射到最新维度记录。
当我在源系统中对某个度量进行更新时,我在确定要做什么时遇到了一些麻烦,在我的事实表中,这将更新为什么,而不是插入。我似乎只有加入的业务键,事实表中的现有记录可能指向维度记录的先前版本。我不确定如何从维度中获取正确的代理键并执行事实表更新。
如果需要,我可以提供更多细节。
提前致谢。
答案 0 :(得分:4)
源表上是否有insert
或create
日期?你可以用它来做
select * from dim where src_dt
between dim.startdate and dim.enddate and keys = src.keys
并返回正确的尺寸行。如果你使用SCD。
进行查找时,您应该使用日期和自然键来获取正确的维度行,而不是为插入和更新选择最新的当前昏暗行。