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开发-循环驱动作业
194 0
|
1月前
|
Java
ETL工具 Kettle 中 kettle循环传递变量_(最简单的方法)
本文详细介绍了如何在Kettle工具中使用循环传递变量,通过示例展示了如何将movies表数据按月插入到ods_movies表,涉及新建转换、获取变量、作业配置和执行,呈现了一个嵌套作业结构.
79 3
|
4月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之重新上传后只有SQL无法运行,而Python可以正常运行,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
SQL Oracle 关系型数据库
Kettle输出步骤(四)
Kettle输出步骤(四)
201 0
Kettle输出步骤(四)
|
SQL Oracle 关系型数据库
基于变量方式实现kettle快速循环迁移表数据(八)
基于变量方式实现kettle快速循环迁移表数据(八)
367 0
基于变量方式实现kettle快速循环迁移表数据(八)
|
资源调度 Ubuntu Unix
05-PDI(Kettle)脚本执行
文章目录 05-PDI(Kettle)脚本执行 pan和kitchen实验背景 pan命令演示
05-PDI(Kettle)脚本执行
|
Shell
shell脚本——八个循环实验(使用while循环)(上)
实验一 实验要求:计算从1到100所有整数的和。 创建脚本:
199 0
|
Shell 数据安全/隐私保护
shell脚本——八个循环实验(使用while循环)(下)
实验一 实验要求:计算从1到100所有整数的和。 创建脚本:
152 0
|
SQL JavaScript 前端开发
无事来学学--Kettle中脚本的使用
脚本是转换里面的第七个分类 脚本就是直接通过程序代码完成一些复杂的操作。
759 0
|
关系型数据库 MySQL Shell
多次循环备份MySQL数据库数据shell脚本
多次循环备份MySQL数据库数据shell脚本
688 1