发布中心概述

DataWorks的发布中心为当前任务发布功能的升级版,主要解决多环境间节点、函数、资源、组件等对象的发布问题。通常,当目标端需要创建与原端相同的对象时,可以借助该功能快速实现对象的发布。本文为您介绍发布中心的应用场景、逻辑说明、发布流程等内容。

应用场景

基于不同的发布环境,DataWorks的发布中心可分为跨工作空间发布跨云发布两种场景,具体如下:

  • 跨工作空间发布

    跨工作空间发布为原跨项目克隆功能,主要用于同地域同一阿里云账号下,不同工作空间的节点、函数、资源、组件等对象的发布。

    由于简单模式工作空间只有一个环境,不区分开发环境和生产环境,不能直接隔离开发和生产。如果您需要实现开发和生产隔离,则可以使用跨工作空间发布功能,将用于开发测试的简单模式工作空间中的任务发布至用于生产调度的简单模式工作空间,实现简单模式工作空间开发环境和生产环境的隔离。跨工作空间发布常用的场景如下:

    • 将目标对象从一个简单模式的工作空间发布至另一个简单模式的工作空间。

    • 将目标对象从一个简单模式的工作空间发布至另一个标准模式的工作空间。

  • 跨云发布

    跨云发布主要用于跨账号、跨地域或跨云平台(例如,金融云、政务云等)节点、函数、资源、组件等对象的发布。其本质也是将节点由原工作空间迁移发布至目标工作空间,只是两个工作空间所归属的地域、账号、云平台不同。

逻辑说明

发布中心的发布操作是以节点为单位进行的,业务流程、以及节点的依赖关系会同步发布至目标工作空间。如果节点存在依赖关系,则必须在上游节点成功发布至目标工作空间后,下游节点才能执行发布操作。发布节点的变更情况如下:

  • 节点发布时,系统会更改所有前缀为原工作空间名称的节点输入输出,将其前缀由原工作空间名称更换为目标工作空间名称。同时,根据节点是否存在跨工作空间依赖,您可以基于业务需求配置发布环境的依赖映射参数,不同配置情况,节点发布后的上下游依赖及输入输出名称不同,详情请参见下文的节点依赖关系及输入输出变更

  • 发布MaxCompute引擎类任务,系统会修改任务代码中涉及的原工作空间名称为目标工作空间名称,详情请参见下文的MaxCompute引擎类任务的代码变更

说明
  • 配置依赖映射关系,详情请参见配置发布环境,配置调度依赖,详情请参见配置调度依赖

  • 本文均以工作空间名称.节点名称格式的输出名称示例,具体输出名称请以实际使用为准。

节点依赖关系及输入输出变更

不同配置场景的节点发布后的变更情况如下。

  • 不存在跨工作空间依赖,节点发布前后输入输出及依赖关系变更

    project1中的节点不存在的跨工作空间依赖,将project1的所有节点发布至project2不存在跨工作空间依赖发布后,所有的节点输入输出名称中,涉及的project1前缀变更为project2。例如:

    • task_A的输入名:由project1_root变更为project2_root

    • task_A的输出名:由project1.task_A_out变更为project2.task_A_out

  • 存在跨工作空间依赖,但未设置跨工作空间依赖映射,节点发布前后输入输出及依赖关系变更

    project1.task_A跨工作空间依赖project3.task_A,将project1的所有节点发布至project2跨项目依赖设置了依赖映射发布后,节点的变更如下:

    • 节点的输入输出:所有的节点输入输出名称中,涉及的project1前缀变更为project2

    • 节点的跨工作空间依赖:原project1.task_A跨工作空间依赖的project3.task_A,发布后,project2.task_A依然跨工作空间依赖project3.task_A

  • 存在跨工作空间依赖,设置了跨工作空间依赖映射,节点发布前后输入输出及依赖关系变更

    project1.task_A跨工作空间依赖project3.task_A,将project1的所有节点发布至project2,并设置project3依赖映射project4跨项目依赖未设置依赖映射发布后,节点的变更如下:

    • 节点的输入输出:所有的节点输入输出名称中,涉及的project1前缀变更为project2

    • 节点的跨工作空间依赖:原project1.task_A跨工作空间依赖的project3.task_A,发布后,project2.task_A跨工作空间依赖变更为依赖project4.task_A

