使用SCD1和SCD2属性+ SSIS加载混合维度表

时间:2010-04-18 08:15:20

标签: ssis scd2

我正处于开始新任务的过程中,其中我需要加载带有SCD1和SCD2的混合维度表。这需要作为SSIS包实现。如果我使用SCD组件或有其他方法,有人可以指导在SSIS中处理此问题的最佳方法吗?有什么最好的做法。

对于SCD2类型,我使用的是Merge语句。

由于

1 个答案:

答案 0 :(得分:5)

这是一堆蠕虫:)

在SSIS中基本上有四种处理SCD的方法: 1.使用内置SCD组件 2.使用Lookups,Conditional Splits,Derived Columns和各种目的地“滚动自己”。 3.使用T-SQL MERGE 4.使用第三方Kimball SCD组件

我会提醒你我对#4的偏见 - 我写了它。但这是我对这一堆的分析。

1是“小”和“简单”尺寸的良好解决方案。它为什么好?这是可以理解的,处理SCD 1和2,并且易于设置。但为什么只有“小”和“简单”的尺寸?因为它使用无法改进的内部未缓存查找(RBAR)。因为如果您更改其中的任何内容(重新运行向导),它会破坏您对数据流所做的任何更改。并且因为它不会处理区分大小写不重要的行,或者尾随空格不重要。

对于更大尺寸,

2是一个很好的解决方案。这很好,因为它表现得非常好,而且“记录良好”,你可以从你使用的组件的名称以及它们如何组合在一起,准确地看到它在做什么。它也很容易操纵和改变它的运作方式。缺点是设置和测试需要时间。

对于巨大的尺寸,

3是一个很好的解决方案。它通常优于所有其他替代品。但这就是它的全部内容。代码非常复杂,没有大量的评论也不是很容易理解。

4对于几乎任何尺寸都是一个很好的解决方案,除了“巨大”尺寸。像股票SCD组件一样“容易”使用,表现好于或优于2,并且可配置为2。

More info on 4 here