SSIS 系列 - Merge, Merge Join, Union All 合並組件的使用以及Sort 排序組件同步異步的問題
SSIS Data Flow 中有幾個組件可以實現不同數據源的數據合並功能,比如 Merger, Merge Join 和 Union All。它們的功能比較類似,同時也比較容易混淆,下面是對它們之間的區別的對比總結。

下面通過三個 Data Flow 來演示這三個組件的使用以及相關的配置。
測試數據源 -
第一個數據源是一張表
USE BIWORK_SSIS
GO
-- Merge demo table
IF OBJECT_ID('DEMO_MG_Customer','U') IS NOT NULL
DROP TABLE DEMO_MG_Customer
GO
CREATE TABLE DEMO_MG_Customer
(
CustomerID INT PRIMARY KEY,
CustomerCompany NVARCHAR(255),
CustomerName NVARCHAR(20),
CustomerAddress NVARCHAR(255)
)
INSERT INTO DEMO_MG_Customer VALUES
(1,'HFBZG','Allen,Michael','Obere Str. 0123'),
(2,'MLTDN','Hassall, Mark','Avda. de la Constitución 5678'),
(3,'KBUDE','Peoples, John','Mataderos 1000')
SELECT * FROM DEMO_MG_Customer

第二個數據源是一個文本文件
ID,Company,CustomerName,Title,Address
1,'NRZBB','Allen,Michael','Sales Representative','Obere Str. 0123'
2,'MLTDN','Hassall, Mark','Owner','Avda. de la Constitución 5678'
3,'KBUDE','Peoples, John','Owner','Mataderos 7890'
4,'HFBZG','Arndt, Torsten','Sales Representative','7890 Hanover Sq.'
5,'HGVLZ','Higginbotham, Tom','Order Administrator','Berguvsvgen 5678'
示例一 - 使用 Merge 來合並數據
上面已經說了 Merge 的特點-
輸入數據源 - 兩個
輸入數據源 - 表或者文件等
合並時要求元數據相同,數據類型相同
合並前需要排序
