4.1 工作流定义设计
工作流定义中的任务通过有向无环图的形式组装起来,并进行可视化的流程管理。用户可以直接将任务节点拖拽到画布中,通过连线进行任务关联,需要注意的是:
图中的连线与箭头仅代表任务之间的依赖关系以及执行顺序,并不代表任务内部的数据流向;
流程中的任务可以彼此独立不存在任何数据流向的关联,但如果需要更加灵活的指定任务间的数据关联,某些任务节点内部可以支持输入数据/输出数据的配置。
任务定义
任务类型
任务类型分为两种:平台内置任务、插件扩展任务。
平台内置任务支持最基本的SQL任务节点、更加便捷的“DATAFLOW”节点,以及支持复杂调度能力的SUB_PROCESS、DEPENDENT节点等。
核心的数据开发能力:dataset、sql、dataflow、ftp、scd、validation
复杂的调度管理能力:subprocess、dependent
其他常用任务类型:python、shell、spark、http
插件扩展任务提供了灵活的Java SDK,已封装大部分通用逻辑,经过简单的二次开发可实现各种特殊算法来处理数据。
基础属性配置
任何类型的任务节点都可以进行基础属性的配置,不同类型的任务节点还可以进行专有属性的配置。
节点名称:同一个工作流中的任务节点不能重名
运行标志:可以设置该节点是否要参与工作流调度
任务优先级:级别高的任务在执行队列中会优先执行,相同优先级的任务按照先进先出的顺序执行
失败重试:允许任务节点在运行失败后按照指定的频率和次数进行重试
超时限制:可以为任务节点设置超时时限
调度关系
工作流定义内的调度过程支持设置成功调度/失败调度/顺序调度:
成功调度:默认选项,前置节点运行成功后,会按照该调度分支运行后置节点;
失败调度:前置节点运行失败后,会按照该调度分支运行后置节点;
顺序调度:前置节点运行完毕后(无论成功或失败),均会按照该调度分支运行后置节点;