Kettle使用脚本实现循环(十)

简介: Kettle使用脚本实现循环(十)

kettle中没有循环的控件,我们可以使用JavaScript脚本来实现这个功能

案例:

从一个接口中获取数据,然后使用循环一条一条的插入数据库中

流程

20190516153030564.png

从接口中获取数据可以参考https://blog.csdn.net/BushQiang/article/details/90049200

返回的接口数据

20190516153400595.png

循环初始判断

var prevRow=previous_result.getRows();//获取上一个传递的结果
var i=new Number(0);//循环初始变量控制
if(prevRow == null && (prevRow.size()=0))
{
  false;//返回结果
} else {
    parent_job.setVariable("i", i);//循环初始值设置
    parent_job.setVariable("size", prevRow.size());//循环总数量
    parent_job.setVariable("name", prevRow.get(i).getString("name", ""));//获取第几条数据的值
  parent_job.setVariable("province", prevRow.get(i).getString("province", ""));
    parent_job.setVariable("uid", prevRow.get(i).getString("uid", ""));
    parent_job.setVariable("city", prevRow.get(i).getString("city", ""));
  true;//返回结果
}

检验字段的值

20190516153439111.png

获取一条数据并插入数据库中

使用获取变量来获取数据,字段选择可以选择你需要的数据

20190516153609961.png

循环控制

根据i获取数据,并加1

var prevRow=previous_result.getRows();//获取上一个传递的结果
var i=new Number(parent_job.getVariable("i"));//获取循环变量
var size=new Number(parent_job.getVariable("size"));//循环总数
if(i<size) {
    parent_job.setVariable("name", prevRow.get(i).getString("name", ""));
  parent_job.setVariable("province", prevRow.get(i).getString("province", ""));
    parent_job.setVariable("uid", prevRow.get(i).getString("uid", ""));
    parent_job.setVariable("city", prevRow.get(i).getString("city", ""));
}
parent_job.setVariable("i", i+1);//变量加1
true;

然后再检验字段的值比较i与size的值,判断循环是否结束,这个最后插入数据库中的数据。

20190516154002160.png

相关文章
|
数据采集 Oracle 关系型数据库
kettle开发-循环驱动作业
kettle开发-循环驱动作业
1180 0
|
XML 存储 网络协议
kettle开发篇-Http client
kettle开发篇-Http client
1584 0
|
调度
kettle开发篇-写日志
kettle开发篇-写日志
1464 0
|
数据库连接 数据库
kettle开发篇-数据库查询
kettle开发篇-数据库查询
775 0
kettle开发篇-参数
kettle开发篇-参数
657 0
|
数据库
kettle开发篇-合并记录
kettle开发篇-合并记录
1460 0
|
数据库连接 数据库
kettle开发篇-流查询
kettle开发篇-流查询
719 0
|
数据采集 数据挖掘
kettle开发-数据清洗之字符串替换
kettle开发-数据清洗之字符串替换
946 2
|
Java
ETL工具 Kettle 中 kettle循环传递变量_(最简单的方法)
本文详细介绍了如何在Kettle工具中使用循环传递变量,通过示例展示了如何将movies表数据按月插入到ods_movies表,涉及新建转换、获取变量、作业配置和执行,呈现了一个嵌套作业结构.
2805 3