有時候,如果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;
在Sql中處理表中字串列中的數字問題
如有表資料,部分記錄 其中列 banid 為主關鍵字 如下 banid stylenocolor 2 15 2 046 特白 11件 中灰 8件 彩藍 8件 鮮黃 8件 鮮橙 8件 需要取出列 stylenocolor 中的資料,並求和。目前我採取的方法如下 建立記錄板單顏色件數資訊表 ifexis...
在kettle中使用遍歷來更新記錄中的字段
資料庫中有訂單表tb order,其中有order id和user id和user name等字段。資料庫中有使用者資料表tb user,其中有user id和user name等字段。現在需要使用tb user.user name來更新tb order.user name,兩個表的關聯條件是tb ...
C 中Random 在for迴圈內使用的困惑
題目 模擬n個人參加選舉的過程,並輸出選舉結果 假設候選人有四人,分別用a b c d表示,當選某候選人時直接輸入其編號 編號由計算機隨機產生 若輸入的不是a b c d則視為無效票,選舉結束後按得票數從高到低輸出候選人編號和所得票數。這時需要用random來給a,b,c,d隨機投票.有n個人,所以...