Welcome

首页 / 数据库 / SQLServer / SSIS:数据仓库中实现Slowly Changing Dimension缓慢渐变维度的三种方式

SSIS:数据仓库中实现Slowly Changing Dimension缓慢渐变维度的三种方式2014-03-23 cnblogs BIWORK关于 Slowly Changing Dimension 缓慢渐变维度的理论概念请参看 数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型及原型设计

本篇文章总结了实现缓慢渐变维度的几种方式,并且分析了 Changing Attribute 和 Historical Attribute 输出的逻辑过程。

示例一:SSIS 中使用 Slowly Changing Dimension 控件

示例二:使用 SQL 中 Merge 语句实现简单的 SCD 效果

示例三:在 SSIS 中使用 Lookup, Conditional Split, Multicast 等控件实现 SCD 效果

测试表以及测试数据,其中 Customer 是数据源表,DimCustomer 模拟的是数据仓库中的 Customer 维度表。

每个示例都是从空表开始,第一次运行的时候 Dimension 表没有数据,第二次运行之前将添加几条 数据到 Customer 数据源表中,并同时修改若干数据。

但是要注意这个示例对数据源数据的加载是全部加载,而不考虑基于数据源数据的增量加载,关于增 量加载的实现会放在 BI 系列的其它文章中讲解。

USE BIWORK_SSISGOIF OBJECT_ID("Customer") IS NOT NULLDROP TABLE Customer GOIF OBJECT_ID("DimCustomer") IS NOT NULLDROP TABLE DimCustomer GOCREATE TABLE Customer(ID INT PRIMARY KEY IDENTITY(1,1),FullName NVARCHAR(50),City NVARCHAR(50),Occupation NVARCHAR(50))CREATE TABLE DimCustomer (CustomerID INT PRIMARY KEY IDENTITY(1,1),CustomerAlternateKey INT,FullName NVARCHAR(50),City NVARCHAR(50),Occupation NVARCHAR(50),StartDate DATETIME,EndDate DATETIME,IsCurrent BIT DEFAULT(1))INSERT INTO BIWORK_SSIS.dbo.Customer VALUES("BIWORK","Beijing","IT"),("ZhangSan","Shanghai","Education"),("Lisi","Guangzhou","Student")
示例一  SSIS 中的 Slowly Changing Dimension

新建一个 Package 并拖放一个 Data Flow,在 Data Flow 中建立好与 Customer 表的数据源连接, 新建 Slowly Changing Dimension SCD_DimCustomer。