ETL工具 Kettle 中 kettle循环传递变量_(最简单的方法)

485 阅读2分钟

第二章 ETL工具 Kettle 中循环传递变量

文章目录

前言

Kettle 中循环传递变量,在企业中最直接应用就是数仓重跑数据。
CSDN 也看了一些,我这里举一个最简单的示例。

一、新建示例用的表

具体见 我的上一篇,使用的表还是 之前的2张表ods_movies和 movies
ETL工具 Kettle 中怎么通过变量传参
本示例的目的是将movies 表的数据循环 insert到 ods_movies 表中

二、使用

1.新建转换 循环列表

加2个对象 表输入 和 复制记录到结果
将转换名称改为循环列表
在这里插入图片描述

select DATE_FORMAT(yyyy_mm_dd, '%Y-%m-%d') as 'cur_month' from  movies where year(yyyy_mm_dd)='2019'

在这里插入图片描述

到这里 循环列表转换就建好了。

2.新建转换 获取每一行变量

新建2个对象,如下
在这里插入图片描述

在这里插入图片描述
这个将 变量名设置为 CUR_MONTH
变量活动类型设置为 :Valid in the Java Virtual Machine

3.新建作业 执行每一行

在这里插入图片描述

'可以看到 这个记录每次只能insert 一条 记录' 
insert into ods_movies
select yyyy_mm_dd,movies_name,total_gross,currency,now() as 'etl_time'
from movies where yyyy_mm_dd='${CUR_MONTH}'

在这里插入图片描述

4.新建作业名循环执行

配置循环列表如下
在这里插入图片描述
配置执行每一行
在这里插入图片描述
注意执行每一个输入行需要打✔
在这里插入图片描述

5.执行

如下图
在这里插入图片描述

在这里插入图片描述

6.结果

在这里插入图片描述
在这里插入图片描述

总结

以上就是今天要讲的内容,这个可以理解是一个嵌套的关系
作业里含了另一个作业,然后让这个作业执行每一个输入行