Kettle作业
1. 作业简介
ᅟᅠᅟᅠ大多数ETL项目都需要各种各样的维护工作。例如如何传送文件;验证数据库表是否存在等。而这些操作都是按照一定的顺序完成。因为转换以并行方式执行,就需要一个可以串行执行的作业来处理这些操作。
ᅟᅠᅟᅠ一个作业包含一个或者多个作业项,这些作业项以某种顺序执行(串行执行)。作业执行顺序由作业项之间的跳(job hop)和每个作业项的执行结果来决定。
2. 作业项
作业项是作业的基本构成部分。如同转换的步骤,作业项也可以使用图标的方式图形化展示。但是,作业项和转换步骤有以下几点不同:
- 转换步骤与步骤之间是数据流,作业项之间是步骤流
- 转换启动后,所有步骤一起并行启动等待数据行的输入,而作业项是严格按照执行顺序启动,一个作业项执行完成以后,再执行下一个作业项。
- 在作业项之间可以传递一个结果对象(result object)。这个结果对象里面包含了数据行,他们不是以数据流的方式来传递的。而是等待一个作业项完了,再传递下一个作业项。
因为作业顺序执行作业项,所以必须定义一个起点。有一个叫"开始"的作业项就定义了这个点。一个作业只能定义一个开始作业项。
3. 作业跳
作业的跳是作业项之间的连接线,它定义了作业的执行路径。作业里每个作业项的不同运行结果决定了做作业的不同执行路径。作业跳一共分为以下三种情况:
- 无条件执行:不论上一个作业项是否执行成功或失败,下一个作业项都会执行。这是一种蓝色的连接线,上面有一个锁的图标
- 当运行结果为真时执行:当上一个作业项的执行结果为真时,执行下一个作业项。通常在无错误执行的情况下使用。这是一种绿色的连接线,上面有一个对钩号的图标。
- 当运行结果为假时执行:当上一个作业项的执行结果为假或者没有成功执行时,执行下一个作业项。这是一种红色的线,上面有一个红色停止图标。