kettle从入门到精通 第114课 ETL之webspoon 全局异常/错误捕获
场景:之前在kettle社群里面有看到这样一个job,一个job中有很多作业项,每个作业项执行失败之后都会自动发送邮件通知。当我看到这个设计之后,第一时间的反应是:kettle肯定存在统一异常或者统一错误处理机制。好,今天咱们一起来学习下。

1、基于webspoon设计子转换t1_error
1)生成记录,生成模拟数据驱动流程,里面只有msg字段。

2)写日志,在写日志步骤里面故意写一个msg1字段,此字段生成记录步骤里面不存在,所以一定会报错。

2、设计subjob,调用转换t1_error
1)转换,使用该步骤调用子转换t1_error

2)发送邮件,将转换和发送邮件两个步骤连起来,并且设置 连线的类型为红色叉号,红色叉号表示可以将转换步骤发生的错误信息通过邮件发送给用户。

3)运行subjob,webspoon日志里面显示错误信息,同时也将错误信息发送给用户。

4)邮箱收到错误信息
从收到有的邮件信息可以清楚的看到哪个转换发生了异常,该转换步骤errors=1,result=false,表示出现了异常。


3、设计父job
1)将subjob中的发送邮件去掉

2)设计父job
作业步骤调用subjob
该job中添加发送邮件,用来捕获作业项产生的错误信息。

3)运行父job
从邮件内容来看,父job中的作业可以捕获到subjob发生的错误信息。


写到最后
从上述demo中可以得知,kettle可以使用转换或者作业+发送邮件来进行统一捕获异常或者错误信息。另外如果subjob中已经捕获过异常的话,父job是捕获不到的。
另外疑惑的一个地方是:无论subjob还是父job捕获的异常里面都没有子转换的错误信息,有知道的小伙伴可以评论区留言探讨。

浙公网安备 33010602011771号