本章讲解的作业和参数有如下几个案例
01 作业
02 参数
03 表输入参数传递-常量传递
04 表输入参数传递-变量传递-转换命名参数
05 表输入参数传递-变量传递-转换内设置变量和获取变量
06 表输入参数传递-变量传递-作业里设置变量
07 发送邮件
1.作业
作业简介
大多数ETL项目都需要完成各种各样的维护工作。
例如,如何传送文件;验证数据库表是否存在,等等。而这些操作都是按照一定顺序完成。因为转换以并行方式执行,就需要一个可以串行执行的作业来处理这些操作。
一个作业包含一个或者多个作业项,这些作业项以某种顺序来执行。作业执行顺序由作业项之间的跳(job hop)和每个作业项的执行结果来决定。

作业项
作业项是作业的基本构成部分。如同转换的步骤,作业项也可以使用图标的方式图形化展示。
但是,如果你再仔细观察,还是会发现作业项有一些地方不同于步骤:
在作业项之间可以传递一个结果对象(result object)。这个结果对象里面包含了数据行,它们不是以数据流的方式来传递的。而是等待一个作业项执行完了,再传递个下一个作业项。
因为作业顺序执行作业项,所以必须定义一个起点。有一个叫“开始”的作业项就定义了这个点。一个作业只能定一个开始作业项。
作业跳
作业的跳是作业项之间的连接线,他定义了作业的执行路径。作业里每个作业项的不同运行结果决定了做作业的不同执行路径。
①无条件执行:不论上一个作业项执行成功还是失败,下一个作业项都会执行。这是一种蓝色的连接线,上面有一个锁的图标。
②当运行结果为真时执行:当上一个作业项的执行结果为真时,执行下一个作业项。通常在需要无错误执行的情况下使用。这是一种绿色的连接线,上面有一个对钩号的图标。
③当运行结果为假时执行:当上一个作业项的执行结果为假或者没有成功执行是,执行下一个作业项。这是一种红色的连接线,上面有一个红色的停止图标。
在图标上单击就可以对跳进行设置。
作业

通用




案例:
先从Excel读取数据,保存到Excel,再从文本文件中读取数据保存到Excel,如果产生错误就发送邮件,并且停止作业,如果成功发送成功邮件
分析:
作业:开始,转换1,转化2,发送邮件,停止
转换1:
输入:Excel输入
输出:Excel输出
转换2:
输入:文本文件输入
输出:Excel输出

2.参数
简介
1.对于ETL参数传递是一个很重要的环节,因为参数的传递会涉及到业务数据是如何抽取。
2.参数分为两种:全局参数和局部参数。
全局参数
1.全局参数定义是通过当前用户下.kettle文件夹中的kettle.properties文件来定义。
2.定义方式是采用键=值对方式来定,如:start_date=20130101
注:在配置全局变量时需要重启Kettle才会生效。
局部参数
局部参数变量是通过“Set Variables”与“Get Variables”方式来设置。
注:在“Set Variables”时在当前转换当中是不能马上使用,需要在作业中的下一步骤中使用。
参数的使用
Kettle中参数使用方法有两种:一种是%%变量名%%,一种是${变量名}。
注:在SQL中使用变量时需要把“是否替换变量”勾选上,否则无法使变量生效。
案例:
从kettle.properties文件中读取STARTROW和PAGESIZE参数,从t_orders表中获取数据数据,使用参数传递

分析:
①编辑.kettle目录下的kettle.properites文件,输入key=value
输入:表输入
输出:文本文件输出
②重启,运行看效果

3.常量传递
简介
- 常量传递就是先自定义常量数据,在表输入的SQL语句里面使用?来替换。
- ?号的替换顺序就是常量定义的顺序。
案例:
自定义常量数据id1=10和id2=3,从t_users表中获取数据,满足条件id<id1和id>id2,后续不要只想任何操作
分析:
输入:自定义常量数据、表输入
流程:空操作

4.转换命名参数
1.转换命名参数就是在转换内部定义的变量,作用范围是在转换内部。
2.在转换的空白处右键,选择转换设置就可以看见。

案例:
设置转换命名参数id1=10和id2=3,从t_users表中获取数据,满足条件id<id1和id>id2,后续不要只想任何操作
分析:
输入:表输入
流程:空操作

5.设置变量-获取变量
简介
在转换里面有一个作业分类,里面有设置变量和获取变量的步骤。
注意:“获取变量”时在当前转换当中是不能马上使用,需要在作业中的下一步骤中使用!

设置变量




获取变量



案例:
在一个转换里面设置变量id1和id2,在另外一个转换里面获取变量id1和id2, 从t_users表中获取数据,满足条件id<id1和id>id2,把数据输出到Excel。
分析:
作业:start、转换
转换:
设置变量
获取变量、表输入、Excel输出

6.设置变量
简介
变量可以在转换里面设置,也可以在作业里面设置。

设置变量



案例:
在作业里面设置变量id1和id2,在转换以两种不同的方式进行变量替换:
①先获取变量,再进行步骤替换
②直接变量替换
都是从t_users表中获取数据,满足条件id<id1和id>id2,把数据输出到Excel。
分析:
作业:start、设置变量、转换
转换:
获取变量、表输入、Excel输出
表输入、Excel输出

7.发送邮件
发送邮件就是执行成功、失败、其它某种情景给相关人员发送邮件。
注意:
只有企业邮箱才可以!个人邮箱不行!
并且需要在邮件设置中开通客户端授权码!
发送邮件




案例:发送一封邮件
分析:
应用:发送邮件

网友评论