對資料流來說按照需求將資料轉換成需要的格式是資料操作中的一個關鍵的步驟。例如想要得到彙總排序後的運算結果,轉換可以實現這種操作。和SQL Server 2000 DTS完全不同,這些操作不需要編寫script,所有的運算都在記憶體中進行。添加一個資料轉換之後,資料直接轉換成想要的格式然後傳遞給下一個步驟,由於是在記憶體中完成運算操作的,不需要在資料庫中建立對象來儲存這些操作函數。但是當需要處理大批量的資料時,還是需要建立儲存表或其他對象來處理的。
在data flow面板中拖放一個轉換,滑鼠點住然後拖放綠色連線到一個目的Destination,然後就可以雙擊並編輯這個轉換。這部分將從最基本的功能開始講解轉換,下一部分將會做一些實驗操作,並在實際盛傳環境中來使用它。還有一些更進階的轉換著這裡不會講解,把他們放在下一個隨筆中講解,這些進階的轉換包括:
其中一些轉換不是很複雜,只是在SSIS沒有UI支援,要想使用它們需要使用Visual Studio中的進階編輯器。
彙總Aggregate
彙總轉換可以像T-SQL中的函數GROUP BY, Average, Minimum, Maximum, 和 Count一樣對資料進行彙總運算。在圖4-13中可以看到資料以OrderDate,ProductLine分組,對LineTotal做求和操作。這樣產生了三列新的資料,供其他動作。
圖4-16
在彙總操作編輯器Aggregate Transformation Editor,首先選擇需要進行彙總操作的列,然後選中的列將會出現在下面的一個表裡面在Output Alias列裡面輸入輸出資料行的別名。例如如果想輸出每個訂單的總量,這裡修改為SubTotal,這樣可以更容易的識別出這一列的目的。最重要的以個設定是在Operation這一列選擇彙總操作。它有一面一些選項。
點擊Advanced標籤介面,在這個介面可以編輯轉換輸出。在Advanced介面可以輸入彙總計算的名字,產生一個新的列。在Advanced標籤介面,最關鍵的選擇項是設定轉換時的緩衝,使它在一個合適的水平。例如較低水平設定為500000條,中等水平設定為5000000條,較高水平設定為25000000條。也可以使用Number of Keys屬性設定具體數值。Auto Extend Factor屬性設定轉換可以使用的記憶體量,預設的值是25%,也可以設定其他選項保證RAM佔用量。Warn On Division by Zero單選框用來處理求平均值時被除數是0,如果沒有選擇,轉換失敗將不會給出任何提示。
審核轉換
審核轉換允許對資料流添加審核審核心數據,以往使用HIPPA和Sarbanes-Oxley (SOX)時,必須跟蹤誰在什麼時插入資料,審核轉換可以實現這種功能。例如要跟蹤那一個task向表裡插入資料,可以在審核轉換中添加相應的列。在Output Column Name列中輸入想要審核的列,在Audit Type內選擇審核類型4-17,可以選擇的類型有:
圖4-17