緩慢變維度(SCD)是資料倉庫維度管理的核心課題。本文總結三種 SSIS 實作路徑,並分析 Changing Attribute 與 Historical Attribute 的輸出邏輯差異。
CREATE TABLE Customer (ID INT PRIMARY KEY, FullName NVARCHAR(50), City NVARCHAR(50), Occupation NVARCHAR(50));
CREATE TABLE DimCustomer (
CustomerID INT PRIMARY KEY IDENTITY,
CustomerAlternateKey INT, FullName NVARCHAR(50), City NVARCHAR(50), Occupation NVARCHAR(50),
StartDate DATETIME, EndDate DATETIME, IsCurrent BIT DEFAULT(1)
);
INSERT INTO Customer VALUES ('BIWORK','Beijing','IT'), ('ZhangSan','Shanghai','Education'), ('Lisi','Guangzhou','Student');
| 方案 | 核心元件/技術 | 適用場景 | 效能 |
|---|---|---|---|
| 方案一 | SSIS SCD Wizard 元件 | 快速開發、維度結構簡單、資料量中小型 | 中等(逐列處理) |
| 方案二 | T-SQL MERGE 語句 | 資料庫端處理、邏輯集中、大量資料 | 高(集合運算) |
| 方案三 | Lookup + Conditional Split + Multicast 組合 | 需精細控制邏輯、混合 SCD Type 1/2、效能調優 | 最高(流水線並行) |
新增資料流任務,配置 SCD 元件連接 DimCustomer,業務鍵設為 CustomerAlternateKey,依欄位性質勾選:

元件會自動輸出「新增」、「更新」、「歷史新增」三條資料流,分別接往 OLE DB 目的地完成寫入。