DataWorks的DataStudio(数据开发)模块为您提供了界面化、智能高效的大数据数据开发与测试体验,本文将基于开发组件(节点)、支持开发的任务类型、开发过程中的资源管控与使用说明、开发过程中的成员权限控制(资源与功能)来说明数据开发的功能使用。

说明
  • 本文以生产环境与开发环境隔离的标准模式工作空间为例,为您介绍数据开发的使用说明。
  • 所有生产环境调度节点的代码变更都需要在数据开发界面修改完成后走发布流程进行发布。
  • 如果您工作空间下无可用的引擎或目录树上对应引擎不可见,请在工作空间配置界面确认是否已经开通并绑定对应引擎服务。业务流程下仅展示当前工作空间下已经绑定的引擎服务,引擎绑定详情可参考文档:配置工作空间
  • 如果您无法操作部分功能,或者没有新建入口,请在工作空间配置的成员管理处确认是否有开发权限(即操作账号是否为阿里云主账号、是否被授予开发角色或空间管理员),或查看当前开通的DataWorks版本是否为要求的版本。

开发组织结构

您可以基于包括工作空间 > 解决方案 > 业务流程三级结构,对业务进行划分,您可以基于公司部门、公司业务或数仓层次进行规划分组。
结构层级 特征 定位
工作空间 不同的工作空间可以有不同的管理员、不同的内部成员,各工作空间拥有完全独立的成员角色设定以及引擎实例的各项参数开关。关于工作空间的规划请参见规划工作空间 DataWorks支持的最大业务划分粒度,权限组织的基本单位,用来控制您的开发、运维等权限。工作空间内成员的所有代码均可以协同开发管理。
解决方案 您可以将一类业务流程划分为一个解决方案进行统筹管理,同时一个业务流程也可以被多个解决方案复用,您只需要开发自己的解决方案。其他人可以在其它解决方案或业务流程中,直接编辑您引用的业务流程,构成协同开发。 业务整合。
业务流程 业务的抽象实体,让您能够以业务的视角来组织数据代码开发。工作空间之间的业务流程、任务节点独立开发,互不影响。
业务流程两种形态,目录树与面板,让您从业务视角组织代码,资源类别更明确,业务逻辑更清晰。
  • 目录树结构提供基于任务类型的代码组织方式。
  • 业务流程面板提供流程化的业务逻辑展现方式。
具体的代码开发、资源组织单位。
开发组织结构数据开发基于业务流程下对应的节点进行开发操作,您可以在业务流程面板下新建一个或多个业务流程,每个业务流程按照引擎类型进行分组,每个引擎分组下再对数据开发类型节点、表、资源、函数进行一步分组,即一类业务使用的组件(节点、表、资源、函数)统筹在一个业务流程中,业务流程下仅展示当前业务流程中使用的组件。
  • 在DataWorks上,具体的数据开发工作是基于业务流程开展的,所以您需要先新建业务流程,再进行后续的开发工作。
  • 所有生产环境调度节点的代码变更都需要在数据开发界面修改完成后走发布流程进行发布。

简单逻辑说明

DataWorks的数据开发基于业务流程进行数据开发,支持手动触发任务与调度任务进行开发,您可以选择引擎节点、控制类节点、自定义节点进行数据清洗操作。调度任务需要配置调度相关参数,并提交节点进入待发布界面,在任务发布界面进行发布操作。节点发布完成后,任务将进入生产环境,之后将根据您的调度配置周期性调度。开发逻辑

