在kettle使用循環來處理表中的數據


有時候,如果kettle事務中源表的數據非常大的時候,一下子把源表中的數據全部讀入內存的方式是不可取的。在mysql中,我們可以通過循環的方式,使用limit來定量取得一部分數據來處理。即,關鍵的sql是:select * from table_name limit current_value, step_value; 以下做一個思路演示。
1:取得記錄中的所有的數量,初始化當前循環值等;
2:循環的判斷條件是:當前的循環值小於最大的循環值
2.1:修改sql語句中查詢的起始值
2.2:用一個轉換來處理查詢結果,這個例子是將結果追加到文件中;
2.3:將當前的循環值加1;
頂層job的配置


第1步的配置信息


第2步的配置信息


第2.1步的配置信息
var stepValue = new Number(parent_job.getVariable("STEP_VALUE"));
var i = new Number(parent_job.getVariable("CURRENT_LOOP"))*stepValue;
parent_job.setVariable("CURRENT_CURSOR",i);
true;
第2.2步的配置信息


第2.3步的配置信息
var i = new Number(parent_job.getVariable("CURRENT_LOOP"))+1;
parent_job.setVariable("CURRENT_LOOP",i);
true;


免責聲明!

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



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