1. 概述
ETL任务流用于完成ETL任务的前驱后继关系和调度顺序的定义。本文通过一个简单示例讲解如何创建ETL任务流。
2. 制作步骤
2.1新建ETL任务流
这里我们已经创建好了命名为【个人周报】和【员工请假】的ETL任务,现需要新建一个ETL任务流来完成【个人周报】和【员工请假】两个ETL任务的依次执行。
在【调度平台】下,打开到【任务流定义】,点击【新建】,创建ETL任务流。
或者在左侧资源树中【任务流定义】节点上的【新建任务流】。
2.2设计任务执行顺序
1)添加任务组件
选择左侧组件面板中的【ETL任务】组件,拖到右侧编辑区。
2)连接任务组件
鼠标悬浮到前置任务组件中间位置,会出现一个黄色箭头的圆点,并且鼠标会由指针变为手状,鼠标拖动这个圆点向右移动,这时黄色箭头也会跟着向右移动,然后将鼠标落在需要连接的组件中央,松开鼠标即可完成两个任务组件的连接。如下图所示:
拖动组件靠近另一个组件时也会自动创建两个组件之间的连线。
3)设置任务组件
双击已添加的任务组件,在弹出的【ETL任务】属性窗口中选择个人周报,如下图:
再添加一个ETL任务组件作为【个人周报】组件的后置组件,选择【员工请假】ETL任务,如下图所示:
4)设置执行逻辑
对于连接的两个任务组件,默认是前置组件执行成功后再执行后置组件,前置组件执行失败,则后置组件不会执行。也可以进行设置,在连接线上右键可设置执行逻辑。
- 无条件执行:不管前面的组件是否执行成功,后面这个组件都会执行。
- 当结果为真的时候继续下一步:前面的组件执行成功后后面的组件才会执行,前面的组件如果执行失败,则后面的组件不会执行。
- 当结果为假的时候继续下一步:前面的组件执行失败后后面的组件才会执行。
这里,我们不做修改,就采用默认的当结果为真的时候继续下一步。
2.3检查ETL任务流
组件设置连接完成后,点击菜单栏中的检查按钮,系统会对ETL任务流进行语法检查。在点击发布按钮时系统也会先执行检查,当检查不通过时不允许发布。
当检查不通过时,会在编辑区下方的【检查消息】区内输出异常设置信息,如下图:
根据检查消息对组件设置进行修正,直至检查通过。
2.4保存ETL任务流
点击菜单栏【保存】按钮,在弹出的保存对话框中设置ETL任务流的名称和标题即可完成保存,如下图:
至此,一个ETL任务流创建完成。
3. 多任务串行或并行
3.1串行
所谓串行是指一个任务执行完后在执行另一个任务,同时只有一个任务在执行。例如上面制作完成的“个人周报和员工请假ETL任务流”就是一个串行的例子,个人周报抽取执行完成后在执行员工请假抽取。
3.2并行
当任务之间没有依赖关系时,我们可以使用并行加快抽取速度。所谓并行是由某一任务出发,形成多个分支链路,多个分支之间同时执行。
由上述设置,以下3条链路并行执行(同时执行):
(1) 交换任务1 – 交换任务2
(2) 数据抽取1 – 数据抽取2
(3) 任务1 – 任务2
各分支链路内部是串行执行,如:“交换任务1”执行完成后,再继续执行“交换任务2”,同理,“数据抽取1”执行完后再执行“数据抽取2”。
4.批量新建任务流
在任务流定义页面,操作栏中新增了一个批量新建的按钮。
点击”批量新建“,弹出”批量新建任务流“属性框,选择新建任务流方式有两种,一种是多个任务”新建为一个任务流“, 另一种是多个任务”批量新建为多个任务流“。前者需要设置各个任务之间的关系,包括运行关系和依赖关系。本示例选择"新建为一个任务流”,设置任务流之间的关系为串行,任务之间的依赖关系为”当前面ETL执行成功继续下一步”,任务流标题自定义,点击下一步。
多个任务批量新建为一个任务流:
下一步就需要我们选择任务流所需要的任务,在这里我们选择了3个ETL任务。
点击下一步,任务流就创建完成了。
在任务流编辑页面可发现,所选择的三个任务之间的关系是串联关系。
这样多个任务批量新建一个任务流就的操作完成。
多个任务批量新建为多个任务流:
在任务流定义页面,点击批量新建按钮,新建方式选择批量新建多个任务流。
批量新建为多个任务流,仅需设置新建任务流的标题,以及任务流存放的路径即可。其中任务流标题中<#=ETL_NAME#>为对应的任务名称,支持添加前后缀。此处我们添加了_PLXJ的后缀。任务流存储路径为批量新建的分组下。
点击下一步,选择我们任务流中所需要的任务。
点击下一步,3个带_PLXJ后缀的任务流新建成功。进入对应的分组下查看。
这样批量新建多个任务流的操作就完成了。
请先登录