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

相关文章
|
3月前
|
数据采集 Oracle 关系型数据库
kettle开发-循环驱动作业
kettle开发-循环驱动作业
60 0
|
3月前
|
监控 Java 数据库连接
kettle开发-远程执行作业
kettle开发-远程执行作业
92 0
|
SQL Oracle 关系型数据库
Kettle输出步骤(四)
Kettle输出步骤(四)
153 0
Kettle输出步骤(四)
|
XML JSON 数据库连接
Kettle输入步骤(三)
Kettle输入步骤(三)
199 0
Kettle输入步骤(三)
|
资源调度 Ubuntu Unix
05-PDI(Kettle)脚本执行
文章目录 05-PDI(Kettle)脚本执行 pan和kitchen实验背景 pan命令演示
05-PDI(Kettle)脚本执行
|
关系型数据库 MySQL Shell
多次循环备份MySQL数据库数据shell脚本
多次循环备份MySQL数据库数据shell脚本
219 1
|
调度
巧用bat文件做Airtest脚本的“批量运行”
巧用bat文件做Airtest脚本的“批量运行”
517 0
|
IDE 测试技术 开发工具
教你实现一个非常有趣的自动化脚本“循环执行”的实例
教你实现一个非常有趣的自动化脚本“循环执行”的实例
742 0
|
Java Shell 程序员
shel脚本基础系列(三)for-while循环
shel脚本基础系列(三)for-while循环
181 0
shel脚本基础系列(三)for-while循环
|
SQL 存储 关系型数据库
《懒人Shell脚本》之六——一键构造待采集批量sql语句
1、需求 采集任务构造入库。实现200多个网站的标题、时间、内容等信息的采集信息配置,并插入mysql中
181 0
《懒人Shell脚本》之六——一键构造待采集批量sql语句

相关课程

更多