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

相关文章
|
6月前
|
数据采集 Oracle 关系型数据库
kettle开发-循环驱动作业
kettle开发-循环驱动作业
183 0
|
14天前
|
Java
ETL工具 Kettle 中 kettle循环传递变量_(最简单的方法)
本文详细介绍了如何在Kettle工具中使用循环传递变量,通过示例展示了如何将movies表数据按月插入到ods_movies表,涉及新建转换、获取变量、作业配置和执行,呈现了一个嵌套作业结构.
54 3
|
5月前
|
网络协议 安全 Windows
【bat】批处理脚本大全
【bat】批处理脚本大全
93 2
|
SQL Oracle 关系型数据库
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脚本
687 1
|
调度
巧用bat文件做Airtest脚本的“批量运行”
巧用bat文件做Airtest脚本的“批量运行”
562 0
|
Java Shell 程序员
shel脚本基础系列(三)for-while循环
shel脚本基础系列(三)for-while循环
207 0
shel脚本基础系列(三)for-while循环
|
SQL 存储 关系型数据库
《懒人Shell脚本》之六——一键构造待采集批量sql语句
1、需求 采集任务构造入库。实现200多个网站的标题、时间、内容等信息的采集信息配置,并插入mysql中
200 0
《懒人Shell脚本》之六——一键构造待采集批量sql语句
|
XML Linux 调度