为方便不同安全管控要求的用户生产数据,DataWorks为您提供简单模式和标准模式两种工作空间模式。本文为您介绍两种模式工作空间的区别和数据访问模式。

简单模式的工作空间

简单模式下,一个DataWorks工作空间对应一个计算引擎(项目、实例或数据库),无法设置开发环境和生产环境,只能进行简单的数据开发。简单模式的工作空间无法对数据开发流程和表权限进行强控制。

您使用简单模式工作空间的优势和风险如下:
  • 优势:使用方便。提交代码后,您无需发布,代码即可进入调度系统周期性执行,产出结果数据。
  • 风险:开发角色可以不经过任何人审批,随时新增、修改代码并提交至调度系统,给生产环境带来不稳定因素。同时,当面向MaxCompute计算引擎时,开发角色默认拥有当前MaxCompute项目所有表的读写权限。开发角色的用户可以随意对表进行增加、删除和修改等操作,存在数据安全风险。
以MaxCompute为例,简单模式工作空间的流程如下。 简单模式

标准模式的工作空间

标准模式的工作空间下,一个DataWorks工作空间对应两个计算引擎(项目、实例或数据库)。与简单模式的工作空间相比,标准模式的工作空间有如下不同:
  • 所有代码仅支持在开发环境编辑,您无法修改生产环境的代码。
  • 提交任务后,任务会进入开发环境调度系统。但实际不会自动调度,仅作为冒烟测试使用。如果您需要自动调度运行任务,请发布任务至生产环境。

    发布任务前,需要项目管理员或运维角色的成员审批通过,才能发布成功。

以MaxCompute为例,标准模式工作空间的流程如下。 标准模式

不同模式工作空间的数据访问模式

您可以在 工作空间配置 > 计算引擎信息区域,设置不同模式下,工作空间的数据访问模式。详情请参见 计算引擎信息
工作空间模式 计算引擎类型 环境 访问身份
标准模式 MaxCompute 开发环境 页面运行任务(不可选):默认为执行任务者(当前登录者)
生产环境 调度访问身份(可选):
  • 阿里云主账号
  • 阿里云RAM用户
  • 阿里云RAM角色
EMR(E-MapReduce) 开发环境
  • 快捷模式下访问身份:统一使用集群内的Hadoop用户。
  • 安全模式下访问身份:任务执行者
生产环境
  • 快捷模式下访问身份:统一使用集群内的Hadoop用户。
  • 安全模式下访问身份(可选):
    • 任务责任人
    • 阿里云主账号
    • 阿里云RAM用户
Hologres 开发环境 页面运行任务(不可选):默认为执行任务者(当前登录者)
生产环境 调度访问身份(可选):
  • 阿里云主账号
  • 阿里云RAM用户
简单模式 MaxCompute 开发环境即生产环境 页面运行任务(不可选):默认为执行任务者(当前登录者)
调度访问身份(可选):
  • 阿里云主账号
  • 阿里云RAM角色
  • 任务负责人:任务Owner账号的身份
EMR 开发环境即生产环境
  • 快捷模式下访问身份:统一使用集群内的Hadoop用户。
  • 安全模式下访问身份(可选):
    • 任务责任人
    • 阿里云主账号
    • 阿里云RAM用户
Hologres 开发环境即生产环境 页面运行任务(不可选):默认为执行任务者(当前登录者)
调度访问身份(可选):
  • 阿里云主账号
  • 阿里云RAM用户

AnalyticDB for MySQL、AnalyticDB for PostgreSQL等引擎与您新增引擎实例时不同环境绑定的账号有关,权限与账号在数据库中的权限一致。

不同模式工作空间的权限管理特征

DataWorks采取RBAC权限模型供用户管理DataWorks所有页面可见功能以及API的使用权限,同时这套权限体系与MaxCompute的RBAC角色体系存在天然的映射关系,详情可参见 成员及角色管理成员角色与权限关系。不同工作空间类型的权限管理特征与优缺点不一致,以下表格为您对比介绍两种空间类型的权限细分特点。

