關於在kettle當中使用循環去讀取數據做etl操作。


最近在做kettle相關的數據遷移。然后要循環的去讀取數據把數據進行遷移操作。這里是通過js代碼控制循環讀取數據。

 

//js1代碼。這個主要是讀取表當中傳入過來的數據。

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("TABLENO",prevRow.get(0).getString("tableno",""));//從上一個步驟中獲取第一個表的表名,並賦值給TABLENAME變量 true; }

  

//js2這個是對表當中的表數量進行累加計數

var list_Tables = parent_job.getVariable("tables").replace("[","").replace("]","").split(","); var size = new Number(parent_job.getVariable("size")); var i = new Number(parent_job.getVariable("i"))+1; if(i<size){ parent_job.setVariable("TABLENO", list_Tables[i].trim()); } parent_job.setVariable("i",i); true;

  

表數量校驗的截圖如下:

 

 兩個轉換當中數據輸入如下:

獲取表名稱的轉換

 

 

 上面是根據表當中的id獲取到具體的表名稱是什么,下面是是獲取將要導入的表全部數據。

至此問題得到解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM