SSIS中的容器和數據流—舉例說明數據轉換任務
在上一個隨筆中我們熟悉了數據流任務,現在來做一個例子,通過實踐學習這些介紹的內容。這個例子從AdventureWorks數據庫中取得數據,然后對數據進行聚合,排序,計算產生新列操作并輸入到一個.csv文件中。
- 新建一個新的package將它重命名為AdventureWorksExtract.dtsx,在control flow中拖放一個數據流任務,雙擊進入data flow 界面
- 在data flow界面內拖放一個OLE DB數據源,右擊重命名為TransactionHistory,雙 擊打開編輯界面AdventureWorks數據庫連接如果已經存在就直接選擇它,如果不存在點擊新建一個連接
- 新建連接之后回到OLE DB Source Editor界面,默認Data Access Mode選項是Table or View,選擇數據庫中的表[Production].[TransactionHistoryArchive],如圖4-32
圖4-32 - 點擊Column Page如圖4-33選擇列ProductID, Quantity,和 ActualCost,點擊OK退出
圖4-33 - 從工具欄Data Flow Transformations中拖放一個Derived Column任務用來產生派生新列,重命名為Calculate Total Cost,用鼠標拖住TransactionHistory 數據源連接這個task
- 雙擊這個Derived Column打開編輯界面如圖4-34,在表達式列中輸入下面的表達式:[Quantity]* [ActualCost],列名也可以從左邊Columns拖放如圖
,在Derived Column Name列中輸入TotalCost,Derived Column列中選擇<add as a new column>,點擊OK退出編輯界面
圖4-34 - 在data flow中拖放一個Aggregate任務,重命名為Aggregate Data,把它和Derived Column連接起來。雙擊Aggregate任務打開編輯界面如圖4-35雙擊ProductID可以看到下面表格中新添加了一行,在Operation中選擇Group By,然后栓劑Quantity和TotalCost,在Operation中選擇Sum。點擊OK退出編輯界面
圖4-35 - 從Data Flow Transformations中拖放一個Sort任務重命名為Sort by ProductID,把它和Aggregate任務連接起來。雙擊Sort任務打開編輯界面,選擇Quantity字段降序排列,意思是按照銷售量從高到低排序,點擊OK退出編輯界面。
- 從Data Flow Destinations中拖放一個一個Flat File Destination任務重命名為Vendor Extract,把它和Sort任務連接起來。
- 雙擊Flat File Destination打開編輯界面,新建一個文件連接,在彈出的文件格式選擇對話框中默認選擇第一個Delimited,將連接命名為Vendor Extract,在File Name文本框中輸入C:\SSISDemos\VendorExtract.csv,如果C盤下沒有這個文件夾,要新建一個。最后的界面如圖4-36,點擊OK退出編輯界面。
圖4-36
點擊mapping標簽界面,可以看到從Sort任務中輸入的數據和文件中的數據列一一對應,如圖4-37
圖4-37
現在整個package完成了,這是一個典型的ETLpackage,右擊運行這個package執行完成之后可以看到綠色的連線傍邊有轉換的數據行數,如圖4-38
圖4-38
作者:Tyler Ning
出處:http://www.rzrgm.cn/tylerdonet/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,請微信聯系冬天里的一把火
浙公網安備 33010602011771號