DataStudio主要功能

  • 开发节点类型
    全面的引擎能力封装,让您无需接触复杂的引擎命令行。并提供自定义节点插件化机制,支持您扩展计算任务类型,自主接入自定义计算服务,同时,您可以结合DataWorks其他节点进行复杂数据处理。
    • 基于数据集成节点进行数据同步。
    • 基于引擎节点数据开发。
    • 引擎节点结合通用节点进行复杂流程处理。
    • 通过节点配置自定义节点进行数据开发。
    开发节点类型的选择请参见下文的选择数据开发节点章节。
  • 任务开发
    支持调度任务(周期任务)开发与手动触发式任务开发,且开发过程中通过界面化、智能化提高开发效率:
    • 业务流程混合编排:可视化拖拽式多引擎任务混合编排,详情请参考下文的选择开发任务类型章节的新建调度任务
    • 智能SQL编辑器:AI加持的SQL编辑器,智能提示,SQL算子结构可视化展示,详情请参考下文的选择开发任务类型章节的节点代码查看与版本管理
    新建周期任务、新建手动任务的介绍详情请参见选择开发任务类型
  • 表、资源、函数的可视化管理与使用

    表、资源、函数的管理与使用的介绍请参见下文的表、资源、函数的管理与使用

  • 成员权限管控与开发行为管控
    DataWorks数据开发的权限管控主要包括:
    • 资源权限控制
    • 界面功能权限控制
    • 操作流程管控
    详细介绍请参见下文的成员权限管控与开发行为管控
  • 代码版本管理与操作审计
    操作审计主要包括:
    • 获取开发人员界面相关操作审计日志。
    • 重要数据通过事前设置来获得事后溯源能力。
    • MaxCompute表权限审计。
    • 表数据、节点删除的恢复。
    • 节点的版本对比与回滚。
    详细介绍请参见下文的操作审计

选择数据开发节点

DataWorks将引擎能力进行封装,您可以基于引擎节点进行数据开发,无需接触复杂的引擎命令行,同时您也可以结合平台提供的通用类型节点进行复杂逻辑处理,此外,DataWorks也为您提供自定义节点插件化机制,支持您扩展计算任务类型,自主接入自定义计算服务,通过自定义节点开发,来实现自定义处理代码逻辑。
说明 产品能力在仍在不断丰富中。
  • 数据集成节点:您可基于数据集成节点进行数据同步
    数据集成节点 使用介绍
    离线节点 用于离线(批量)数据同步场景。
    • 支持复杂场景下多种异构数据源,基于数据传输框架,通过抽象化的数据抽取插件(Reader)、数据写入插件(Writer)间的离线(批量)数据同步。
    • 支持40+关系型数据库、非结构化存储、大数据存储、消息队列之间的数据同步。
    离线同步支持的数据源详情请参见支持的数据源与读写插件
    实时同步节点 用于实时同步同步场景。

    实时同步包括实时读取、转换和写入三种基础插件,各插件之间通过内部定义的中间数据格式进行交互。

    实时同步支持的数据源详情请参见实时同步支持的数据源
    数据同步解决方案 DataWorks为您提供多种数据源之间进行不同数据同步场景的同步解决方案,包括实时数据同步、离线全量同步、离线增量同步等同步场景,助力企业数据更高效、更便捷的一键上云。
    同步任务配置化方案具有如下优势:
    • 全量数据初始化。
    • 增量数据实时写入。
    • 增量数据和全量数据定时自动合并写入新的全量表分区。
    同步解决方案详情可参考文档概述
  • 引擎节点:您可基于引擎节点进行数据开发
  • 通用节点:引擎节点可结合通用节点进行复杂逻辑处理
    在具体业务流程下,您可以在通用节点分组下新建对应的节点,结合引擎节点实现复杂逻辑处理。
    业务场景 节点类型 使用说明
    业务管理 创建虚拟节点 虚拟节点属于控制类型节点,它是不产生任何数据的空跑节点,通常作为业务流程统筹节点的根节点,方便您管理节点及业务流程。
    事件触发 创建HTTP触发器节点 如果您希望其他调度系统的任务完成后触发DataWorks上的任务运行,您可以使用此功能。
    OSS对象检查 通过监控OSS对象产生来触发下游节点执行。
    创建FTP Check节点 通过监控FTP文件产生来触发下游节点执行。
    参数赋值 配置赋值节点 用于参数传递,通过自带的output输出将赋值节点最后一条查询或输出结果通过节点上下文功能传递到下游,实现参数跨节点传递。
    控制类 配置for-each节点 用于遍历赋值节点传递的结果集。
    配置do-while节点 用于循环执行部分节点逻辑,同时您也可以结合赋值节点来循环输出赋值节点传递的结果。
    配置分支节点 用于对上游结果进行判断决定不同结果走不同的分支逻辑,您可以结合赋值节点一块使用。
    配置归并节点 用于对上游节点的运行状态进行归并,用于解决分支节点下游节点的依赖挂载和运行触发问题。
    参数传递 创建参数节点 用于上游节点间参数汇总与分发向下传递。
    创建Shell节点 Shell节点支持标准Shell语法,但不支持交互性语法。
    代码复用 创建SQL组件节点 SQL组件是一种带有多个输入参数和输出参数的SQL代码模板。使用SQL代码处理数据表时,通过过滤、连接和聚合源数据表,获取结果表。
    说明 目前仅支持MaxCompute语法。
  • 自定义节点:通过节点配置自定义节点进行数据开发

    DataWorks提供自定义节点插件化机制,支持您扩展计算任务类型,自主接入自定义计算服务。您可以本地开发好插件代码,通过节点配置界面将该插件添加至DataWorks环境内,添加完成后,当前在数据开发时,可以在具体业务流程的自定义分组中选择该自定义节点进行数据开发。

    自定义节点的使用流程如下。
    操作流程 步骤描述
    step1:开发自定义插件包 DataWorks自定义节点中运行任务时,需要调用自定义插件,因此在使用自定义节点前您需要创建好自定义插件包,并上传发布至DataWorks,便于使用自定义节点运行任务时使用。
    step2:新增节点插件 在DataWorks环境中部署该插件。
    step3:新增自定义节点 新增自定义节点,配置自定义节点与自定义插件关系,编辑自定义节点在DataWorks界面的交互方式,基本信息、编辑器。

