简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率!

往期回顾:

通过前两期的介绍,您可以了解使用DataWorks进行数据同步的主要知识点:数据同步方案和资源组,而在实际应用过程中,我们常常会需要将开发和生产环境进行隔离,开发环境用于数据同步测试,生产环境用于生产数据的同步处理。本期就为您介绍DataWorks实现开发与生产环境隔离的主要知识点。

功能推荐:标准模式——开发环境与生产环境隔离

为方便不同安全管控要求的用户生产数据,DataWorks为您提供简单模式标准模式两种工作空间模式,其中简单模式无法设置开发环境和生产环境,而标准模式同时提供开发环境与生产环境,并将两个环境隔离开,您可以分别在开发环境和生产环境中进行数据任务处理。

Part1:简单模式与标准模式的DataWorks工作空间

首先为您介绍两种模式工作空间的主要区别。

简单模式

标准模式

在简单模式工作空间下,一个DataWorks空间下层对应一个MaxCompute项目(或一个EMR集群、Hologres数据库等),该环境即视为生产(PROD)环境。

在标准模式工作空间下,一个DataWorks空间下层对应两个MaxCompute项目(或两个EMR集群、Hologres数据库等),一个视为开发(DEV)环境,一个视为生产(PROD)环境。

由上可见,DataWorks的标准模式工作空间可以将开发、生产环境进行隔离,因此,如果您使用了标准模式后,进行数据访问与权限管控时,开发环境与生产环境的使用注意事项不一致。

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

您可以在DataWorks的工作空间配置 > 计算引擎信息区域,设置不同模式下,工作空间的数据访问模式。

计算引擎类型

环境

标准模式工作空间

简单模式工作空间

(开发环境即生产环境)

MaxCompute

开发环境

页面运行任务(不可选):默认为执行任务者(当前登录者)

页面运行任务(不可选):默认为执行任务者(当前登录者)

调度访问身份(可选):

  • 阿里云主账号
  • 阿里云RAM角色
  • 任务负责人:任务Owner账号的身份

生产环境

调度访问身份(可选):

  • 阿里云主账号
  • 阿里云RAM用户
  • 阿里云RAM角色

E-MapReduce

开发环境

  • 快捷模式下访问身份:统一使用集群内的Hadoop用户。
  • 安全模式下访问身份:任务执行者
  • 快捷模式下访问身份:统一使用集群内的Hadoop用户。
  • 安全模式下访问身份(可选):
    • 任务责任人
    • 阿里云主账号
    • 阿里云RAM用户

生产环境

  • 快捷模式下访问身份:统一使用集群内的Hadoop用户。
  • 安全模式下访问身份(可选):
    • 任务责任人
    • 阿里云主账号
    • 阿里云RAM用户

Hologres

开发环境

页面运行任务(不可选):默认为执行任务者(当前登录者)。

页面运行任务(不可选):默认为执行任务者(当前登录者)

调度访问身份(可选):

  • 阿里云主账号
  • 阿里云RAM用户

生产环境

调度访问身份(可选):

  • 阿里云主账号
  • 阿里云RAM用户

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

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引擎在不同模式下数据库表命名规范

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

环境类型

标准模式

示例

开发环境

项目名_dev.表名

在projectA项目下创建一个开发库表user_info,则数据库表名为:projectA_dev.user_info。

生产环境

项目名.表名

在projectA项目下创建一个生产库表user_info,则数据库表名为:projectA.user_info。

更多的简单模式与标准模式的区别可前往帮助中心

场景实践:

权限管理与规范化数据开发:通过本实践,您可以了解使用标准模式的工作空间时,用户进行数据开发的标准流程与权限管控建议。

原文链接

本文为阿里云原创内容,未经允许不得转载。