细分特点 简单模式 标准模式
权限概述 在简单模式空间下,DataWorks的“开发”角色因为与所绑定MaxCompute项目的“Role_Project_Dev” Role进行了映射,因此DataWorks开发角色天然能够读取MaxCompute项目内的所有数据。 在标准模式空间下,DataWorks的“开发”角色因为与所绑定MaxCompute项目(dev环境)的“Role_Project_Dev” Role进行了映射,因此:
  • DataWorks开发角色天然能够读取MaxCompute项目(dev环境)内的所有数据。
  • 由于没有和MaxCompute项目(PROD环境)的role映射,因此默认情况下DataWorks开发角色无MaxCompute(PROD环境)的数据权限。
优点

简单、方便、易用。

仅需要授权数据开发人员“DataWorks开发角色”即可完成所有数据仓库开发工作。

安全、规范。
  • 具备安全、规范的代码发布管控流程(包含代码评审、代码DIFF查看等功能),保障生产环境稳定性,避免不必要的因代码逻辑引起的脏数据蔓延或任务报错等非预期情况。
  • 数据访问得到有效管控,数据安全得以保障。
缺点
存在不稳定、不安全的风险。
  • 开发角色可以不经过任何人审批,随时新增、修改代码并提交至调度系统,给生产环境带来不稳定因素。
  • 面向MaxCompute计算引擎时,开发角色默认拥有当前MaxCompute项目所有表的读写权限,可随意对表进行增加、删除和修改等操作,存在数据安全风险。
流程相对复杂,一般情况下无法一人完成所有数据开发、生产流程。

MaxCompute引擎在不同模式工作空间访问的相关问题

工作空间模式 场景 数据开发界面 生产运维中心
标准模式 执行账号 当前操作人 调度引擎指定账号
简单模式 调度引擎指定账号
说明 简单模式工作空间下,如果调度引擎指定账号为阿里云主账号,无论是否是主账号进行执行任务的操作,其都将使用主账号身份执行任务。
标准模式 资源所在环境 projectname_dev.tablename/function/resource projectname.tablename/function/resource
简单模式 projectname.tablename
说明 简单模式工作空间只有一个环境,即生产环境,无法做到开发生产隔离。
标准模式 访问资源 场景一:select col1 from tablename
  • 用个人账号访问开发环境下该表。
  • 即用个人账号访问:projectname_dev.tablename
场景二:select col1 from projectname.tablename
  • 用个人账号访问生产环境下该表。
  • 即用个人账号访问:projectname.tablename
说明 阿里云RAM用户(非调度引擎指定账号)默认无权限访问生产环境,生产表权限需要在安全中心申请。
select col1 from tablename
  • 用调度引擎指定账号访问生产环境下该表。
  • 即调度引擎指定账号访问:projectname.tablename
简单模式 select col1 from tablename.
  • 用调度引擎指定账号访问生产表。
  • 即用调度引擎指定账号访问生产表:projectname.tablename
说明 简单模式工作空间下,如果调度引擎指定账号为阿里云主账号,无论是否是主账号进行执行任务的操作,其都将使用主账号身份访问该资源。
标准模式 访问资源权限问题 个人所拥有的资源权限。 调度引擎指定账号所拥有的权限。
简单模式 调度引擎指定账号所拥有的权限。
说明 如果当前简单模式工作空间使用的调度引擎指定账号为阿里云主账号,权限过大,不建议您直接使用阿里云主账号作为简单模式工作空间调度引擎执行账号。

MaxCompute引擎在不同模式下数据库表命名规范

简单模式下不区分开发环境和生产环境,开发库即生产库。标准模式下,支持开发环境和生产环境隔离,开发环境和生产环境的数据库表命名有所区别,如果需要在开发环境访问生产环境的数据库表,请根据以下命名规范严格区分数据库表名,避免误操作生产环境。

环境类型 标准模式 示例
开发环境 项目名_dev.表名 在projectA项目下创建一个开发库表user_info,则数据库表名为:projectA_dev.user_info。
生产环境 项目名.表名 在projectA项目下创建一个生产库表user_info,则数据库表名为:projectA.user_info。