在kettle使用迴圈來處理表中的資料

2021-10-25 09:27:46 字數 1066 閱讀 7238

有時候,如果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個人,所以...