一、Kettle通过JS实现循环(一)

通过JS控制Kettle循环抽取数据,最终结果:

重点讲JS部分:

       步骤3-JavaScript设置初始循环值

//日志初始化部分
var subject="自定义日志输出";
//实例化工厂类
var logFactory = new org.pentaho.di.core.logging.LogChannelFactory();
//实例化日志channel对象
var log= logFactory.create(subject);

var prevRow=previous_result.getRows();//获取上一个传递的结果集
if (prevRow == null && (prevRow.size()=0))
{
    false;

}else{
    parent_job.setVariable("mdatas", prevRow);//ArrayList存储表名变量
    parent_job.setVariable("size", prevRow.size());//存储执行表的总数量
    parent_job.setVariable("i", 0);//循环控制变量
    //注意,此处最好使用trim函数去掉空格
    parent_job.setVariable("bdate", prevRow.get(0).getString("bdate","").trim());
	log.logMinimal("XXXXXXXXXXXXXXXXXXXXXXXX-pre-bdate:"+prevRow);//日志输出
    true;
}

   步骤4-循环判断

步骤5-查询输出

步骤6-JS设置循环变量

var subject="自定义日志输出";
//实例化工厂类
var logFactory = new org.pentaho.di.core.logging.LogChannelFactory();
//实例化日志channel对象
var log= logFactory.create(subject);
//日志输出

var list_Tables =parent_job.getVariable("mdatas").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("bdate", list_Tables[i].toString().trim());
	log.logMinimal("XXXXXXXXXXXXXXXXXXXXXXXX-bdate:"+list_Tables[i].toString()
+",size:"+parent_job.getVariable("size").trim());
    //此处需使用trim函数去掉空格,以免导致无法查出数据
}
parent_job.setVariable("i",i);
log.logMinimal("XXXXXXXXXXXXXXXXXXXXXXXX-i:"+i);
true;

 

 

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kettle是一款强大的数据集成工具,也可以用于实现循环跑批。在Kettle中,我们可以通过使用Transformation Job Steps来实现循环跑批。下面是实现步骤: 1. 准备数据源:为了实现循环跑批,我们需要先准备好数据源,比如数据库中的表或者文件夹中的文件。 2. 创建Transformation:在Kettle中创建一个Transformation作为主程序,用于控制数据批处理的流程。在Transformation中,我们需要完成数据的抽取、转换、加载等过程。 3. 创建Job:创建一个Job用于控制Transformation的执行顺序,以及进行循环。我们可以使用“循环控制”步骤,设置循环次数及循环条件,也可以设置在前一次循环结束后,再次开始下一次循环。 4. 创建转换/任务循环步骤: 我们需要在Job中添加“转化循环”或“任务循环”步骤,在这个步骤中,我们可以指定需要循环的转换或任务,修改他们的参数,以及设置循环次数。在每个循环周期结束后,步骤会自动调用转换或任务进行处理,直到循环次数或者循环条件不满足时停止。 5. 运行Job:设置好循环的参数和条件之后,我们可以直接在Kettle中运行Job,并实时查看运行日志。通过查看日志,我们可以了解每个循环周期的处理情况,如出错等异常情况。 总之,通过使用Kettle中的Transformation Job Steps,我们可以快速实现数据批处理的循环跑批,提高数据处理的效率和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值