简介:DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率!
往期回顾:
- DataWorks 功能实践速览01期——数据同步解决方案:为您介绍不同场景下可选的数据同步方案。
- DataWorks 功能实践速览02期——独享数据集成资源组:为您介绍进行数据同步时,可使用的资源组与网络连通方案、注意事项。
通过前两期的介绍,您可以了解使用DataWorks进行数据同步的主要知识点:数据同步方案和资源组,而在实际应用过程中,我们常常会需要将开发和生产环境进行隔离,开发环境用于数据同步测试,生产环境用于生产数据的同步处理。本期就为您介绍DataWorks实现开发与生产环境隔离的主要知识点。
功能推荐:标准模式——开发环境与生产环境隔离
为方便不同安全管控要求的用户生产数据,DataWorks为您提供简单模式和标准模式两种工作空间模式,其中简单模式无法设置开发环境和生产环境,而标准模式同时提供开发环境与生产环境,并将两个环境隔离开,您可以分别在开发环境和生产环境中进行数据任务处理。
Part1:简单模式与标准模式的DataWorks工作空间
首先为您介绍两种模式工作空间的主要区别。
<span>简单模式</span> | <span>标准模式</span> |
<span>在简单模式工作空间下,一个DataWorks空间下层对应一个MaxCompute项目(或一个EMR集群、Hologres数据库等),该环境即视为生产(PROD)环境。</span><span class="lake-card-margin-top lake-card-margin-bottom"><img src="https://ucc.alicdn.com/pic/developer-ecology/5905f40277b34b25b42339b43191595c.png" class="image lake-drag-image" alt="简单工作空间.png" title="简单工作空间.png"></span> | <span>在标准模式工作空间下,一个DataWorks空间下层对应两个MaxCompute项目(或两个EMR集群、Hologres数据库等),一个视为开发(DEV)环境,一个视为生产(PROD)环境。</span><span class="lake-card-margin-top lake-card-margin-bottom"><img src="https://ucc.alicdn.com/pic/developer-ecology/06025e5dcc2a4570bcea8a5c681a7e4a.png" class="image lake-drag-image" alt="标准工作空间.png" title="标准工作空间.png"></span> |
<span>计算引擎类型</span> | <span>环境</span> | 标准模式工作空间 | 简单模式工作空间<span>(开发环境即生产环境)</span> |
MaxCompute | <span>开发环境</span> | <span>页面运行任务(不可选):默认为执行任务者(当前登录者)</span> | <span>页面运行任务(不可选):默认为执行任务者(当前登录者)</span><span>调度访问身份(可选):</span><ul><li><span>阿里云主账号</span></li><li><span>阿里云RAM角色</span></li></ul><ul><li><span>任务负责人:任务Owner账号的身份</span></li></ul> |
<span>生产环境</span> | <span>调度访问身份(可选):</span><ul><li><span>阿里云主账号</span></li><li><span>阿里云RAM用户</span></li></ul><ul><li><span>阿里云RAM角色</span></li></ul> | ||
<span>E-MapReduce</span> | <span>开发环境</span> | <ul><li><span>快捷模式下访问身份:统一使用集群内的Hadoop用户。</span></li><li><span>安全模式下访问身份:任务执行者</span></li></ul> | <ul><li><span>快捷模式下访问身份:统一使用集群内的Hadoop用户。</span></li><li><span>安全模式下访问身份(可选):</span></li></ul><ul><li><ul><li><span>任务责任人</span></li><li><span>阿里云主账号</span></li></ul></li></ul><ul><li><ul><li><span>阿里云RAM用户</span></li></ul></li></ul> |
<span>生产环境</span> | <ul><li><span>快捷模式下访问身份:统一使用集群内的Hadoop用户。</span></li><li><span>安全模式下访问身份(可选):</span></li></ul><ul><li><ul><li><span>任务责任人</span></li><li><span>阿里云主账号</span></li></ul></li></ul><ul><li><ul><li><span>阿里云RAM用户</span></li></ul></li></ul> | ||
<span>Hologres</span> | <span>开发环境</span> | <span>页面运行任务(不可选):默认为执行任务者(当前登录者)。</span> | <span>页面运行任务(不可选):默认为执行任务者(当前登录者)</span><span>调度访问身份(可选):</span><ul><li><span>阿里云主账号</span></li><li><span>阿里云RAM用户</span></li></ul> |
<span>生产环境</span> | <span>调度访问身份(可选):</span><ul><li><span>阿里云主账号</span></li><li><span>阿里云RAM用户</span></li></ul> |
<span>细分特点</span> | <span>简单模式</span> | <span>标准模式</span> |
<span>权限概述</span> | <span>在简单模式空间下,DataWorks的“开发”角色因为与所绑定MaxCompute项目的“Role_Project_Dev” Role进行了映射,因此DataWorks</span><span>开发角色天然能够读取MaxCompute项目内的所有数据</span><span>。</span> | <span>在标准模式空间下,DataWorks的“开发”角色因为与所绑定MaxCompute项目(dev环境)的“Role_Project_Dev” Role进行了映射,因此:</span><ul><li><span>DataWorks开发角色天然能够读取MaxCompute项目(dev环境)内的所有数据。</span></li><li><span>由于没有和MaxCompute项目(PROD环境)的role映射,因此默认情况下DataWorks</span><span>开发角色无MaxCompute(PROD环境)的数据权限</span><span>。</span></li></ul> |
<span>优点</span> | <span>简单、方便、易用</span><span>。</span><span>仅需要授权数据开发人员“DataWorks开发角色”即可完成所有数据仓库开发工作。</span> | <span>安全、规范</span><span>。</span><ul><li><span>具备安全、规范的代码发布管控流程(包含代码评审、代码DIFF查看等功能),保障生产环境稳定性,避免不必要的因代码逻辑引起的脏数据蔓延或任务报错等非预期情况。</span></li><li><span>数据访问得到有效管控,数据安全得以保障。</span></li></ul> |
<span>缺点</span> | <span>存在</span><span>不稳定、不安全</span><span>的风险。</span><ul><li><span>开发角色可以不经过任何人审批,随时新增、修改代码并提交至调度系统,给生产环境带来不稳定因素。</span></li><li><span>面向MaxCompute计算引擎时,开发角色默认拥有当前MaxCompute项目所有表的读写权限,可随意对表进行增加、删除和修改等操作,存在数据安全风险。</span></li></ul> | <span>流程相对复杂</span><span>,一般情况下无法一人完成所有数据开发、生产流程。</span> |
<span>环境类型</span> | <span>标准模式</span> | <span>示例</span> |
<span>开发环境</span> | <span>项目名_dev.表名</span> | <span>在projectA项目下创建一个开发库表user_info,则数据库表名为:projectA_dev.user_info。</span> |
<span>生产环境</span> | <span>项目名.表名</span> | <span>在projectA项目下创建一个生产库表user_info,则数据库表名为:projectA.user_info。</span> |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。