kettle mysql 分页_kettle 分页抽数

本文介绍了如何在Kettle中利用MySQL进行数据分页处理。首先,通过SQL查询计算总数据量并设置变量。然后,在JavaScript中进行分页判断,根据当前页数、每页条数和总页数进行逻辑控制,防止堆栈内存溢出。最后,补充了检查字段值的条件作为进一步的数据筛选步骤。
摘要由CSDN通过智能技术生成

1】 分页

81fc6c1ad426592bd9b36a4ad7ec51fa.png

2】变量设置 == 全局/局部

03e02a29e10cff38d5f53c893513f10b.png

3】查询总数据量,并设置变量

SELECT

count(1) total_page

FROM

dmlog_policy t

WHERE 1=1

and t.trans_status in ('0','3')

and contractid between ${fromContractId} and ${toContractId}

and riskCode = ${riskCode}

-- 过滤掉大团单

-- and not exists (select 1 from big_policy a where a.contractid= t.contractid)

9be9d0545dc1261b47ad7735d9648f72.png

4】js增加判断 == 是否继续/结束 false退出

var subject="自定义日志输出";

//实例化工厂类

var logFactory = new org.pentaho.di.core.logging.LogChannelFactory();

//实例化日志channel对象

var log= logFactory.create(subject);

//日志输出

log.logMinimal("-------------分页判断-------------------");

var currPage = parent_job.getVariable("curPage");// 从job获取当前页数值(当前第几页)

var page_size = parseInt(parent_job.getVariable("pageSige")); // 分页条数

var total_page = parent_job.getVariable("TOTAL_PAGE"); // 当前线程总数

var riskcode = parent_job.getVariable("riskCode"); // 当前迁移险种

log.logMinimal("-------------currPage:" + currPage + ",page_size:" + page_size + ",total_page:" +total_page+ ",riskcode:"+ riskcode+"-------------------");

if(total_page == null || total_page == undefined || total_page == ""){

// 总数为空的时候,直接返回错误

false;

}else{

total_page = parseInt(total_page);

}

if(currPage == null || currPage == undefined || currPage == ""){

// 当前页为空的时候,直接返回错误

false;

}else{

var nextCurrPage = parseInt(currPage)+1;

}

//超过100次循环会堆栈内存溢出,故限制在100次之内

if( (currPage*page_size) < total_page && nextCurrPage<=100 ){

parent_job.setVariable("curPage",(parseInt(currPage)+1));

true;

}else{

false;

}

补充1】

条件:检验字段的值

0a837fe288094da9dd561600bcd63aba.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值