kettle从入门到精通 第六十课 ETL之kettle for循环处理每条数据,so easy!
1、kettle原生是支持for循环处理的,无需通过javascript脚本或者java脚本开发for循环控制。当然如果想通过脚本挑战下也是可以的。
本节课主要讲解如何通过kettle中的job来实现for循环控制,如下图所示:
1)步骤【设置变量】设置单个job级别的变量。
2)步骤【转换】加载数据集清单列表,返回一个dataList。
3)步骤【转换】处理当条数据,此步骤也是今天要讲解的重点步骤。
2、步骤【转换】处理当条数据,要想循环处理list中的每一条数据,一定要勾选“执行每一个输入行”,如下图所示:
3、步骤【设置变量】这一步根据业务场景可以选择是否添加,如果后面两个步骤都需要用到变量的话,可以添加设置变量。
4、加载数据清单子转换如下,通过自定义常量步骤生成两条数据,复制纪录到结果可以将结果传递到下个步骤。
5、单条处理子转换如下,通过自定义常量步骤生成两条数据,从结果获取纪录可以将上一步结果传递到当前步骤。
6、不通过job,单独通过转换也可以实现for循环控制,如下图所示:
7、转换和job中的单条处理设置大同小异,转换时设置Row grouping中的Number of rows to send transformation为1。
留个悬念:这个参数也会涉及到性能调优,大家可以尝试下,欢迎评论区讨论。