最近在做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獲取到具體的表名稱是什么,下面是是獲取將要導入的表全部數據。
至此問題得到解決。