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 的特點-
輸入數據源 - 兩個
輸入數據源 - 表或者文件等
合並時要求元數據相同,數據類型相同
合並前需要排序