我正处于开始新任务的过程中,其中我需要加载带有SCD1和SCD2的混合维度表.这需要作为SSIS包实现.如果我使用SCD组件或有其他方法,有人可以指导在SSIS中处理此问题的最佳方法吗?有什么最好的做法.
对于SCD2类型,我使用Merge语句.
谢谢
那是一堆蠕虫:)
在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,并且可配置为2.
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |