1. 程式人生 > >kettle 教程(三):條件判斷 Switch Case

kettle 教程(三):條件判斷 Switch Case

介紹

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 中一個非常基礎又重要的元件。