文档

数据开发概述

更新时间:

DataWorks数据开发(DataStudio)模块用于定义周期调度任务的开发及调度属性,与运维中心配合使用,面向各引擎(MaxCompute、Hologres、EMR等)提供可视化开发主界面,支持智能代码开发、多引擎混编工作流、规范化任务发布等能力,帮助您轻松构建离线数仓、实时数仓与即席分析系统,保证数据生产的高效稳定。

进入数据开发

登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

数据开发主要功能

数据开发(DataStudio)的主要功能介绍如下。您可参考数据开发相关概念辅助理解。数据开发功能

类型

描述

对象组织及管理

DataWorks数据开发提供的对象组织与管理机制如下:

  • 对象组织:提供解决方案 > 业务流程两级管理模式。DataWorks基于业务流程提供目录树与可视化面板两种对象组织方式。您可通过目录树创建所需对象,或使用业务流程可视化面板拖拽组件,快速构建数据加工流,并支持通过解决方案对业务流程进行进一步的管理。

  • 对象管理:支持使用可视化方式创建及管理节点、表、资源及函数。

更多详情请参见创建业务流程任务组织与管理方式

说明

在数据开发(DataStudio)中,每个工作空间支持创建的业务流程及对象数量限制如下:

  • 业务流程:最多支持创建1W个。

  • 对象(节点、文件、表、资源及函数):保有DataWorks企业版的用户,支持创建的对象数量上限为20W;保有DataWorks专业版、标准版及基础版的用户,支持创建的对象数量上限为10W

若当前工作空间的业务流程及对象数量达到上限,您将无法再执行新建操作。

任务开发

  • 能力更丰富:

    • 提供丰富的引擎节点,对引擎能力进行全面封装。

    • 提供通用类节点,可结合引擎节点进行复杂逻辑处理。例如,外部系统触发调度,文件对象检查、条件分支、循环执行代码、输出结果传递等复杂流程控制。

  • 操作更简单:

    • 提供业务流程可视化开发机制,可通过拖拽组件方式快速实现多引擎任务的混合编排。

    • 提供智能化的SQL编辑器。使用SQL编辑器时,提供智能提示、SQL算子结构可视化展示、权限校验等功能。

DataWorks支持的节点类型,详情请参见DataWorks节点合集

任务调度

  • 触发方式:支持外部系统触发、事件触发、以及通过内部血缘解析上游触发任务调度运行。

  • 依赖类型:支持设置同周期与跨周期依赖,以及多种调度周期、不同类型任务的相互依赖。

  • 执行控制:支持设置任务是否重跑;支持通过上游任务控制下游整体调度时间;支持设置调度任务的生效日期;支持定义任务的调度类型。例如,空跑(即不执行且不阻塞下游任务调度);冻结(不执行并阻塞下游任务调度)。

  • 幂等保障:提供任务重跑机制,支持自定义重跑条件与重跑次数。

更多调度相关说明,详情请参见时间属性配置说明调度依赖配置指引

任务调试

提供单任务调试机制与基于业务流程的工作流调试机制。详情请参见任务调试流程

流程管控

提供规范化任务发布机制,及多种方式的流程管控机制。包括但不限于以下场景:

  • 提供任务发布前人工评审代码(代码评审),与冒烟测试,并支持阻塞发布存在问题的生产调度流程。

  • 支持结合数据治理的治理项检查、扩展程序自定义校验逻辑等方式,对任务提交及发布生产调度的操作进行自定义且自动化的流程管控。

其他

  • 开放能力:结合开放平台提供丰富的OpenAPI,并内置大量扩展点,可通过DataWorks开放平台实现DataWorks数据开发相关事件消息的订阅。

  • 权限控制:支持界面功能权限及数据访问权限控制。详情请参见空间级模块权限管控

  • 查看操作记录:DataWorks集成阿里云操作审计(ActionTrail)产品,您可在ActionTrail中查看及检索阿里云账号最近在DataWorks上的操作行为事件日志。详情请参见查看数据开发操作记录

数据开发界面认识

您可通过数据开发功能索引了解数据开发操作界面,以及各模块功能如何使用。

任务开发流程

