kettle 教程(三):條件判斷 Switch Case
阿新 • • 發佈:2018-12-09
介紹
Switch / Case,顧名思義,類似 Java 中的 Switch / Case,用於進行條件判斷。是 kettle 中一個非常常用元件。
使用起來也非常簡單,我們直接來看例子。
場景介紹
有一個 user 表,表中資料如下:
我們需要對 code 欄位進行判斷,如果不為空,則將資料同步到 user_copy 表(表結構相同);如果 code 為空,則記錄一條錯誤記錄,錯誤記錄表 error_info 結構如下:
轉換
整體的流程如下:
表輸入:
Switch / Case :
可以看到 Switch 欄位為 code,型別為 String 。如果值為空,則執行SQL,預設是插入更新。
插入更新:
執行 SQL 指令碼:
可以看到下面勾選了“執行每一行“,意思就是:前一個步驟的每一行資料都要執行一次 SQL 。如果不勾選,則意思就是:前一個步驟不管有多少條資料,只執行一次 SQL 。下面傳入了一個引數 id,用來替換 SQL 中的 ?。
執行結果:
user_copy 表:
error_info 表:
可以看到,一共 10 條資料,其中 7 條 code 不為空的進入了 user_copy 表,3 條 code 為空的進了異常表。
總結
Switch / Case 元件用於條件判斷,可以根據 Case 值走不同的分支。是 kettle 中一個非常基礎又重要的元件。