工作流(Workflow)

Workflow是一种数据处理流程自动化管理工具,它通过可视化拖拽方式整合多种类型的子任务节点,便捷地建立任务依赖关系,加速数据处理流程的搭建,有效提升任务开发效率。

背景信息

一个工作空间可以包含多个工作流,一个工作流是多种类型任务节点的集合,节点的类型包括数据集成、MaxCompute、Hologres、EMR等引擎节点(例如MaxCompute SQL节点、MaxCompute Script节点)。

注意事项

工作流(Workflow)仅支持在新版数据开发(Data Studio)中使用。旧版数据开发不支持此功能。

周期工作流与手动工作流

DataWorks提供了周期工作流手动工作流两种,以满足需要周期性调度和无需周期性调度手动触发运行的场景,这两类工作流均可以在数据开发平台(Data Studio)中创建并开发相应的任务节点,然后将工作流发布到运维中心,以便在生产环境中运行,对比区分如下。

对比项

周期工作流

手动工作流

适用场景

这个工作流下的所有数据开发任务节点后续都需要周期性自动运行。

这个工作流下的所有数据开发任务节点后续都需要手动触发运行,无需周期性自动运行。

运行方式

周期性自动运行

手动触发

节点开发配置要点

需要配置周期性调度的参数:如周期性调度的定时时间、工作流及内部任务节点的调度依赖关系等。

由于任务节点是手动触发运行,因此无需配置与周期性调度相关的参数,如父节点的依赖、本节点的输出、定时时间等。

说明

除手动工作流无需配置的这些配置要点外,其他的配置参数与周期工作流的配置完全一致。

创建入口

image

image

周期工作流调度说明

调度依赖

Workflow支持如下依赖关系:

  • 作为一个整体被其他任务(独立TaskWorkflow)依赖。

  • 作为一个整体依赖其他任务(独立TaskWorkflow)。

  • Workflow内部的任务作为独立个体依赖其他任务(独立TaskWorkflow)。

  • Workflow内部的任务作为独立个体被其他任务(独立TaskWorkflow)依赖。

具体依赖关系示例如下:

image

调度配置

  • Workflow内部节点不需要配置调度周期,只需要配置延迟执行时间

  • Workflow内部节点配置的延迟执行时间基于Workflow配置的调度时间计算实际执行时间。

任务状态

周期实例状态:

  • image 未运行

  • image 等待

  • image 运行中

  • image 运行成功

  • image 运行失败

  • image 暂停/冻结实例

Workflow图片

特殊场景说明:

  • Workflow内部存在冻结或暂停实例时,整个Workflow实例将会被置为失败状态。

  • 冻结Workflow任务的补数据实例时,Workflow实例将会被置为成功状态。

  • 补数据场景下判断任务无法执行时,Workflow会被置为失败状态。

  • 实例状态和实际失败事件产生时间存在延迟。

  • 通过归并节点上游是否存在失败情况来判定Workflow是否处于失败状态。

创建工作流

  1. 进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > Data Studio,进入Data Studio。

  2. 创建工作流。

    周期工作流

    数据开发image)中,单击项目目录右侧的image > 新建工作流,然后设置工作流名称,按Enter键进入周期工作流编辑页面。

    说明

    首次使用项目目录时,也可以直接单击新建工作流按钮。

    image

    手动工作流

    手动image)中,单击手动工作流右侧的image > 新建手动工作流,然后设置手动工作流名称,按Enter键进入手动工作流编辑页面。

    image

设计工作流

周期工作流

您可以在工作流编辑页面左侧选择需要的开发组件,拖拽至画布中进行开发,您也可以单击画布中央的拖拽或点击添加节点,创建需要的节点进行开发。

image

假设工作流设计效果如下:

image

进行工作流设计时:

  • 当工作流中节点个数较多时可能会影响实际运行,建议单个工作流下节点总数不要超过100个。

    说明

    工作流中最多创建200个节点。

  • 您可以通过拖拽依赖线的方式设置节点调度依赖。您也可以进入节点的调度配置界面,为节点设置与外部节点的依赖关系。详情请参见调度配置

