我只是在开始一项新任务的过程中,其中我需要加载带有 SCD1 和 SCD2 的混合维度表。这需要作为 SSIS 包来实现。有人可以指导在 SSIS 中处理这个问题的最佳方法是什么,我应该使用 SCD 组件还是有其他方法?这方面的最佳做法是什么。
对于 SCD2 类型,我正在使用 Merge 语句。
谢谢
那是一罐蠕虫:)
在 SSIS 中处理 SCD 基本上有四种方法: 1. 使用内置的 SCD 组件 2. 使用查找、条件拆分、派生列和各种目标“滚动您自己的”。3.使用T-SQL MERGE 4.使用第三方Kimball SCD组件
我会提醒你我对 #4 的偏见——我写的。但这是我对这群人的分析。
1 是“小”和“简单”尺寸的一个很好的解决方案。为什么好?它易于理解,可处理 SCD 1 和 2,并且易于设置。但为什么只有“小”和“简单”的尺寸?因为它使用无法改进的内部未缓存查找 (RBAR)。因为如果您更改其中的任何内容(重新运行向导),它会破坏您对数据流所做的任何更改。并且因为它不会处理区分大小写不重要或尾随空格不重要的行。
2 对于较大的尺寸是一个很好的解决方案。这很好,因为它性能很好,并且“有据可查”,因为您可以从您使用的组件的名称以及它们如何组合在一起确切地看到它在做什么。它也很容易操纵和改变它的运作方式。缺点是设置和测试需要时间。
3 对于大尺寸来说是一个很好的解决方案。它通常优于所有其他替代品。但这就是它所要做的一切。编码非常复杂,如果没有大量注释,就很难理解。
4 是一个很好的解决方案,几乎适用于任何尺寸,除了“巨大”的尺寸。它像股票 SCD 组件一样“易于”使用,性能与 2 一样好或更好,并且可配置为 2。