工作流是通过拖拽任务节点并建立任务节点之间的关联来创建可视化的DAG(有向无环图)。如果您需要安排任务在指定的时间运行,可以创建工作流并在工作流中定义调度节点以及调度策略。本文为您介绍如何创建和运行工作流。
使用限制
仅已部署的批作业支持创建工作流进行任务调度。
任务编排目前为公测功能,公测阶段不保障服务等级协议SLA,详情请参见实时计算Flink版服务等级协议(SLA)。如果您在使用过程中遇到相关问题,可以提交工单。
仅华东2(上海)、华东1(杭州)、华北2(北京)、华南1(深圳)、华北3(张家口),以及新加坡地域支持任务编排功能。
创建工作流
登录实时计算控制台。
单击目标工作空间操作列下的控制台。
在左侧导航栏,单击
。单击创建工作流,填写如下信息。
参数
描述
工作流名称
工作流名称在当前项目中必须保持唯一。
变量配置
支持按预设值进行数据计算。
参数名:自定义变量名,例如:
${date}
。参数值:静态日期值、时间格式、表达式均可,详情请参考自定义参数取值差异对比。
支持以下系统时间变量的配置:
参数名
system.biz.date
,参数值${system.biz.date}
,表示每日调度实例的计划时间前一天,其格式为yyyyMMdd
。参数名
system.biz.curdate
,参数值${system.biz.curdate}
,表示每日调度实例的计划时间,包含年月日,其格式为yyyyMMdd
。参数名
system.datetime
,参数值${system.datetime}
,表示每日调度实例的计划时间,包含年月日时分秒,其格式为yyyyMMddHHmmss
。
说明参数作用范围在所有节点关联的作业均生效,工作流级配置优先级高于作业配置。
调度类型
支持两种调度类型:
手动触发:只能通过手动单击触发运行工作流,触发一次运行一次。
周期调度:根据调度器规则触发工作流运行,支持按分钟、小时、天等定时运行。
调度周期
仅周期调度类型需要设置。支持使用Cron表达式设置复杂规则,示例如下:
0 0 */4 ? * *
:每隔4小时执行。0 0 2 ? * *
:每天2点执行。0 0 5,17 ? * MON-FRI
:周一至周五5点和17点执行。
调度开始时间
生效时间点。仅周期调度类型需要设置。
重要周期调度工作流创建后,需要将调度状态开启,才能在生效时间点触发运行。
失败重试次数
为工作流中的节点统一设置失败重试的次数,默认失败不重试。
失败通知
工作流节点失败时默认的通知邮箱。
说明支持通过云监控进行钉钉、短信等方式告警,详情请参见云监控。
资源队列
工作流的部署目标,详情请参见管理资源队列。默认对节点生效,无需对节点做额外配置。
说明此处的配置不会修改对应已部署批作业的部署目标。
标签
可以选择为工作流设置标签名和标签值。
单击创建。
创建后会进入工作流节点编辑页面。
配置工作流初始节点。
工作流节点编辑页面默认存在一个初始节点,单击初始节点,在弹出的编辑节点面板中,配置节点相关参数,单击保存。
参数
说明
作业
仅支持选择当前项目空间下的已部署批作业。支持模糊搜索方式搜索添加。
节点名称
节点在当前工作流中的名称。
变量配置
支持按预设值进行数据计算。
参数名:自定义变量名,例如:
${date}
。参数值:静态日期值、时间格式、表达式均可,详情请参考自定义参数取值差异对比。
支持以下系统时间变量的配置:
参数名
system.biz.date
,参数值${system.biz.date}
,表示每日调度实例的计划时间前一天,其格式为yyyyMMdd
。参数名
system.biz.curdate
,参数值${system.biz.curdate}
,表示每日调度实例的计划时间,包含年月日,其格式为yyyyMMdd
。参数名
system.datetime
,参数值${system.datetime}
,表示每日调度实例的计划时间,包含年月日时分秒,其格式为yyyyMMddHHmmss
。
说明作业中未定义的变量默认在本节点级进行解析,并展示在变量配置中,已配置参数名和参数值的直接展示,只有参数名没有参数值的,需要填写参数值。
工作流节点参数优先级高于工作流级。
上游节点
当前节点的上游依赖,仅能选择当前工作流中的其他节点。
说明初始节点无上游依赖,不支持选择上游节点。
失败重试次数
为工作流中的节点设置失败重试的次数。默认与工作流重试次数一致,如设置则节点优先级高。
状态订阅
配置节点状态订阅策略及通知邮箱,支持启动和失败状态订阅。
超时时间
节点执行时间超时时长,超过该时间则认为节点运行失败。
资源队列
节点的部署目标,详情请参见管理资源队列。不填写时默认使用工作流配置的资源队列。
说明此处的配置不会修改对应已部署批作业的部署目标。
标签
可以选择为工作流节点设置标签名和标签值。
(可选)单击页面下方的添加节点来添加更多节点。
保存工作流相关配置。
单击节点编辑页面右上方的保存。
在弹出的对话框中,单击确定。
运行工作流
每运行一次工作流,在工作流详情页面的工作流实例列表与详情页签都会产生一个工作流实例。
手动触发
单击目标工作流操作列下的触发运行,每单击触发一次工作流即运行一次。
周期调度
需要将目标工作流的调度状态开启,才能在生效时间点触发工作流运行。
工作流状态
您可以在目标工作流的运行状态列,查看该工作流运行的所有工作流实例的运行状态。例如,一个工作流每天运行一次,运行5天,则产生5条工作流实例,运行状态列为这5条工作流实例的运行状况数量统计。
状态 | 说明 |
紫色 | 排队中 |
蓝色 | 运行中 |
绿色 | 运行成功 |
红色 | 运行失败 |
编辑工作流
相关文档
任务编排的相关基本概念,详情请参见任务编排(公测)。
查看工作流实例、节点日志等,详情请参见管理工作流实例和节点实例。
您可以通过添加资源队列进行资源隔离和管理,详情请参见管理资源队列。
批作业(SQL、JAR、Python)部署,具体操作请参见部署作业。
批作业开启远程Shuffle服务,Shuffle数据将存储到高性能的Apache Celeborn集群中,作业不再受限于Flink计算节点的磁盘容量,从而增强超大规模数据的处理能力,同时保持作业的高稳定性和成本效益,详情请参见批作业开启远程Shuffle服务(公测)。