Transformation组件连接到上面的数据源组件。双击SlowlyChanging Dimension Transformation进行修改,向导界面如下:

Slowly Changing Dimension Wizard
单击下一步按钮进入到下一个界面,在新的界面首先要选择目标维度表和字段映射。紧接着你需要从源表中指定例作为业务键。在我的例子中SupplierCode是源表的主键因此我把它作为业务键,如下:

Business key
点击Next按钮进入到向导的下一界面,在这个界面中你需要指定维度表中的字段是否被当作SCDType 0, Type 1 or Type 2处理。

Specify each column of the dimension
在我的例子中我选择地址列作为SCD Type 1处理,名字作为SCD Type 2处理,如下:

SCD Type 1 and SCD Type 2
点击Next进入向导的下个界面,在这个界面需要指定(因为我们一个列作为SCD Type 2处理)开始日期(生效日期)结束日期列(有效期),和设置产生日期的变量,如图:

Start and End Dates
点击Next进入向导的下个界面,在这个界面指定推断维度成员设定如图:

Inferred Dimension Members
点击Next进入向导的下个界面,点击完成按钮完成配置。下面就是在数据流任务中看到的:

Complete the Wizard
缓慢变化维度向导会根据你的选择和配置添加几个任务管理缓慢变化维。在上面屏幕中“Changing Attribute Updates Output”路径将为SCDType 1(基本覆盖)更新记录。“New Output”路径将增加新条目到唯独表,为了维护历史记录。“Historical Attribute Inserts Output”路径会更新之前过期日期列的记录。
当你第一次执行包你会注意到源表中的两条记录被加载到维度表,如图:

The Dimension Table
现在执行下面的语句验证Supplier维度表的数据:
| USE [AdventureWorks2012] GO SELECT *FROM [dbo].[DimSupplier] GO |
这是你在执行上面的脚本后看到的结果,跟我们预期的差不多:

Results of executed query
现在我们打开源表使用下面的脚本更新一些记录。我将要更改SupplierCode = ‘S0000001’的供应商名称。
| USE [AdventureWorks2012] GO UPDATE [dbo].[Supplier] SET [SupplierName]= 'ABC Company Ltd.' WHERE [SupplierCode]= 'S0000001' GO SELECT *FROM [dbo].[Supplier] GO |
现在再次执行包,你会看到一条记录(新)已经插入并且一条记录(旧的)已经被更新或者标记为过时。这是因为更新的列被配置成SCD Type 2:

One record inserted and one record outdated
现在执行上面的查询语句验证数据。正如我们预测的,SupplierCode = ‘S0000001’有两条记录。前面的记录已经更新了截至日期表面数据已经是过时的,最新的记录对应了最新的供应商名称:
| USE [AdventureWorks2012] GO SELECT *FROM [dbo].[DimSupplier] GO |

Query results
限制:
Slowly Changing Dimension transformation 被设计为简单易用,主要为了小的维度表。如我们上面看到的,Slowly Changing Dimension Transformation是一个开箱即用的SSIS组件,对于小的维度可以快速配置。但是Slowly ChangingDimension Transformation并不适合所有的情况尤其是你的维度很大,下面是一些原因:
· Slowly ChangingDimension transformation根据你的配置将组件添加到数据流任务去管理缓慢变化维。如果在这些组件上做了一些定制化,然后再次修改Slowly Changing Dimension transformation你做的定制化会丢失。
对于大的维度因为没有缓存查找数据,性能会很慢。只可以用到SQL Server。它使用OLEDB命令进行行更新而不是批量更新。
Conclusion结论
在这篇文章中,我谈到了缓慢变化维度转换,在SSIS提供开箱即用的工具包,可以轻松快速地配置用于管理较小的缓慢变化维度。在下一篇文章中我将讨论一些备选方案,您可以使用管理更大的缓慢变化维度。