Kettle作业和参数
1 Job(作业)
- 大多数ETL项目都需要完成各种各样的操作,例如:
- 如何传送文件
- 验证数据库表是否存在,等等
- 而这些操作都是按照一定顺序完成,Kettle中的作业
可以串行执行转换
来处理这些操作。 - 配置作业
Job Item(作业项)
- 作业展示图
作业顺序执行作业项,必须定义一个起点
- 有一个
「start」
的作业项专门用来定义起点 - 一个作业只能定一个开始作业项
Job Hop(作业跳)
- Job Hop是作业项之间的
连接线
,定义了作业的执行路径
,作业里每个作业项的不同运行结果决定了作业的不同执行路径。以下为 Job Hop的几种执行方式:
1、无条件执行
- 不论上一个作业项执行成功还是失败,下一个作业项都会执行
- 蓝色的连接线,上面有一个锁的图标
2、当运行结果为真时执行
- 当上一个作业项的执行结果为真时,执行下一个作业项
通常在需要无错误执行的情况下使用
- 绿色的连接线,上面有一个对钩号的图标。
3、当运行结果为假时执行
- 当上一个作业项的执行结果为假或者没有成功执行时,执行下一个作业项
- 红色的连接线,上面有一个红色的停止图标
作业示例
- 需求:
- 先从 Excel输入.xlsx读取数据,保存到Excel
- 再从 文本文件输入.txt 文本文件中读取数据,保存到Excel
- 启动作业执行
- 执行错误,显示执行错误消息框
- 执行成功,显示执行成功消息框
- 实现步骤:
- 1、设计转换结构1(从Excel读取数据,保存到Excel)
- 2、设计转换结构1(从文本文件中读取数据,保存到Excel)
- 3、设计作业结构(先执行转换结构1、再执行转换结构2)
- 4、运行测试
- 5、错误测试
- 将第一个转换结构直接终止,并配置抛出一个错误
2 参数
参数的使用
- 对于ETL参数传递是一个很重要的环节,因为参数的传递会涉及到业务数据是如何抽取
转换命名参数
- 转换命名参数就是在转换内部定义的变量,作用范围是在转换内部
- 在转换的空白处双击左键,在转换属性中能看到
- 可以在表输入 SQL语句中使用 ${变量名} 或者 %%变量名%% 直接引用
参数示例
- 需求:
- 设置转换命名参数 default_province = 北京市
- 从t_user表中获取数据,满足条件 province=default_province,后续不要执行任何操作
- 实现步骤:
- 1、设计以下转换组件结构图
- 2、配置转换命名参数
- 3、配置表输入组件
- 4、执行转换