Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 事实数据表随着维度的缓慢变化而更新_Ssis_Ssas_Data Warehouse_Etl - Fatal编程技术网

Ssis 事实数据表随着维度的缓慢变化而更新

Ssis 事实数据表随着维度的缓慢变化而更新,ssis,ssas,data-warehouse,etl,Ssis,Ssas,Data Warehouse,Etl,这是一个有点棘手的关键字搜索,所以我道歉,如果这个问题存在 假设我有一个标准的Type2缓慢变化的维度,用Startdate和Enddate列建模。Enddate为空的记录是维度记录的当前版本 我知道,当我从源数据中检测到将要插入的事实表时,这是非常简单的。新的事实表记录只需插入并映射到最新的维度记录,该维度记录基于匹配业务键和Enddate=NULL的维度记录 当源系统中有一个度量值的更新时,我很难弄清楚该怎么做,在我的事实表中什么是更新,而不是插入。似乎我只有业务键可以连接,事实表中的现有记

这是一个有点棘手的关键字搜索,所以我道歉,如果这个问题存在

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

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

当源系统中有一个度量值的更新时,我很难弄清楚该怎么做,在我的事实表中什么是更新,而不是插入。似乎我只有业务键可以连接,事实表中的现有记录可能指向维度记录的早期版本。我不确定如何从维度获取正确的代理键并执行事实表更新

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


提前谢谢

源表上是否有
插入
创建
日期?你可以用它来做

select * from dim where src_dt 
between dim.startdate and dim.enddate and keys = src.keys 
并返回正确的维度行。如果您使用的是SCD


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

在源表上是否有
insert
create
日期?您可以使用它从dim执行
选择*,其中src_dt介于dim.startdate和dim.enddate之间,keys=src.keys
并返回正确的维度行。如果您使用的是SCD,那么在进行查找时,您应该使用日期和自然键来获得正确的维度行,而不是为插入和更新选择最新的dim行。很好,我真的不需要以任何不同的方式对待插入和更新,只需在维度中的startdate和enddate之间连接业务键和事实日期(理解空的enddate在将来)。回答得很好。我喜欢stackexchange,你几分钟就能得到一个聪明的答案。谢谢我不知道如何将你的评论标记为答案。我将我的评论作为答案发布在下面,你可以将其标记为答案。