一 衍生的資料行
衍生的資料行轉換通過對輸入列進行類型轉換或應用運算式得出新的結果。這個結果可以作為新列添加,也可以替換輸入列。可以使用此轉換執行下列任務:
1.將不同列的資料連線到一個衍生的資料行中。例如,可以使用運算式 FirstName + " " + LastName 將 FirstName 和 LastName 列中的值組合到名為 FullName 的單個派 生列中。
2.通過使用 SUBSTRING 之類的函數從字串資料中提取字元,然後將結果儲存到衍生的資料行中。例如,可以使用運算式 SUBSTRING(FirstName,1,1) 從 FirstName 列提取人名的首字母。
3.對數值資料應用數學函數,然後將結果儲存到衍生的資料行中。例如,可以使用運算式 ROUND(SalesTax, 2) 將數值列 SalesTax 的值更改為精確到小數點後兩位。
4.建立比較輸入列和變數的運算式。例如,可以使用運算式 ProductVersion == @Version? ProductVersion : @Version 來比較變數 Version 與 ProductVersion列中的資料,然後根據比較結果決定選用 Version 還是 ProductVersion 的值。
5.提取日期時間值的某部分。例如,可以通過運算式 DATEPART("year",GETDATE()) 使用 GETDATE 和 DATEPART 函數提取當前年份。
在上篇彙總轉換文章中我們已經使用到了衍生的資料行。其配置如下:
在這圖中,可以根據需求來進行一些設計。本圖的設定為計算單個商品購買的總金額。
二 審核轉換
審核轉換控制項配置很簡單,它使得包中的資料流包含有關包運行所處環境的資料。例如可以將包的名稱、電腦名稱和操作員姓名添加到資料流中。該轉換功能只以下系統變數。
值 |
說明 |
執行執行個體 GUID |
插入唯一標識包的執行執行個體的 GUID。 |
包 ID |
插入唯一標識包的 GUID。 |
包名稱 |
插入包名稱。 |
版本 ID |
插入唯一標識包版本的 GUID。 |
執行開始時間 |
插入包執行的開始時間。 |
電腦名稱 |
插入啟動包的電腦的名稱。 |
使用者名稱 |
插入啟動包的使用者的登入名稱。 |
任務名稱 |
插入與審核轉換相關聯的資料流程工作的名稱。 |
任務 ID |
插入唯一標識與審核轉換相關聯的資料流程工作的 GUID。 |
配置該轉換功能如下步驟。
- 將審核轉換控制項按拖放到資料流程工作中,並將上遊的控制項用綠色箭頭串連起來。:
- 按右鍵審核轉換快顯視窗
- 單擊審核類型下拉框。選中需要的系統變數。然後在輸出資料行中設定輸出的名稱。得到如下結果:
配置好審核的系統變數,單擊確定即可完成審核轉換功能的配置資訊。整個流程如下:
將轉換的資料存放到C:\Users\zhuyujing\Desktop\test.txt。執行包.得到的結果如下:
三 字元對應表轉換
字元對應表轉換其實就是將字串函數應用於輸入列中的字元資料。該功能只對字串資料型別的輸入列執行。例如我們可以將字元轉換為下寫、大寫、或則繁體等等。如所示
現在我們就示範一下將輸入列中的NewName、PackageName分別轉換為繁體和大寫的,並將輸入列NewName用轉換後的繁體替換,建立一個新的列NewPackageName用於儲存輸入列PackageName映射的繁體字元。整個流程如下:
配置成功後執行包。可以看到沒有轉換之前,NewName和PageageName分別是簡體和小寫字元
轉換後,NewName列中的資料變成繁體、packageName列對應的NewPackageName列都是大寫字元。
四 條件性拆分轉換
條件性拆分轉換功能類似 C#程式設計語言中的swith…case 語句。此轉換將計算運算式,並且根據計算的結果將資料行定向到不同輸出中。此轉換還提供一個預設輸出,如何某個行與任何錶達式都不匹配。則它將被定向到預設輸出。例如,可以將銷售訂單總額在1000~3000之間的資料輸出到一個路徑,將銷售訂單總額在3000~7000之間的資料輸入到一個路徑,將銷售訂單總額>=7000的資料輸出到一個路徑。不滿足以上條件的設定為預設條件。作為另外一條路徑輸出。在設定這些條件的同時還可以編輯輸出資料行的名稱。最終結果如:
配置好以後單擊確定即可。為了檢測結果。我們先在變數選項卡中設定如下幾個變數
然後在資料流選項開中托動四個行計數轉並修改名稱。:
按右鍵其中一個行計數,快顯視窗後,按如設定VariableName屬性。本圖已名為BadRowCount為例。其他行計數轉換分別按同樣的操作設定VariableName即可。
然後將剛才的條件性拆分轉換與其中一個行計數用綠色箭頭串連。彈出如下視窗
在輸出下拉框中選中條件。然後單擊確定按鈕即可。如
其他三個行計數轉換按此步驟操作即可。最總得到如:
執行該包,等到如所示的結果