关于 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
, 数据源
, 维度
, nvarchar
示例
缓慢渐变维度、dimension w 维度战记、缓慢变化维度、缓慢变更维度、渐变维度,以便于您获取更多的相关知识。