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

相关文章
|
10月前
|
关系型数据库 MySQL Shell
shell学习(十七) 【mysql脚本备份】
shell学习(十七) 【mysql脚本备份】
76 0
|
10月前
|
数据采集 Oracle 关系型数据库
kettle开发-循环驱动作业
kettle开发-循环驱动作业
231 0
|
Shell
shell脚本之批处理脚本
shell脚本之批处理脚本
178 1
|
5月前
|
Java
ETL工具 Kettle 中 kettle循环传递变量_(最简单的方法)
本文详细介绍了如何在Kettle工具中使用循环传递变量,通过示例展示了如何将movies表数据按月插入到ods_movies表,涉及新建转换、获取变量、作业配置和执行,呈现了一个嵌套作业结构.
362 3
|
SQL Oracle 关系型数据库
Kettle输出步骤(四)
Kettle输出步骤(四)
224 0
Kettle输出步骤(四)
|
SQL Oracle 关系型数据库
基于变量方式实现kettle快速循环迁移表数据(八)
基于变量方式实现kettle快速循环迁移表数据(八)
407 0
基于变量方式实现kettle快速循环迁移表数据(八)
|
资源调度 Ubuntu Unix
05-PDI(Kettle)脚本执行
文章目录 05-PDI(Kettle)脚本执行 pan和kitchen实验背景 pan命令演示
05-PDI(Kettle)脚本执行
|
Shell
【shell】基础理论、脚本构成、脚本执行
文章目录 前言 一、定义 二、规范
146 0
【shell】基础理论、脚本构成、脚本执行
|
关系型数据库 MySQL Shell
多次循环备份MySQL数据库数据shell脚本
多次循环备份MySQL数据库数据shell脚本
880 1

热门文章

最新文章