加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2016-08-14 12:26:12 所属栏目:MsSql教程 来源:站长网
导读:关于 Slowly Changing Dimension 缓慢渐变维度的理论概念请参看 数据仓库系列 - 缓慢渐变维度 (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。

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

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读