MaxCompute引擎类任务的代码变更

MaxCompute引擎类任务(例如,ODPS SQL、ODPS Spark等 )发布到目标工作空间后,执行任务代码时,系统会将任务代码中涉及的原工作空间名称更换为目标工作空间名称。

示例task_A为ODPS SQL节点。在project1中查询table_A的代码为Select * from project1.tableA,将project1的所有节点发布至project2任务代码变更节点发布至project2后,查询table_A的代码将变更为Select * from project2.tableA

使用限制

跨工作空间发布的限制如下:

  • 环境限制

    DataWorks仅支持对简单模式的工作空间进行跨工作空间发布,将其发布至其他简单或标准模式的工作空间。

  • 权限限制

    • 创建发布环境:仅具有空间管理员角色权限的成员支持创建及配置发布环境。

    • 创建发布包:具有开发角色权限的成员可以创建发布包。

    • 发布发布包:具有运维部署空间管理员角色权限的成员可以发布发布包。

    工作空间添加成员及授权,详情请参见空间级模块权限管控

  • 其他限制

    • 跨工作空间发布用于同地域、同一阿里云账号下,不同工作空间的发布,该场景不支持跨地域发布。如果您需要跨地域发布,请使用跨云发布

    • DataWorks目前不支持发布旧版业务流程至目标工作空间。请将源工作空间中旧版业务流程的任务迁移至业务流程中的某个目录后,再发布该业务流程至目标工作空间。

跨云发布的限制:执行跨云发布的账号需要同时为源工作空间和目标工作空间的成员,并且在源工作空间中具有项目所有者空间管理员角色权限。工作空间添加成员及授权,详情请参见空间级模块权限管控

发布流程

  • 跨工作空间发布

    跨工作空间发布的所有操作均在原工作空间执行,发布流程如下图。跨工作空间发布

    1. 创建并配置发布环境,详情请参见创建并配置发布环境

      由于在目标工作空间发布原工作空间的节点时,目标端是一个全新的发布环境,因此,您需要将原端的引擎实例、资源组及依赖关系等信息映射至目标端。映射后,当发布发布包时,无需在目标工作空间进行额外的配置,系统便会将发布节点使用的环境替换为映射的环境信息。

    2. 基于已创建的发布环境,将待发布对象添加至发布包统一发布。创建并发布发布包,详情请参见创建及发布发布包:跨工作空间

      说明

      跨工作空间发布场景,发布包创建完成后系统便直接发布,无需您手动执行发布操作。

    3. 查看发布结果,详情请参见查看发布包列表

  • 跨云发布

    跨云发布的发布流程如下图。跨云发布

    1. 创建并配置发布环境,详情请参见创建并配置发布环境

      由于在目标工作空间发布原工作空间的节点时,目标端是一个全新的发布环境,因此,您需要将原端的引擎实例、资源组及依赖关系等信息映射至目标端。映射后,当发布发布包时,无需在目标工作空间进行额外的配置,系统便会将发布节点使用的环境替换为映射的环境信息。

    2. 在原工作空间中基于已创建的发布环境,将待发布对象添加至发布包并下载发布包至本地。随后将下载的发布包导入至目标工作空间提交发布。创建并发布发布包,详情请参见创建及发布发布包:跨云

      说明

      跨云发布场景,发布包创建完成后,您需要手动将发布包下载至本地,再导入目标工作空间进行发布。

    3. 在目标工作空间查看发布结果,详情请参见查看发布包列表