选择开发任务类型

DataWorks上支持周期调度任务的开发,同时也支持手动触发式任务的开发。您可以在左侧的目录树上右键来新建任务,也可以在双击业务流程后通过鼠标拖拽来新建任务。
  • 新建调度任务
    1. 新建周期调度节点
      在数据开发分组下新建节点时,您可以在业务流程DAG图通过可视化拖拽组件的方式编排业务流程,即通过拖拽的方式设置业务流程内的节点依赖关系。此外,跨业务流程、跨工作空间的节点依赖关系可以通过自动解析功能来快速设置。周期调度此外,您还可以通过以下功能,提高数据开发效率。
      附加功能 使用说明
      节点组 用于快速复制业务流程,您可以将多个节点组合成节点组,并在其他业务流程中快速引用该节点组。
      流程参数 当整个业务流程需要对同一个变量进行统一的赋值或替换参数值时,请选择使用流程参数功能。
      操作历史 用于查看业务流程面板的操作记录。
      版本 每提交一次业务流程都将生成一个业务流程版本,您可以在此界面查看业务流程的每次提交的版本,支持版本对比。
      代码搜索 用于通过关键字搜索节点中的代码片段,并展示包含该代码片段的所有节点及片段的详细内容。当目标表数据产生变更,您需要查找操作源(即导致目标表数据变更的任务)时,可以使用该功能。
    2. 节点调度配置
      定义节点在调度运行时候的相关属性,DataWorks提供小时、分钟、日、月、年等多种形式调度,与日千万级大规模周期性任务调度服务,支持节点间参数传递,详情请参见调度配置调度配置
      其中调度配置的核心配置项如下。
      说明 支持通过批量操作入口批量修改相关属性,详情参考:批量操作
      • 配置基础属性
        核心配置参数 配置要点
        参数 用于给代码中的变量赋值。您可以在参数处填写DataWorks调度参数实现变量动态赋值,调度参数会根据任务调度时间替换为具体的值,详情请参见配置调度参数
      • 时间属性配置说明
        核心配置参数 配置要点
        实例生成方式 节点配置完成后,什么时候会自动调度,即什么时候在周期实例面板生成实例自动调度。
        • DataWorks支持T+1次日生成:任务发布生产环境后第二天生成周期实例并且自动调度。
        • 发布后即时生成:发布后及时生成有时间限制,详情请参见实例生成方式:发布后即时生成实例
        调度类型 设置调度场景下节点是否真实执行,及非真实执行场景下对下游节点的影响控制。
        • 正常调度
          • 影响说明:正常执行任务(真实跑数据),当前节点正常执行后,也会触发下游节点正常调度执行。
          • 使用场景:通常任务默认选中该项。
        • 暂停调度
          • 影响说明:冻结状态的周期任务,并且生成的实例也是正常状态的,不可执行任务,并且阻塞下游节点执行。
          • 使用场景:当某一类业务流程在一定时间内不需要执行时,可选择此功能冻结业务流程根节点。
        • 空跑调度
          • 影响说明:任务是空跑状态(不会真实跑数据),即一调度到该任务便直接返回成功(执行时长为0),不会真正执行任务(执行日志为空),不会阻塞依赖了当前节点的下游节点执行(下游节点正常执行),且不会占用资源。
          • 使用场景:当某一个节点在一定时间内不需要执行,并且需要不阻塞他的下游节点执行时,可选择此功能对当前节点设置空跑。
        重跑属性 从数据幂等性考虑任务是否可以进行重跑。
        • 运行成功或失败后均可重跑。
        • 运行成功后不可重跑,运行失败后可以重跑。
        • 运行成功或失败后皆不可重跑。
        出错自动重跑 设置调度场景下节点的出错重跑次数与重跑间隔。
        生效日期 当前节点在指定时间段内自动重跑,指定时间段外不自动调度(不生成周期实例)。
        调度周期与定时时间 支持分钟小时调度。
        说明 非调度时间内实例空跑。
        超时时间 任务运行时长超过指定时间,任务将自动终止运行,失败退出。
      • 配置资源属性:用于指定任务调度时使用的调度资源组。
      • 配置同周期调度依赖
        核心配置参数 配置要点
        依赖同周期 当前节点运行需要由哪些节点触发,此处依赖的是指定节点同一周期的依赖,即依赖某些节点今天的自动调度实例,从业务维度说便是当前节点依赖上游节点今天产出的表数据。
        依赖跨周期 当前节点运行需要由哪些节点触发,此处依赖的是指定节点上一周期实例依赖。(即依赖某些节点昨天的自动调度实例,从业务维度说便是当前节点依赖上游节点昨天产出的表数据。
      • 配置节点上下文:与赋值节点同步使用,通过节点上下文可将赋值节点输出的结果集传递到下游节点,实现参数传递。
    3. 节点代码查看与版本管理
      功能 功能描述 示意图
      代码编辑 AI加持的SQL编辑器,提供智能语法提示。 代码编辑
      血缘关系 支持查看节点依赖关系图与节点内部代码的血缘关系图。 依赖关系图
      版本 节点每次提交都将生成新的版本,您可以基于版本进行版本代码对比与版本回退操作。 版本
      结构 代码结构通过SQL算子可视化展示. 结构
  • 新建手动任务
    在手动业务流程模块具体的手动业务流程,数据开发分组下新建节点,您可以通过业务流程DAG图通过可视化拖拽组件的方式编排业务流程并拉线设置节点依赖关系。手动任务
  • 提交节点
    节点点击提交后,该条节点的操作记录将进入到任务发布界面,您可以在任务发布界面管控是否发布该条记录,只有将操作发布后,生产调度才会生效。提交节点
  • 发布节点
    创建发布包界面展示工作空间下所有待发布的操作记录,包括新增、更新、下线记录,将对应操作发布生产,生产环境调度任务才会生效。发布节点
    说明 简单模式工作空间可以通过跨项目克隆将工作空间下的代码发布至另一个工作空间。

表、资源、函数的管理与使用

DataWorks将引擎下的表、资源、函数进行封装,您可以通过可视化方式创建表、资源,及注册函数等操作。
  • 表管理

    支持可视化操作表、上传本地表数据与表数据导出。

    DataWorks的表管理与使用的操作界面入口有多种,您可根据操作的需要进入对应的操作界面入口进行操作。

    入口分类 主要操作入口1:数据开发页面 主要入口2:表管理页面 入口3:公共表页面
    入口示意 入口1 入口2 入口3
    操作说明 在数据开发页面基于业务流程进行表管理(基于业务进行表管理)。
    • 导入表至业务流程中:通过导入表功能将业务流程内使用到的表加入业务流程方便快速基于业务进行表管理。
    • 从业务流程中移除表:如果业务流程内已用不到某张表,您可以右键表,进行删除表操作。
      说明 此处的删除操作只是将该表从当前业务流程中移除,并非将表从引擎中真实的删除。
    • 管理表:可查看工作空间下所有的开发表及生产表。
    • 主题管理:可对表主题进行设置。
    说明 您可以通过数据地图模块查看表的基本元数据信息、血缘信息和影响等,详情可参考数据地图文档:概述
    不同表操作在不同入口的操作注意事项如下。
    操作分类 细分操作 主要操作入口1:数据开发页面 主要入口2:表管理页面
    表管理 基本表操作:
    • 新建表
    • 删除开发表
    • 重命名表
    • 修改表注释
    • 添加字段
    • ……
    表操作行为基本与引擎行为一致。数据开发 表操作行为基本与引擎行为一致。表管理
    • 删除生产表
    • 批量转交表责任人
    • 批量修改表生命周期
    • 批量修改表中文名
    生产表不支持在数据开发、表管理页面中直接操作,需要在数据地图中操作,详情请参见概述数据地图
    表数据导入 上传本地数据至表中 数据开发 表管理
    其他数据库数据同步至表中 数据开发通过离线同步节点、实时同步节点将其他数据库数据同步至表中。 不支持
    表数据导出 数据导出至本地 导出数据至本地
    说明 管理员权限可控制此开关。
    数据导出至其他数据库 数据开发通过离线同步节点、实时同步节点将数据同步至其他数据库。 不支持
  • 资源的管理与使用
    • 资源管理
      可视化上传 资源版本管理
      资源上传 资源版本管理
    • 资源使用
      节点内使用 使用资源注册函数
      节点内使用 注册函数
    • 函数的管理与使用
      您可以在数据开发页面注册函数。注册函数

成员权限管控与开发行为管控

以下将DataWorks数据开发的权限分为两部分:引擎操作权限、DataWorks功能权限。
  • 引擎权限管控:
    指将引擎绑定至DataWorks的某一工作空间后,您在DataWorks上进行数据开发过程中,对引擎进行操作所需权限的管控。
    注意 此权限要求为引擎的操作权限要求,对引擎的操作权限的控制有两部分:
    • 在绑定引擎至DataWorks时,会给预设角色部分引擎的操作(表、函数、资源)权限。
    • 没有预设角色或预设角色不包含的引擎操作权限,需进入引擎的授权页面进行授权,当前不支持直接在DataWorks的界面授权这类权限。
  • DataWorks界面权限管控:

    指非引擎操作的其他DataWorks数据开发时,对DataWorks的界面功能的权限控制。

开发行为管控:指DataWorks提供的操作权限控制能力,您可以在敏感行为发生时做到第一时间阻断,支持人工干预或自定义事件检查逻辑,流程管控可分为阻断操作流程和不阻断操作流程仅通知。

  • 引擎权限管控:MaxCompute
    当前工作空间使用的是MaxCompute引擎时,DataWorks标准模式下:
    • DataWorks预设角色与MaxCompute引擎开发项目的Role存在权限映射关系,预设角色默认拥有MaxCompute开发项目映射的role所有的引擎层面的权限。
    • DataWorks预设角色与MaxCompute引擎生产项目的Role没无权限映射关系,预设角色无法直接操作生产引擎(资源)。
    综上,DataWorks的子账号被添加为管理员角色或开发角色的成员后,会拥有开发环境(MaxCompute引擎开发项目)所有权限,但默认没有生产环境(MaxCompute生产项目)的操作权限,如果需要在开发环境访问生产表,需要在数据地图中单独申请开发环境表权限。
    在开发代码编译调测时,您主要在数据开发页面进行操作,在任务代码编译调测完成后,可发布至生产环境,后续在运维中心页面执行生产环境的任务。
    操作页面 访问开发环境表 访问生产环境表
    数据开发页面
    • 示例代码:
      select col1 from tablename
    • 操作结果说明:用个人账号访问开发环境下的表,即用个人账号访问projectname_dev.tablename
    • 示例代码:
      select col1 from projectname.tablename
    • 操作结果说明:用个人账号访问生产环境下的表,即用个人账号访问projectname.tablename
    运维中心页面 不支持
    • 示例代码:
      select col1 from tablename
    • 操作结果说明:用调度引擎指定账号访问生产环境下的表,。即调度引擎指定账号访问projectname.tablename
  • 引擎权限管控:E-MapReduce
    当前工作空间使用的是E-MapReduce引擎时,DataWorks预设角色与引擎无直接权限映射关系,绑定EMR引擎时,您可以选择快捷模式安全模式,两种模式下的绑定配置和配置过程中的权限操作不一致,详情请参见准备工作:绑定EMR引擎
    • 快捷模式
      操作页面 访问开发环境表 访问生产环境表
      数据开发页面&运维中心页面 统一使用Hadoop账号执行。
    • 安全模式
      操作页面 访问开发环境表 访问生产环境表 原理
      数据开发页面 使用在绑定引擎时配置的开发环境指定账号访问所有引擎资源。 不支持 通过为DataWorks工作空间下的成员配置LDAP权限映射,实现控制每个子账号在DataWoks操作时的EMR底层权限控制的目的。

      在DataWorks上,使用阿里云主账号或RAM用户下发代码的同时,EMR集群内会匹配对应的同名用户来运行任务。管理者可以使用EMR集群内的Ranger组件对每个用户进行权限管控,最终实现不同阿里云主账号、任务责任人或RAM用户在DataWorks上运行EMR任务时,拥有对应不同数据权限。

      运维中心页面 不支持 使用在绑定引擎时配置的生产环境指定账号访问所有引擎资源。
  • 引擎权限管控:其他引擎

    当前工作空间使用的其他引擎时,预设角色与引擎无直接关系。您在数据开发界面执行任务是否有权限与您在引擎配置中的配置账号有关。

  • DataWorks界面权限管控
    • 模块维度权限管控

      DataWorks支持自定义DataWorks角色,来控制某个角色是否有某个模块的读写权限,详情可参考文档成员及角色管理

    • 模块细节功能管控

      DataWorks上如果有功能置灰或者没有功能入口,请确认是否有相应的权限。DataWorks上预设角色拥有的权限不同,具体可参考文档权限列表

    • 操作流程管控

      DataWorks提供操作权限控制能力,您可以在敏感行为发生时做到第一时间阻断,支持人工干预或自定义事件检查逻辑,流程管控可分为阻断操作流程和不阻断操作流程仅通知。

      DataWorks提供代码评审功能,评审功能分为强制代码评审(阻断操作流程)和消息发送(不阻断操作流程仅通知)的功能,同时支持您针对节点重要性(节点所在基线)来对指定优先级的基线开启代码强制评审。您可以开放数据通过开放相关接口或功能,让您可以第一时间知道的核心变更消息并对此做出相关措施,旨在便于用户及时监控变更并作出响应。您通过开放消息功能订阅DataWorks项目中表变更、任务变更等消息,并实现个性化自动化响应。

操作审计

  • 恢复已删除节点和表数据
    • 节点恢复:数据开发回收站可以还原近期删除的节点,但需注意,节点还原后节点ID是新生成的,与原ID不一致。
    • MaxCompute表数据恢复:DataWorks提供数据备份与恢复功能,系统会自动备份数据的历史版本(例如被删除或修改前的数据)并保留一定时间,详情请参见备份与恢复
  • 节点版本对比与回滚
    您可以在数据开发界面找到该节点,在节点配置右侧版本处进行版本对比回滚操作,详情请参见版本版本
  • 获取界面操作审计日志,如界面下载数据的操作

    DataWorks已对接操作审计(ActionTrail)中,您可以在ActionTrail中查看及检索阿里云账号最近90天的DataWorks行为事件日志。后续可以通过ActionTrail将事件日志投递至日志服务LogStore或指定的OSS Bucket中,实现对事件的监控和告警,满足及时审计、问题回溯分析等需求。详情请参考通过操作审计查询行为事件日志

  • 数据脱敏与泄露数据溯源

    如果您文件比较重要,为防止文件泄露,您可以通过数据保护伞功能的脱敏配置,对重要数据进行脱敏规则设置,并可依据数据水印功能对泄露的数据进行溯源。详情请参考文档数据脱敏管理

  • MaxCompute表权限的权限审计

    您可以进入安全中心,在数据访问控制的权限审计处,查看拥有表权限的人员列表、权限详情以及权限有效期,并支持回收表权限。