DataWorks数据开发支持创建多种类型引擎的实时同步任务、离线调度任务(包括离线同步任务、离线加工任务)、手动触发任务。其中,数据同步相关能力您可前往数据集成模块了解;实际开发调度任务时,不同引擎任务的配置要求存在差异,您需先了解不同引擎基于DataWorks开发的注意事项及相关说明,再根据待开发的任务类型开始数据开发工作。

  • 各引擎开发说明:DataWorks支持创建各种数据源并进行引擎开发任务,不同引擎任务所需的配置存在差异,其中主要引擎任务的开发说明请参见:

  • 通用开发流程:DataWorks的工作空间分为标准模式和简单模式,不同模式工作空间下调度任务的开发流程存在一定差异,具体如下。

    标准模式工作空间开发流程。标准模式工作空间开发流程

    简单模式工作空间开发流程。简单模式工作空间开发流程

    • 基本流程:以标准模式为例,调度任务的开发流程包括开发、调试、调度配置、提交、发布、运维等阶段。其中,任务开发的通用开发流程,请参见通用开发流程

    • 流程管控:任务在开发过程可结合数据开发(DataStudio)自带的代码评审冒烟测试等功能,以及数据治理中心预设的检查项、开放平台基于扩展程序实现自定义逻辑校验等功能,保障开发任务符合规范。

      说明

      不同工作空间模式涉及的流程管控操作存在差异,具体请以实际管控功能为准。

任务组织与管理方式

DataWorks数据开发的业务流程是具体代码开发、资源组织的单位,是业务的抽象实体,帮助您使用业务视角来组织数据代码开发。工作空间之间的业务流程、任务节点为独立开发,互不影响。更多关于业务流程的使用,详情请参见创建业务流程

业务流程的呈现包括目录树及操作面板两种方式,帮助您基于业务视角组织代码,使得资源类别更明确,业务逻辑更清晰。

  • 目录树结构:提供基于任务类型的代码组织方式。

  • 业务流程面板:提供流程化的业务逻辑展现方式。

开发组织结构

附录:数据开发支持的节点合集

DataWorks的数据开发(DataStudio)模块提供了多种类型节点,同时,多种类型节点支持周期性任务调度,您可基于业务需要选择合适的节点进行相关开发操作。DataWorks支持的节点合集,详情请参见DataWorks节点合集

附录:数据开发相关概念

  • 任务开发相关。

    概念

    描述

    解决方案

    业务流程的集合。您可将一类业务流程划分为一个解决方案进行统筹管理。一个业务流程可被多个解决方案复用。进行数据开发时,其他用户可在其它解决方案中,直接编辑您解决方案中引用的业务流程,进行协同开发。

    业务流程

    面向某一特定业务需求的任务、表、资源、函数的集合,业务的抽象实体。该类业务流程中的任务可按计划定时触发运行。

    手动业务流程

    面向某一特定业务需求的任务、表、资源、函数的集合。

    手动业务流程与业务流程的区别为:手动业务流程中的任务需手动触发运行,而业务流程中的任务是按计划来定时触发运行。

    DAG

    英文Directed Acyclic Graph的缩写,即有向无环图。用于展示节点及其依赖关系。在数据开发(DataStudio)中,业务流程下的所有任务会展示在同一个DAG中,方便您进行任务开发及依赖关系配置。

    任务

    任务是DataWorks的基本执行单元。DataWorks根据任务间的依赖关系依次执行各个任务。

    节点

    节点用于指代DAG中的一个任务。DataWorks根据节点间的依赖关系依次运行各个节点。

  • 任务调度相关。

    概念

    描述

    依赖关系

    任务间通过依赖关系定义任务的运行顺序。如果节点A运行后,节点B才能运行,我们称A是B的上游依赖,或者B依赖A。在DAG中,依赖关系用节点间的箭头表示。

    输出名

    用于区分本节点与其他节点的标识符。输出名全局唯一,一个节点可包含多个输出名。DataWorks通过输出名设置节点调度依赖关系。

    输出表名

    输出表名建议配置为当前任务的产出表,正确填写输出表名可以方便下游设置依赖时确认数据是否来自期望的上游表。自动解析生成输出表名时不建议手动修改,输出表名仅作为标识,修改输出表名不会影响SQL脚本实际产出的表名,实际产出表名以SQL逻辑为准。

    说明

    节点的输出名需要全局唯一,而输出表名无此限制。

    调度资源组

    指用于任务调度的资源组。资源组介绍详情请参见DataWorks资源组概述

    调度参数

    调度参数是代码中用于调度运行时动态取值的变量。代码在重复运行时若希望获取到运行环境的一些信息,例如日期、时间等,可根据DataWorks调度系统的调度参数定义,动态为代码中的变量赋值。

    业务日期

    指昨天,在离线计算场景下,交易日期为业务发生的日期。DataWorks默认取调度时间内,任务预期调度运行时间的前一天(即昨天)的日期为业务日期,精确到天。例如,今天统计前一天的营业额,此处的前一天,指交易发生的日期,也就是业务日期。

    定时时间

    指今天,即某业务数据加工任务的预期执行时间。DataWorks默认取调度时间内,任务预期调度运行的时间点(即今天)为定时时间,精确到秒。任务预期执行时间,与实际开始执行时间并非完全一致。任务实际开始执行时间受多方因素影响。