自我介绍:
大家好!我是Java小金刚,在互联网金融行业打拼了10年的老兵。如果你对Java编程、互联网金融、大数据以及软件开发领域感兴趣,那么快来关注我,让我带你领略最新最炙手可热的技术动态和经验分享。
场景:我们在使用kettle的过程中知道kettle的基础调度功能非常弱,更没有所谓的依赖链调度,这里的依赖链调度为:B任务依赖A任务,A任务执行完毕之后自动触发B任务。
今天我们一起来学习下使用XKG-PDI系统来搞定kettle的依赖链调度。
1、使用在线编辑创建作业1
1)数据开发-》在线设计,点击新建设计按钮创建作业,目前类型支持作业和转换两种。

2)设计作业1
使用在先编辑拖拉拽设计作业1,使用开始、转换、成功三个步骤,转换步骤嵌套子转换1

3)数据开发-》在线设计,点击新建设计按钮创建转换1

4)设计转换1
使用在先编辑拖拉拽设计转换1,使用生成记录、写日志两个步骤,作业1调用转换1

5)参考作业1和转换1新建作业2和转换2,具体步骤忽略。
2、作业调度配置
1)创建作业2的调度任务,作业2_task

2)执行方式选择spoon和kettle执行路径,这里选择的是kettle9.5

3)创建作业1_task和作业2_task,如下图所示:

4)作业2_task,点击后面的更多,然后选择依赖分析进行设置依赖关系

5)任务依赖分析
点击配置依赖按钮,选择依赖task或者上有task,这里选择作业1_task,然后点击添加上游按钮
触发窗口:上一个任务执行结束转换多久后出发本任务,这里设置为1分钟
点击保存依赖按钮保存配置结果。

6)保存依赖之后或者重新打开依赖分析可以看到任务的依赖关系

7)点击作业1的依赖分析,可以查看作业1_task的下游任务。

8)点击链路图,可以查看依赖链路图,右键具体的task后会有更加nice的操作,媲美azkaban。

9)设置依赖之后,在作业调度列表可以看到关联标记。

3、作业调度触发
1)这了为了演示方便,我选择手动调度一次,可以单个触发,也可以触发多个task,这里我触发的作业1_task.

2)触发任务之后,我们调度中心-作业监控里面已经可以看到任务运行的记录,任务名称绿色展示时表示两个任务都执行成功。红色表示失败。

3)仔细观察两个任务的开始和执行时间,确定依赖的task的执行顺序是正确的。

4)不同任务的执行方式调整为spoon、java、carte三种之后,都可以正常按照依赖关系触发。

今天先写到这里了,下期咱们继续学习XKG-PDI中的DAG调度。