DataWorks 功能实践速览03期 — 生产开发环境隔离的更多相关文章

  1. 读 Linux 像读小说「GitHub 热点速览 v.22.03」

    本周特推选取了一个画风有点意思的 Linux 代码带读项目 flash-linux0.11-talk,希望有趣的文风能带你读完 Linux 代码.当然画风可以增加阅读体验,彩色标记也是一种学习方法-- ...

  2. 互联网巨头们的 SRE 运维实践「GitHub 热点速览 v.21.27」

    作者:HelloGitHub-小鱼干 本周大热点无疑是前几天 GitHub 发布的 Copilot,帮你补全代码,给你的注释提出建议,预测你即将使用的代码组件-如此神奇的 AI 技术,恰巧本周微软也开 ...

  3. 2023 年该学点什么技术?「GitHub 热点速览 v.23.03」

    春节期间,小鱼干读了一篇万字回顾数据库行业的文章,在文字缝隙里我看见了两个词:AI+ 和数据两个词(当然数据是废话,毕竟是一个数据库的回顾文).在 GitHub 上热点趋势上,可见到 AI+ 的身影, ...

  4. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  5. .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践

    心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14 ...

  6. 摆脱 996——GitHub 热点速览 v.21.03

    作者:HelloGitHub-小鱼干 Twitter 有位程序员总结了本周的 GitHub 中文程序员的看点:国内程序员日常--考公务员.996.抢茅台.刷算法.整健康码.在本期热点速览里,小鱼干收录 ...

  7. 自制车速记录仪「GitHub 热点速览 v.21.31」

    作者:HelloGitHub-小鱼干 如果你有一辆普通的自行车,那么就可以使用下 X-TRACK 这个项目制作一个自己的测速器,记录你的行驶轨迹还有车速,体验一把硬件发烧友的乐趣.如果你有一个非 ma ...

  8. 学就完事了!万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18

    本文首发于「HelloGitHub」微信公众号,搜索「HelloGitHub」点击关注解锁更多宝藏! 作者:HelloGitHub-小鱼干 新手开始学习的时候,都会遇到一个问题:如何开始学 xx?Se ...

  9. 代码混淆保安全「GitHub 热点速览 v.21.43」

    作者:HelloGitHub-小鱼干 虽然让代码难以阅读看似是件难以理解的事情,但是混淆后的代码起到了类似加密的作用,而且经过混淆的代码依旧能实现原代码的功能.javascript-obfuscato ...

  10. 解放生产力「GitHub 热点速览 v.21.51」

    作者:HelloGitHub-小鱼干 解放生产力一直都是我们共同追求的目标,能在摸鱼的空闲把赚了.而大部分好用的工具便能很好地解放我们的生产力,比如本周特推 RedisJSON 不用对 JSON 做哈 ...

随机推荐

  1. Android线程池封装库

    目录介绍 1.遇到的问题和需求 1.1 遇到的问题有哪些 1.2 遇到的需求 1.3 多线程通过实现Runnable弊端 1.4 为什么要用线程池 2.封装库具有的功能 2.1 常用的功能 3.封装库 ...

  2. App启动页面优化

    目录介绍 01.存在白屏问题 1.1 问题描述 1.2 问题分析 02.解决白屏的办法 2.1 解决方案分析 2.2 第一种解决方案 2.3 第二种解决方案 2.4 注意要点 03.Applicati ...

  3. web前端工程化合集

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.Git 1. git 和 svn 的区别 git 和 svn 最大的区别在于 git 是分布式的,而 svn 是集中式的.因此我们不能 ...

  4. Python 批量合并csv文件

    一.批量合并csv文件<方法1> import pandas as pd import glob import os # 获取所有CSV文件的路径 file_paths = glob.gl ...

  5. Swift Structured Concurrency

    异步函数 异步函数概念 异步和并发是两个不同的概念,并发(Concurrency)是指多个任务同时执行,这里的同时不是严格意义上的同一时刻,而是在稍大时间粒度上,多个任务可以同时推进,并发的实现可以是 ...

  6. BABYRE 【攻防世界】 Reverse

    题目 丢进Exeinfo PE里面,得到64bit,无壳 丢进IDA pro(x64)里面,找到主函数 代码中有一个花指令:*(unsigned int (__fastcall **)(char *) ...

  7. 采用DevOps的7个主要障碍,你一定不知道!

    尽管DevOps已经相对成熟,DevOps哲学仍然在回避甚至是最著名和最有资源的组织.一份令人震惊的Gartner报告显示,75%的DevOps项目未能实现其目标.为什么DevOps的失败率如此之高? ...

  8. 6 JavaScript条件判断

    6 条件判断 除了HTML以外. 几乎所有的编程语言都有条件判断的功能. 比如, python, 我们用if语句来做条件判断. 到了javascript中也是一样的, 也使用javascript来做条 ...

  9. #根号分治,分块,dfs序#洛谷 7710 [Ynoi2077] stdmxeypz

    题目传送门 分析 首先把距离变成深度,用dfs序转成区间问题,考虑分块,散块直接改 问题是整块,如果模数比较大,可以以深度为第一维下标差分标记,这样查询时就可以前缀和知道答案 如果模数比较小,那么给该 ...

  10. 每日一题--Python打印金字塔

    def day1(num): s = 'abcdefghijklmnopqrstuvwxyz' * (num // 26 + 1) for i in range(1, num + 1): print( ...