2010-04-18 60 views
0

我只是在开始一个新任务,其中我需要加载混合尺寸表与SCD1和SCD2。这需要作为SSIS包来实现。有人可以指导什么是处理SSIS的最佳方式,我应该使用SCD组件还是有其他方法?这有什么最佳做法。加载具有SCD1和SCD2属性的混合尺寸表+ SSIS

对于SCD2类型,我正在使用Merge语句。

感谢

回答

5

这是蠕虫:)

基本上有四种方法来处理SSIS的SCD一罐: 1.使用内置SCD组件 2.“滚动自己的”使用查找,条件拆分,派生列和各种目的地。 3.使用T-SQL MERGE 4.使用第三方Kimball SCD组件

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

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

2是较大尺寸的较好解决方案。这很好,因为它表现相当好,并且“有据可查”,因为您可以从所使用的组件名称以及它们如何放在一起,确切地看到它在做什么。操纵并改变其运作方式也很容易。缺点是建立和测试需要时间。

3对于巨大的尺寸是一个很好的解决方案。它通常胜过所有其他选择。但是这就是它所做的一切。编码非常复杂,没有多少评论就不可能理解。

4是一个很好的解决方案,几乎可以处理任何尺寸,除了“巨大”的尺寸。使用像SCD组件一样“容易”,性能优于2,并且可配置为2.

More info on 4 here

+0

感谢托德提出宝贵的建议。是否有任何示例可以使用混合Dim Table的方法3(合并语句)查看。 – Sreedhar 2010-04-18 21:06:04

+0

你可以试试这里:http://www.ssisbi.com/facilitating-a-delta-refresh-with-ssis-using-the-t-sql-merge-statement/ 或者这里:http:// www .ralphkimball.com/html/08dt/KU107_UsingSQL_MERGESlowlyChangingDimension.pdf – 2010-04-20 20:24:49

+0

我意识到这是一个古老的线程。刚从Kimball训练中回来。看看这段代码是否有意义... http://fromanoopv.blogspot.com/ – 2013-10-23 16:35:29