手动工作流

  1. 在工作流编辑页面顶部单击新建内部节点,选择需要的开发组件,设置组件名称,对应组件即会出现在画布中。

    image

  2. 按需规划工作流,假设工作流设计效果如下:

    说明

    手动工作流默认横向展示,您可以单击画布右上角的imageimage,切换展示效果。

    image

    进行工作流设计时,当工作流中节点个数较多时可能会影响实际运行,建议单个工作流下节点总数不要超过100个,工作流中最多创建200个节点。

开发业务逻辑

DataWorks将引擎能力进行封装,您可以基于引擎节点进行数据开发,无需接触复杂的引擎命令行,同时您也可以结合平台提供的通用类型节点进行复杂逻辑处理。

在工作流内,您可以基于同步和引擎计算节点等进行具体的工作流开发。

周期工作流

  • 您可以打开同步节点,配置同步的数据来源和去向,将某个数据库的数据同步到另一个数据库。image

    image

  • 您可以打开某个数据开发节点(例如MaxCompute SQL节点),进行具体的数据清洗工作,在代码开发过程中,如果需要使用特定资源或函数,DataWorks提供了可视化的方式创建资源节点和函数节点。数据开发的更多细节,请参见创建任务节点,创建资源和函数,请参见资源管理

    image

    image

说明
  • 目前DataWorks对引擎能力的封装、产品层面对开发能力的支持情况请参见Data Studio概述

  • 节点的调度依赖,调度属性相关配置请参见调度配置

手动工作流

  • 您可以编辑同步节点,配置同步的数据来源和去向,将某个数据库的数据同步到另一个数据库。

    image

    image

  • 您可以打开某个数据开发节点,进行具体的数据清洗工作,例如MaxCompute SQL节点,如果代码开发过程中需要用到资源或函数,DataWorks也支持您通过可视化的方式来创建资源节点和函数节点。数据开发的更多细节,请参见创建任务节点,创建资源和函数,请参见资源管理

    image

    image

说明

目前DataWorks对引擎能力的封装、产品层面对开发能力的支持情况请参见Data Studio概述

发布工作流

标准模式工作空间下,数据开发界面仅作为任务节点的开发与测试页面,如果您需要将代码发布到生产环境,您可以直接发布该工作流,从而批量发布该工作流下的节点。

周期工作流

  1. 依次进入工作流的各个节点,设置调试配置的相关参数,然后测试运行。

  2. 各节点测试成功后,您需要为每个节点设置调度配置的相关参数,然后单击工作流顶部的发布

    说明

    调度配置的更多信息,请参见调度配置

  3. 在发布流程中,依次完成发布包构建开发检查器发布到开发环境生产检查器发布到生产环境步骤。

    image

    说明

    任务节点发布更多信息,请参见节点发布

手动工作流

  1. 单击手动工作流顶部的运行,进入工作流运行页面,测试各节点运行是否成功。

    image

  2. 在工作流运行页面,单击顶部的返回工作流,然后单击发布。在发布流程中,依次完成发布包构建开发检查器发布到开发环境生产检查器发布到生产环境步骤。

    image

    说明

    任务节点发布更多信息,请参见节点发布

其他操作

补数据及运维

工作流发布后,您可以在发布流程中单击补数据去运维image

  • 补数据:周期任务开发完成并发布后,任务节点会按照调度配置定时运行。如果您希望补录历史或未来一段时间的数据,写入数据至对应时间分区,可使用补数据功能。更多信息,请参见执行补数据并查看补数据实例(新版)

  • 去运维:当您在Data Studio中完成任务节点开发,并发布至生产环境后,即可在运维中心对任务进行运维操作,包括周期调度任务的自动调度与手动运行、任务运行详情查看、任务运行状态监控、任务运行使用的资源监控与自动运维;实时任务的执行管控、运行详情查看与监控报警配置;调度任务运维大屏以及数据集成离线同步与实时同步任务运维专页,针对任务运维关键指标的查看。更多信息,请参见运维中心概述

下线工作流

如果您希望从生产环境和开发环境下线工作流,则可以单击image进入下线流程。

重要

下线操作会下线整个工作流以及归属于这个工作流的所有任务节点。

image

发布历史

您可以单击image查看工作流的发布历史。

image