首先,让我说,我知道,在金球的定义中有SCD0这样的东西.然而,SSIS向导为“固定属性”提供了一个条款,我有一个设计案例,其中我合理地需要被非正式地称为SCD0的东西。
如果将“固定属性”列定义为SCD2,然后由于缺乏SCD0功能而不将SCD2输出连接起来作为解决办法,会有什么负面影响吗?
此问题专门涉及SSIS维度合并SCD组件。
发布于 2012-01-06 14:48:25
是的,有负面影响。SCD2是一个由两个部分组成的进程,首先插入新行,第二部分终止旧行。SCD1更新是在SCD2行到期时处理的。因此,如果SCD0列更改(并定义为SCD2 ),同时SCD1列更改,则SCD1更新输出将不会接收到该行,因为它将转到SCD2过期输出。连接两个输出以执行SCD1更新将导致在SCD0列更改时执行许多不必要的更新,但SCD1列没有。因此,这不是一个有效的解决方法,因为DMSCD组件中缺乏SCD0支持。
发布于 2012-01-04 20:21:11
您的帖子声明您需要一个缓慢更改的维度类型0。我的理解是,SCD0仅仅意味着保留行的原始定义,而不对其进行更新或设置结束日期。如果是这样的话,那么为什么要使用缓慢变化的维度向导呢?你不会只是把你的ETL插入到不存在的地方吗?或者您是否意味着某些列将保留为原始值,并将对其他列使用更高的顺序类型?
例如,您可能有一个具有ProductId、ProductName和ProductDescription的源表。也许您希望保留ProductId,因为它是您的键和原始ProductName,但是您希望显示较新的ProductDescription值。如果是这样的话,您可以用新值覆盖ProductDescription并保留其他列(类型1),也可以为当前行设置结束日期并创建新行,但插入原始的ProductId和ProductName (类型2),或者在保留原始ProductName (类型3)的同时,在新行中包含一个PreviousProductDescription。
https://stackoverflow.com/questions/8732529
复制相似问题