一、排序轉換(Sort)
排序轉換功能是按升序或降序對輸入資料流中的資料進行排序.並將排序後的資料複製到轉換輸出中.它類似於T-SQL中的order by 語句。下面以資料庫AdventureWorks為例來介紹一下排序轉換的使用。
1.建立名為”SortDemo”的包,在控制流程中拖放一個資料流程工作,然後在連線管理員中建立一個OLE DB連接器,用於串連AdventureWorks資料庫。
2.在BIDS介面左邊的變數工具箱中設定一個變數Count 類型是Int32。
3.在資料流選項卡中拖放一個OLE DB資料來源,串連AdventureWorks,選擇Production.product.:
4.拖放一個排序轉換任務。按如設定:
下面詳細介紹一下該圖中各個屬性的使用方法:
屬性 |
說明 |
可用輸入列 |
使用此複選框可以指定要排序的列 |
名稱 |
可用輸入列的名稱 |
傳遞 |
指示是否在排序輸出中包含該列 |
輸入列 |
選擇需要排序的列,也可以通過可用輸入列中選擇 |
輸出別名 |
為要排序的輸入列設定一個輸出別名,預設為輸入列名稱 |
排序類型 |
指示是按升序還是按降序排序 |
排序次序 |
指示列的排序次序。必須是手動設定此項,而且設定時按初始值為1的遞增資料 |
中理解為先按Name降序,再按ProductName升序排序。
5.拖放一個行計數轉換,將排序與之串連,箭頭指向行計數轉換。並設定
其中變數User::Count在變數工具箱中建立。
6.在排序轉換與行計數轉換中的綠色連線上建立一個帶有Grid網格的查看器。然後執行包。如:
我們發現Name和ProductName列按我們在排序轉換中的設定輸出到資料管道中。
二、合并轉換(Merge)
合并轉換是將兩個排序後的資料集合合并為一個資料集。根據每個資料集中的行的鍵列的值,將這些行插入到輸出中。合并轉換功能類似於T-sql語句中的Union All子句。
合并轉換要求輸入列具有匹配的來源資料。在SSIS設計器中,合并轉換的使用者介面會自動對應映射具有中繼資料的列。然後你可以手動映射具有相容資料類型的其他列。
下面我們以AdventureWorks資料庫中的Production.Product表為例介紹如何使用合并轉換。
1.建立一個名為“MergerDemo”的包,然後在控制流程中拖放一個DataFlow任務,在連線管理員中建立一個OLE DB連接器,用於串連AdventureWorks資料庫。
2.在BIDS中的變數工具箱中建立一個變數Count,類型為Int32。
3.在資料流中拖放兩個OLE DB資料來源。連接器串連AdventureWorks資料庫,兩個資料來源的訪問模式都選擇sql命令。Sql語句分別為:
select top 5 * from Production.Product
select top 6 * from Production.Product
4.在資料流中拖放兩個排序轉換功能。分別對兩個資料來源資料的列ProductNumber按升序排序。
5.拖放一個合并轉換,分別與兩個排序轉換串連。設定如下:
6.拖放一個行計數。與合并轉換相連。設定VariableName=User::Count
7.在合并轉換與行計數轉換中間的串連建立一個資料檢視器。然後執行包。結果如下:
8.在彈出框中可以看到我們合并的部分資料。可以持續單擊綠色三角按鈕來查看合并的資料。想讓包執行完畢。可以關閉彈出框即可。
到此,合并轉換功能的使用已介紹完畢。其中一些注意的事項我們將與合并聯結轉換一起介紹。
三、合并聯結轉換(Merge Join)
合并聯結轉換功能是將兩個已排序的輸入列的資料通過使用FULL JOIN、Left JOIN或INNERR JOIN聯結形成一個輸出資料集。它類似於T-SQL語句中的串連查詢語句。但又與之有所區別。
瞭解這些資訊後,下面介紹如何使用。
1.建立一個名為“MergeJoinDemo”包,在控制流程中拖放一個Data Flow 任務。在連線管理員中添加一個OLE DB連接器。用於串連AdventureWorks資料庫。
2.在變數工具箱中建立一個如的變數
3.在資料流選項卡中拖放兩個OLE DB資料來源。都串連剛才建立的名為“LocalHost.AdventureWorks”連接器。資料訪問模式使用sql命令。Sql語句分別如下
select ProductID,ProductModelID,Name from Production.Product
select ProductModelID,Name from Production.ProductModel
4.拖放兩個排序轉換到資料流選項卡中,分別對兩個資料來源資料的列ProductModelID按升序排序。
5.拖放一個合并聯結轉換,分別與兩個排序轉換串連,然後雙擊合并聯結轉換,快顯視窗根據視窗設定合并聯轉換屬性。
在圖中有一個聯結類型選項,它包含三種類型:左方外部聯結、內部聯結和完整外部聯結,分別等同於T—SQL中的LEFT JOIN、INNER JOIN和FULL JOIN
6.拖放一個行計數。與合并聯結轉換相連。設定VariableName=User::Count
7.在合并轉換與行計數轉換中間的串連建立一個資料檢視器。然後執行包。結果如下:
在彈出框中可以看到我們合并的部分資料。可以持續單擊綠色三角按鈕來查看合并的資料,想讓包執行完畢,可以關閉彈出框即可