为方便不同安全管控要求的用户生产数据,DataWorks为您提供简单模式和标准模式两种工作空间模式。本文为您介绍两种模式工作空间的区别和数据访问模式。
简单模式的工作空间
简单模式下,一个DataWorks工作空间对应一个计算引擎(项目、实例或数据库),无法设置开发环境和生产环境,只能进行简单的数据开发。简单模式的工作空间无法对数据开发流程和表权限进行强控制。
您使用简单模式工作空间的优势和风险如下:
- 优势:使用方便。提交代码后,您无需发布,代码即可进入调度系统周期性执行,产出结果数据。
- 风险:开发角色可以不经过任何人审批,随时新增、修改代码并提交至调度系统,给生产环境带来不稳定因素。同时,当面向MaxCompute计算引擎时,开发角色默认拥有当前MaxCompute项目所有表的读写权限。开发角色的用户可以随意对表进行增加、删除和修改等操作,存在数据安全风险。
以MaxCompute为例,简单模式工作空间的流程如下。

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

不同模式工作空间的数据访问模式
您可以在计算引擎信息。
区域,设置不同模式下,工作空间的数据访问模式。详情请参见工作空间模式 | 计算引擎类型 | 环境 | 访问身份 |
---|---|---|---|
标准模式 | MaxCompute | 开发环境 | 页面运行任务(不可选):默认为执行任务者(当前登录者) |
生产环境 | 调度访问身份(可选):
|
||
EMR(E-MapReduce) | 开发环境 |
|
|
生产环境 |
|
||
Hologres | 开发环境 | 页面运行任务(不可选):默认为执行任务者(当前登录者) | |
生产环境 | 调度访问身份(可选):
|
||
简单模式 | MaxCompute | 开发环境即生产环境 | 页面运行任务(不可选):默认为执行任务者(当前登录者)
调度访问身份(可选):
|
EMR | 开发环境即生产环境 |
|
|
Hologres | 开发环境即生产环境 | 页面运行任务(不可选):默认为执行任务者(当前登录者)
调度访问身份(可选):
|
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引擎在不同模式工作空间访问的相关问题
场景 | 工作空间模式 | 数据开发界面 | 生产运维中心 |
---|---|---|---|
执行账号 | 标准模式 | 当前操作人 | 调度引擎指定账号 |
简单模式 | 调度引擎指定账号
说明 简单模式工作空间下,如果调度引擎指定账号为阿里云主账号,无论是否是主账号进行执行任务的操作,其都将使用主账号身份执行任务。
|
||
资源所在环境 | 标准模式 | projectname_dev.tablename/function/resource | projectname.tablename/function/resource |
简单模式 | projectname.tablename/function/resource | ||
访问资源 | 标准模式 | 场景一:select col1 from tablename
select col1 from projectname.tablename
说明 阿里云RAM用户(非调度引擎指定账号)默认无权限访问生产环境,生产表权限需要在安全中心申请。
|
select col1 from tablename
|
简单模式 | select col1 from tablename.
说明 简单模式工作空间下,如果调度引擎指定账号为阿里云主账号,无论是否是主账号进行执行任务的操作,其都将使用主账号身份访问该资源。
|
||
访问资源权限问题 | 标准模式 | 个人所拥有的资源权限。 | 调度引擎指定账号所拥有的权限。 |
简单模式 | 调度引擎指定账号所拥有的权限。
说明 如果当前简单模式工作空间使用的调度引擎指定账号为阿里云主账号,权限过大,不建议您直接使用阿里云主账号作为简单模式工作空间调度引擎执行账号。
|
MaxCompute引擎在不同模式下数据库表命名规范
简单模式下不区分开发环境和生产环境,开发库即生产库。标准模式下,支持开发环境和生产环境隔离,开发环境和生产环境的数据库表命名有所区别,如果需要在开发环境访问生产环境的数据库表,请根据以下命名规范严格区分数据库表名,避免误操作生产环境。
环境类型 | 标准模式 | 示例 |
---|---|---|
开发环境 | 项目名_dev.表名 | 在projectA项目下创建一个开发库表user_info,则数据库表名为:projectA_dev.user_info。 |
生产环境 | 项目名.表名 | 在projectA项目下创建一个生产库表user_info,则数据库表名为:projectA.user_info。 |