我正在开始一项新的任务,其中我需要使用SCD1和SCD2加载混合维度表。这需要作为SSIS包来实现。有人能指导我在SSIS中处理这个问题的最好方法是什么吗?我应该使用SCD组件还是有其他方法?这方面的最佳实践是什么?
对于SCD2类型,我使用Merge语句。
谢谢
发布于 2010-04-19 01:52:16
这是一个蠕虫罐头:)
在SSIS中处理SCD基本上有四种方法: 1.使用内置的SCD组件2.使用查找、条件拆分、派生列和各种目标来“滚动自己的”。3.使用T-SQL MERGE 4.使用第三方Kimball SCD组件
我会提醒你我对#4的偏见--我写的。但这是我对这一群人的分析。
对于“小”和“易”维度,1是一个很好的解决方案。为什么它是好的?它是可以理解的,可以处理SCD 1和SCD 2,并且易于设置。但是为什么只有“小”和“容易”维度呢?因为它使用了无法改进的内部未缓存查找(RBAR)。因为如果您更改了其中的任何内容(重新运行向导),它将销毁您对数据流所做的任何更改。因为它不会处理大小写不重要的行,或者尾随空格不重要的行。
对于更大的维度,2是一个很好的解决方案。它很好,因为它的性能相当好,而且“有很好的文档”,因为你可以从你使用的组件的名称和它们是如何组合在一起的,确切地看到它在做什么。它也很容易操作和改变它的操作方式。缺点是设置和测试需要时间。
对于巨大的维度,3是一个很好的解决方案。它的性能通常优于所有其他替代方案。但这就是它所能做的一切。它的代码非常复杂,如果没有大量的注释,就不太容易理解。
对于任何尺寸来说,4都是一个很好的解决方案,也许除了“巨大”维度。它像普通的SCD组件一样“容易”使用,性能与2一样好或更好,并且可配置为2。
More info on 4 here。
https://stackoverflow.com/questions/2661574
复制相似问题