SSIS:数据仓库中实现Slowly Changing Dimension缓慢渐变维度的三种方式
关于 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_SSIS GO IF OBJECT_ID('Customer') IS NOT NULL DROP TABLE Customer GO IF OBJECT_ID('DimCustomer') IS NOT NULL DROP TABLE DimCustomer GO CREATE 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。 (编辑:滁州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |