第二章 ETL工具 Kettle 中循环传递变量
前言
Kettle 中循环传递变量,在企业中最直接应用就是数仓重跑数据。
CSDN 也看了一些,我这里举一个最简单的示例。
一、新建示例用的表
具体见 我的上一篇,使用的表还是 之前的2张表ods_movies和 movies
本示例的目的是将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.结果
总结
以上就是今天要讲的内容,这个可以理解是一个嵌套的关系
作业里含了另一个作业,然后让这个作业执行每一个输入行