30天學會Data Integration - Kettle系列 第 16 篇 - Step - 數值對應與欄位排序
此篇要介紹兩個使用率也蠻高的Step,[Transform]Value Mapper與[Transform]Sort rows
[Transform]Value Mapper介紹
經常使用的的情況就類似性別的男女要轉換成10或是FM,提供一個代碼對照表,讓符合的文字轉換成另外指定的代碼,經常使用於存入資料庫之前的資料轉換
[Transform]Sort rows介紹
可指定欄位進行升冪或降冪
本篇目標:將血型轉換成代碼並根據年齡排序
A、B、O、AB將轉換成1、2、3、4
新增 Value Mapper
請新增Value Mapper並建立Hop
設定 Value Mapper
建立對應規則
預覽 Value Mapper
血型欄位已變成指定的代碼
新增Sort rows
接下來要針對年齡來進行排序,請新增Sort rows並建立Hop
設定Sort rows
選擇年齡欄位
預覽Sort rows
年齡由小排到大
同場加映:使用Modified Java Script Value達成代碼轉換
Modified Java Script Value真的是好物,不過如果過度使用,反而在維護Transformation上會比較困難,如果透過功能各自獨立的Step來處理,各司其職,反而提高了易讀性。
新增Modified Java Script Value
在建立Hop時會出現提示框,請選擇Copy,這樣此Step才會拿到上一個Step的所有資料;如果是選擇Distribute,那上一個Step的資料,會在Value Mapper與Modified Java Script Value之間輪流傳遞,也就是說Excel Step總共有三筆資料,往後傳遞資料時,Value Mapper只會拿到2筆資料,而Modified Java Script Value只會拿到1筆資料,兩個Step加起來就拿到3筆資料
設定Modified Java Script Value
使用javascript自己寫代碼的判斷邏輯
var 血型;
if(血型=="A"){
血型="1";
}else if(血型=="B"){
血型="2";
}else if(血型=="O"){
血型="3";
}else if(血型=="AB"){
血型="4";
}
預覽Modified Java Script Value
一樣完成了數值對應。下圖的橘色圈圈中的icon則是代表Hop是使用Copy的方式在傳遞資料
這幾篇都是比較著重在資料的基本處理,下一篇會介紹如何將處理完畢的資料進行匯出
留言
張貼留言