前言:
昨天我们讲了java脚本,我们通过java脚本执行了类似JavaScript脚本获取日期年、月、日的处理。今天我们来讲kettle中的一个大项-作业来结束2022年kettle教程的编写,2023年我会继续坚持每日更新。
一、作业
大多数ETL项目都需要完成各种各样的维护工作。 例如,如何传送文件;验证数据库表是否存在,等等。而这些操作都是按照一定顺序完成。因为转换以并行方式执行,就需要一个可以串行执行的作业来处理这些操作。
一个作业包含一个或多个作业项,这些作业项以某种顺序来执行。作业执行顺序由作业项之间的跳(job hop)和每个作业项的执行结果来决定。如下图所示的作业,我们从START开始,传送数据,当我们传送数据成功后我们就加载维度表,但当我们传送数据失败后,我们就会发送错误邮件并结束这个作业。同样的加载维度表成功后,我们继续执行加载事实表。
作业项的介绍图下图所示,即作业的基本构成部分。
作业跳是作业项之间的连接线,有三种不同的状态,一个为无条件执行,一个是当结果为True的时候才执行,一个是当结果为False的执行才执行。
二、任务
为了方便大家理解,我们可以执行一个作业案例,从Excel读取数据,保存到Excel,再从文本文件中读取数据保存到Excel,如果产生错误就发送邮件,并且停止作业,如果成功发送成功邮件。
最终我们的作业包括转换1和转换2及对应成功和失败后的处理操作,如成功后发送邮件,错误后发送错误邮件,并终止作业。其中转换1为从Excel读取数据输出至Excel,转换2从文本文件读取数据并输出至Excel。
运行转换后,我们从日志中就可以看到整个作业的执行流程。