SSIS組件轉換_排序、合并、合并聯轉換

來源:互聯網
上載者:User

一、排序轉換(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語句中的串連查詢語句。但又與之有所區別。

  •  使用合并聯結要求輸入已排序的資料。而T-SQL中的串連查詢不需要

  • 如果兩個輸入列關聯的列是字元類型。則需要對它進行大小寫轉換或去除空格等操作。而在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.在合并轉換與行計數轉換中間的串連建立一個資料檢視器。然後執行包。結果如下:

 

在彈出框中可以看到我們合并的部分資料。可以持續單擊綠色三角按鈕來查看合并的資料,想讓包執行完畢,可以關閉彈出框即可

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.