1、kettle原生是支持for循環處理的,無需通過javascript腳本或者java腳本開發for循環控制。當然如果想通過腳本挑戰下也是可以的。
本節課主要講解如何通過kettle中的job來實現for循環控制,如下圖所示:
1)步驟【設置變量】設置單個job級別的變量。
2)步驟【轉換】加載數據集清單列表,返回一個dataList。
3)步驟【轉換】處理當條數據,此步驟也是今天要講解的重點步驟。
2、步驟【轉換】處理當條數據,要想循環處理list中的每一條數據,一定要勾選“執行每一個輸入行”,如下圖所示:
3、步驟【設置變量】這一步根據業務場景可以選擇是否添加,如果後面兩個步驟都需要用到變量的話,可以添加設置變量。
4、加載數據清單子轉換如下,通過自定義常量步驟生成兩條數據,複製紀錄到結果可以將結果傳遞到下個步驟。
5、單條處理子轉換如下,通過自定義常量步驟生成兩條數據,從結果獲取紀錄可以將上一步結果傳遞到當前步驟。
6、不通過job,單獨通過轉換也可以實現for循環控制,如下圖所示:
7、轉換和job中的單條處理設置大同小異,轉換時設置Row grouping中的Number of rows to send transformation爲1。
留個懸念:這個參數也會涉及到性能調優,大家可以嘗試下,歡迎評論區討論。