DataWorks V2.0推出了标准项目模式。标准项目模式下,一个DataWorks空间对应两个MaxCompute项目,将开发环境和生产环境隔离,增加任务的发布流程,保证任务代码的正确性。

标准模式优势

在过去老版本DataWorks中,您创建的都是一个DataWorks工作空间对应一个MaxCompute项目,即DataWorks V2.0中的简单模式。简单模式直接导致了表权限不可控,例如:只想允许工作空间中的某些人查询部分表,这个场景在简单模式下无法直接实现。因为一个DataWorks工作空间对应一个MaxCompute项目,DataWorks的开发角色权限在MaxCompute项目下有全部表的操作权限,所以无法对表权限进行精准控制。这种情况下,您必须要新建一个单独的DataWorks工作空间,使用工作空间隔离的方式,完成数据的隔离。

DataWorks V1.0针对表权限控制的场景,衍生了一个方案:手动给两个DataWorks工作空间进行发布绑定。将A工作空间设置为B工作空间的发布工作空间,A工作空间即可接收到B工作空间中发布过来的任务,无需直接开发代码。这使得A工作空间成为类似生产环境的工作空间,B工作空间则是类似开发环境的工作空间。

在两个DataWorks工作空间绑定的模式下,也会有一些漏洞:A工作空间是一个正常的DataWorks工作空间,可以直接在数据开发模块中进行任务开发的,导致(生产)环境的代码更新入口不唯一,整个开发流程上会有逻辑漏洞。

针对上述问题,DataWorksV2.0推出了标准模式。在标准模式下,能给数据开发者们带来几个好处:

  1. 一个DataWorks工作空间对应两个MaxCompute项目,可以将开发和生产的计算引擎分开。项目成员只拥有开发环境的权限,默认无权限操作生产环境的表,提升了生产环境数据的安全性。
  2. 标准模式下,数据开发界面默认操作开发环境的任务,生产环境的任务都是通过发布功能将任务发布至生产的。保证生产环境代码编辑入口的唯一性,提升生产环境代码的安全性。
  3. 标准模式下,开发环境默认不进行周期调度,可以减少账号下的计算资源消耗,保障生产环境任务运行的资源。

项目模式升级

在DataWorks V1.0中,创建的都是简单模式工作空间。主账号可以通过下述操作,将简单模式的工作空间升级为标准模式。

  1. 进入数据开发页面,单击右上角的工作空间管理

  2. 工作空间配置页面,单击模式后的升级为标准模式

  3. 升级为标准模式对话框中,填写开发环境下的MaxCompute项目名称,并勾选确认要升级此工作空间,单击确定

    说明 此处您需要新建一个简单模式工作空间作为开发环境下的MaxCompute项目,并可以在工作空间配置 > 计算引擎信息页面,选择使用个人账号计算引擎指定账号操作生产环境的数据。

  4. 单击确认升级提示框中的确认

    完成上述操作后,即可返回工作空间配置页面,查看该工作空间的模式已显示为标准模式

  5. 升级为标准模式对话框中,填写开发环境的项目名称,单击确定

简单模式升级为标准模式的影响

升级为标准模式后,DataWorks会将原项目中的成员加入新建的MaxCompute开发项目中,并将原项目的成员和角色都保留。但会撤销项目成员在生产项目的权限,只有项目所有者具有生产项目的权限。

例如,某公司在DataWorks上有一个A项目,单击升级为标准模式后,创建了一个开发环境的项目A_dev。原来A项目中的成员、角色、表、资源都会在A_dev项目下创建一份(只创建表,不会把表数据也克隆一份)。原A项目下的成员A1(开发角色)、B1(运维角色),同时也会加入到A_dev项目下,并保留角色权限。A项目会变成生产项目,A1和B1用户在A项目中的数据权限会被撤销,默认没有表的select和drop权限,生产项目的数据会直接受到保护。

在DataStudio(数据开发)界面,默认操作的MaxCompute项目是A_dev。如果要在数据开发界面查询生产环境的数据,需要使用项目名.表名的方式。数据开发界面只能编辑A_dev环境的代码,要更新A项目中的代码只能通过A_dev提交任务至调度系统,发布至生产环境的方式进行更新。增加了一个任务发布(审核)的流程,保障了生产环境代码的正确性。

说明 项目模式升级后,无法直接访问原项目的数据,需要申请角色权限。在数据开发界面查询的表,默认是开发环境的表。如果要访问生产表,需要申请完角色权限后,使用项目名.表名的方式访问。

升级到标准项目模式后,会将该子账号之前的角色清除。如果您的代码中写了某个账号的AK,可能会报错没有权限的问题。