Kettle循環獲取結果集

1. Kettle循環獲取結果集

1.1 效果圖

  • job(j1.kjb)

在這裏插入圖片描述

  • t1(t1.ktr)

在這裏插入圖片描述

1.2 轉換介紹

  1. 自定義常量數據

在這裏插入圖片描述

在這裏插入圖片描述

  1. 寫日誌

點擊 獲取字段 會獲取上一步 自定義常量數據 中的 元數據 。將其在運行中作爲日誌輸出

在這裏插入圖片描述

  1. 複製記錄到結果集

把自定義常量記錄複製到結果集。然後在job中循環獲取

1.3 job介紹

  1. 轉換

在這裏插入圖片描述

  1. JavaScript
var prevRow=previous_result.getRows();//獲取上一個傳遞的結果
if (prevRow == null &&(prevRow.size()=0))
{
    false;

}else{
    parent_job.setVariable("tables", prevRow);//ArrayList存儲表名變量,以數組形式保存入table1,table2
    parent_job.setVariable("size", prevRow.size());//存儲執行表的總數量
    parent_job.setVariable("i", 0);//循環控制變量
	parent_job.setVariable("name", prevRow.get(0).getString("name", ""));
    true;

}
  1. 檢驗字段的值

在這裏插入圖片描述

  1. 寫日誌

循環打印定義的JavaScript中定義的變量

在這裏插入圖片描述

  1. JavaScript2
var prevRow=previous_result.getRows();
var size = new Number(parent_job.getVariable("size"));
var i = new Number(parent_job.getVariable("i"))+1;
if(i<size){
    parent_job.setVariable("name", prevRow.get(i).getString("name", ""));
}
parent_job.setVariable("i",i);
true;

1.4 運行job結果

2020/03/26 10:32:59 - Spoon - 正在開始任務...
2020/03/26 10:33:00 - j1 - 開始執行任務
2020/03/26 10:33:00 - j1 - 開始項[轉換]
2020/03/26 10:33:00 - 轉換 - Using run configuration [Pentaho local]
2020/03/26 10:33:00 - 轉換 - Using legacy execution engine
2020/03/26 10:33:00 - t1 - 爲了轉換解除補丁開始  [t1]
2020/03/26 10:33:00 - 自定義常量數據.0 - 完成處理 (I=0, O=0, R=0, W=3, U=0, E=0)
2020/03/26 10:33:00 - 寫日誌.0 - 
2020/03/26 10:33:00 - 寫日誌.0 - ------------> 行號 1------------------------------
2020/03/26 10:33:00 - 寫日誌.0 - 輸出日誌
2020/03/26 10:33:00 - 寫日誌.0 - 
2020/03/26 10:33:00 - 寫日誌.0 - id = 1
2020/03/26 10:33:00 - 寫日誌.0 - name = Kevin
2020/03/26 10:33:00 - 寫日誌.0 - 
2020/03/26 10:33:00 - 寫日誌.0 - ====================
2020/03/26 10:33:01 - 寫日誌.0 - 
2020/03/26 10:33:01 - 寫日誌.0 - ------------> 行號 2------------------------------
2020/03/26 10:33:01 - 寫日誌.0 - 輸出日誌
2020/03/26 10:33:01 - 寫日誌.0 - 
2020/03/26 10:33:01 - 寫日誌.0 - id = 2
2020/03/26 10:33:01 - 寫日誌.0 - name = Helena
2020/03/26 10:33:01 - 寫日誌.0 - 
2020/03/26 10:33:01 - 寫日誌.0 - ====================
2020/03/26 10:33:01 - 寫日誌.0 - 
2020/03/26 10:33:01 - 寫日誌.0 - ------------> 行號 3------------------------------
2020/03/26 10:33:01 - 寫日誌.0 - 輸出日誌
2020/03/26 10:33:01 - 寫日誌.0 - 
2020/03/26 10:33:01 - 寫日誌.0 - id = 3
2020/03/26 10:33:01 - 寫日誌.0 - name = Lucy
2020/03/26 10:33:01 - 寫日誌.0 - 
2020/03/26 10:33:01 - 寫日誌.0 - ====================
2020/03/26 10:33:01 - 寫日誌.0 - 完成處理 (I=0, O=0, R=3, W=3, U=0, E=0)
2020/03/26 10:33:01 - 複製記錄到結果.0 - 完成處理 (I=0, O=0, R=3, W=3, U=0, E=0)
2020/03/26 10:33:01 - j1 - 開始項[JavaScript]
2020/03/26 10:33:01 - j1 - 開始項[檢驗字段的值]
2020/03/26 10:33:01 - j1 - 開始項[寫日誌]
2020/03/26 10:33:01 - 輸出 - ---0
---[[1], [Kevin], [2], [Helena], [3], [Lucy]]
---Kevin
2020/03/26 10:33:01 - j1 - 開始項[JavaScript 2]
2020/03/26 10:33:01 - j1 - 開始項[檢驗字段的值]
2020/03/26 10:33:01 - j1 - 開始項[寫日誌]
2020/03/26 10:33:01 - 輸出 - ---1
---[[1], [Kevin], [2], [Helena], [3], [Lucy]]
---Helena
2020/03/26 10:33:01 - j1 - 開始項[JavaScript 2]
2020/03/26 10:33:01 - j1 - 開始項[檢驗字段的值]
2020/03/26 10:33:01 - j1 - 開始項[寫日誌]
2020/03/26 10:33:01 - 輸出 - ---2
---[[1], [Kevin], [2], [Helena], [3], [Lucy]]
---Lucy
2020/03/26 10:33:01 - j1 - 開始項[JavaScript 2]
2020/03/26 10:33:01 - j1 - 開始項[檢驗字段的值]
2020/03/26 10:33:01 - j1 - 開始項[Dummy]
2020/03/26 10:33:01 - j1 - 完成作業項[Dummy] (結果=[false])
2020/03/26 10:33:01 - j1 - 完成作業項[檢驗字段的值] (結果=[false])
2020/03/26 10:33:01 - j1 - 完成作業項[JavaScript 2] (結果=[false])
2020/03/26 10:33:01 - j1 - 完成作業項[寫日誌] (結果=[false])
2020/03/26 10:33:01 - j1 - 開始項[Dummy 2]
2020/03/26 10:33:01 - j1 - 完成作業項[Dummy 2] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[檢驗字段的值] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[JavaScript 2] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[寫日誌] (結果=[true])
2020/03/26 10:33:01 - j1 - 開始項[Dummy 2]
2020/03/26 10:33:01 - j1 - 完成作業項[Dummy 2] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[檢驗字段的值] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[JavaScript 2] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[寫日誌] (結果=[true])
2020/03/26 10:33:01 - j1 - 開始項[Dummy 2]
2020/03/26 10:33:01 - j1 - 完成作業項[Dummy 2] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[檢驗字段的值] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[JavaScript] (結果=[true])
2020/03/26 10:33:01 - j1 - 完成作業項[轉換] (結果=[true])
2020/03/26 10:33:01 - j1 - 任務執行完畢
2020/03/26 10:33:01 - Spoon - 任務已經結束.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章