项目(Project)是MaxCompute的基本组织单元,是进行多用户隔离和访问控制的主要边界。您开通MaxCompute服务后,需要通过项目使用MaxCompute。本文为您介绍如何通过MaxCompute控制台创建、管理MaxCompute项目。
前提条件
阿里云账号或RAM用户已开通MaxCompute服务。
默认只有阿里云账号可以创建、配置和删除项目以及变更项目状态,如果您需要以RAM用户管理MaxCompute项目,请确认已获取RAM用户账号并已授予AliyunMaxComputeFullAccess系统策略或自定义RAM策略权限。
更多创建或获取RAM用户信息操作,请参见准备RAM用户。
权限说明
阿里云账号:拥有项目管理所有查看和操作权限。
RAM用户:
需将RAM用户添加到项目中,在项目列表中才可见对应项目。
创建、删除、修改项目的默认Quota和项目冻结、恢复操作需获取RAM权限,详情请参见RAM权限。
进入项目配置页面,进行参数配置、角色权限、Package管理操作需有项目的相关管理权限,内置角色Admin、Super_Administrator,自定义管理权限请参见项目管理类权限一览表。
注意事项
创建MaxCompute项目时,您需要注意:
使用阿里云账号创建MaxCompute项目后,您具备项目内所有内容的操作权限。任何人未经授权无法访问该项目。
对于RAM用户创建的MaxCompute项目,RAM用户和归属的阿里云账号同时具备项目内所有内容的操作权限。其他人未经授权无法访问该项目。
对于RAM用户创建的MaxCompute项目,为方便管理,MaxCompute会默认赋予RAM用户该项目的Super_Administrator角色。
创建项目
MaxCompute控制台创建的Project允许被各客户端使用,DataWorks提供统一的全链路大数据开发治理平台,紧密的集成MaxCompute,其工作空间标准模式不支持绑定存量MaxCompute项目。推荐您直接通过DataWorks创建MaxCompute项目并进行使用,详情请参见创建工作空间。
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择工作区 > 项目管理。
在项目管理页面,单击新建项目。
在新建项目对话框,根据界面提示配置参数。
如下参数需重点关注。
参数
说明
项目名称
字母开头,包含字母、数字以及下划线(_),长度为3~28个字符,名称全局唯一。
计算资源付费类型
默认计算Quota的计费类型。
默认Quota
用于实现计算资源分配。
不指定计算Quota的情况下,该项目发起的作业将消耗默认Quota资源。更多计算资源使用请参见计算资源-Quota使用。
单SQL消费限制
单SQL消费的最高阈值。
单位:扫描量(GB)*复杂度。非必填项,当选择按量付费计费类型时建议设置,可以避免非预期的单SQL消费过高。同时也建议配置实时消费监控告警,多方位监控限制消费超出预期,详情请参见消费监控告警。
数据类型
MaxCompute数据类型包含1.0数据类型、2.0数据类型和Hive兼容类型。
您需要根据业务情况选择合适的数据类型版本,三种数据类型版本的区别请参见数据类型版本说明。
是否加密
指定创建的MaxCompute项目是否需要开启数据加密功能。更多数据加密信息,请参见存储加密。
当选择需要加密时,需要选择密钥和对应算法:
密钥:项目空间使用的密钥类型,包含默认密钥(MaxCompute Default Key)和自带密钥(BYOK)。默认密钥(MaxCompute Default Key)是MaxCompute内部创建的默认密钥。
算法:密钥支持的加密算法,包含AES256、AESCTR和RC4。
单击确定,完成新建项目。
配置项目
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择工作区 > 项目管理。
在项目管理页面,单击目标项目操作列的管理。
参数配置。
在项目配置页面,单击参数配置。
在参数配置页签,可配置如下参数。
参数分类
参数
说明
基础信息
默认计算Quota
可选择更换项目绑定的默认计算Quota。
存储量(GB)
查看项目当前存储大小,此存储量与计量口径一致,即按Project采集压缩后的逻辑存储大小。
数据传输服务
可选择更换项目绑定的数据传输服务资源组。
Default(数据传输服务共享资源组):该项目不允许使用数据传输服务(包年包月)资源组。不管开启成默认数据传输服务资源组取值是什么,该项目默认提交的数据传输服务会自动使用Default资源组。
数据传输服务(包年包月)资源组:该项目允许使用数据传输服务(包年包月)资源组。
开启成默认数据传输服务资源组的值为开启时,该项目默认提交的数据传输服务会自动使用数据传输服务(包年包月)资源组。
开启成默认数据传输服务资源组的值为关闭时,该项目默认提交的数据传输服务会自动使用Default资源组。
说明如果需要使用数据传输服务(包年包月)资源组,需要在数据传输任务中手工指定数据传输服务(包年包月)资源组。
开启成默认数据传输服务资源组
可选择开启或者关闭。
开启:表示该项目默认提交的数据传输任务会使用数据传输服务资源组绑定的数据传输服务资源组。
关闭:表示该项目默认提交的数据传输任务会使用数据传输服务共享资源组。
超级管理员
成员
查看或编辑项目的
super_administrator
角色成员,此处设置效果与角色权限页签里对super_administrator
角色的成员管理一致,只是此操作支持RAM权限校验,即RAM用户拥有UpdateUsersToSuperAdmin
权限后即可在此设置项目的super_administrator
角色成员,详情请参见RAM权限。基础属性
允许分区表全表扫描
设置项目空间是否允许全表扫描,即为设置
odps.sql.allow.fullscan
属性。全表扫描会占用大量资源,为提升处理效率,不建议开启该功能备份数据保留天数
设置项目空间备份数据的保留天数,即为设置
odps.timemachine.retention.days
属性。在此期间,您可以将当前版本恢复至任意一个备份的数据版本。取值范围为[0,30],默认值为1,0代表关闭备份功能。
数据类型版本
可选择项目的数据类型版本,包含1.0数据类型、2.0数据类型和Hive兼容类型。
三种数据类型版本的区别请参见数据类型版本说明。
开启decimal2.0
可选择项目是否开启MaxCompute 2.0的Decimal数据类型,即为设置
odps.sql.decimal.odps2
属性。单SQL消费限制
设置单SQL消费的最高阈值,即为设置
odps.sql.metering.value.max
属性,详细内容请参见消费监控告警。单位:扫描量(GB)*复杂度。
存储加密状态
此项目前仅能查看,不可编辑,项目是否加密仅在创建项目时进行定义。
是否需配置生命周期
设置项目空间下的表是否需要配置生命周期,即为设置
odps.table.lifecycle
属性,有如下取值。optional:创建表时,Lifecycle子句为可选设置,如果不设置表的生命周期,则该表永久有效。
mandatory:Lifecycle子句为必选设置,用户必须设置表的生命周期。
inherit:创建表时,如果不设置表的生命周期,则该表的生命周期为odps.table.lifecycle.value的值,odps.table.lifecycle.value属性设置表的生命周期,单位为:天。取值范围为
1~37231
,默认值为37231。
项目时区
选择项目空间的时区,即为设置
odps.sql.timezone
属性。权限属性
使用ACL授权
设置是否使用ACL权限控制功能,即为设置
CheckPermissionUsingACL
属性,默认为使用状态。使用Policy授权
设置是否使用Policy权限控制功能,即为设置
CheckPermissionUsingACL
属性,默认为使用状态。允许对象创建者操作对象
设置是否允许对象创建者拥有对象的访问权限,即为设置
ObjectCreatorHasAccessPermission
属性。默认为允许状态。允许对象创建者授权对象
设置是否允许对象创建者拥有对象的授权权限,即为设置
ObjectCreatorHasGrantPermission
属性。默认为允许状态。启动Label访问控制
设置是否使用Label权限控制功能,即设置
LabelSecurity
属性,默认为不使用状态。项目空间数据保护
设置是否开启项目的数据保护机制,即设置
ProjectProtection
属性,禁止或允许数据流出项目。如选择开启项目空间数据保护,还允许设置例外或受信任项目,详情请参见数据保护机制。
开启Download权限
设置是否开启Download权限控制功能,即设置
odps.security.enabledownloadprivilege
属性。IP白名单
经典网络IP
设置经典网络下的IP白名单,仅允许白名单内的设备访问项目空间。
说明如果只配置经典网络IP白名单,则经典网络访问受配置限制,VPC网络访问全部禁止。
VPC网络IP
设置VPC网络下的IP白名单,仅允许白名单内的设备访问项目空间。
说明如果只配置VPC网络IP白名单,则VPC网络访问受配置限制,经典网络访问全部禁止。
外部网络
可用的外部网络地址
可添加或删除需要访问的目标公网IP或域名、端口。详情请参见访问公网方案。
角色管理。
在角色权限页签,可对项目进行角色权限管理,包含角色增、删、改以及将角色授权给用户。
说明默认只有阿里云账号有权限对项目进行角色管理,如果您需要以RAM用户身份进行,需要拥有对应项目的管理权限角色。
在项目配置页面,单击角色权限。
在角色权限页签,单击新增项目级别角色。
在新建角色对话框,请根据界面提示新建角色并授权。
支持创建管理类(Admin)角色和资源操作类(Resource)角色。需重点关注授权方式参数,角色授权支持ACL和Policy两种方式,各类对象对应的权限说明请参见MaxCompute权限。
ACL:支持对Resource类型角色批量添加多个Project对象进行授权。
说明提交的时候注意不要关闭进度条或页面,否则授权将会被中断。
Policy:主要解决ACL授权机制无法解决的Admin类型权限以及Resource类型权限对一些复杂授权场景,如一次操作对一组对象进行授权(所有表或以xxx为开头的表等,用通配符
*
表达),或进行带限制条件的授权。授权语法请参见Policy概况。Policy授权示例。
支持所有管理类权限的Admin角色。
{ "Statement":[ { "Action":[ "odps:*" ], "Effect":"Allow", "Resource":[ "acs:odps:*:projects/project_name/authorization/*" ] } ], "Version":"1" }
支持Project内所有
tmp
开头的表查询权限的Resource角色。{ "Statement":[ { "Effect":"Allow", "Action":[ "odps:Describe", "odps:Select" ], "Resource":[ "acs:odps:*:projects/project_name/tables/tmp_*", "acs:odps:*:projects/project_name/schemas/*/tables/tmp_*" ] } ], "Version":"1" }
单击确定,完成新建角色与授权。
其他相关操作。
查看角色。
在角色权限的角色列表可以查看项目空间下所有的角色,包括内置的Super_Administrator和Admin。单击目标角色操作列的编辑角色,可以查看指定角色的权限。
说明如果角色是通过Policy方式创建可以正常显示Policy的内容,如果角色是通过ACL方式创建,那么会有可能因为Table、Resource、Function等对象过多无法展示,只能搜索单个对象查看action是否有授权或通过执行
describe role <role_name>;
命令查看整个角色权限内容。编辑角色权限。
单击目标角色操作列的编辑角色,ACL授权方式的角色,可以添加或移除某个对象的Action,或将某对象添加或移除,如果需要移除的对象没在角色列表里显示,可通过命令进行编辑,详情请参见项目级别角色授权。
说明如果MaxCompute项目与DataWorks工作空间关联,则DataWorkd会给对应的项目初始化一些角色,这些角色有固定的权限符合DataWorks的业务逻辑,不建议对这些角色进行更新。具体DataWorks初始化的角色请参见附录:空间级预设角色与MaxCompute引擎权限的映射关系。
当通过ACL方式已授权角色非常多的对象时,打开编辑角色对话框可能会超时,如果超时,暂时只能通过命令查看和编辑该角色的ACL权限。
查看角色成员。
单击目标角色操作列的成员管理,在成员管理对话框可以查看角色成员、将角色赋予用户或将用户从角色里移除(即收回赋予用户的角色)。
删除角色。
单击目标角色操作列的删除,即在MaxCompute项目中删除已创建的角色。等同于执行
drop role <role_name>;
命令,详情请参见角色规划。启用或禁用租户级别角色。
在角色权限页签,角色级别选择租户,单击目标角色操作列的启用或禁用。
说明涉及项目空间内的对象,需要在项目空间内进行启用才生效。
配置Package。
MaxCompute跨项目访问资源授权方式推荐使用Package,Package常用于只需分享Tables、Resources、Functions但不需要共享计算资源或无人员管理的数据权限管理需求,Package主要分为资源分享方和资源访问方,一个完整的通过Package进行跨项目授权访问的步骤流程如下。
资源分享方分享。
在项目配置页面,单击新建Package。
在新建Package对话框,填写package名称和选择要分享的Table、Resource、Function。
单击确定,完成新建Package。
单击Package操作列的允许项目。
在允许安装此package的项目对话框,输入可使用此Package的项目名称。
单击确定。
资源访问方访问。
在项目配置页面,单击安装Package。
在安装Package对话框,输入要访问的Package名称。
单击确定,便可以访问Package。
(可选)将Package授权给角色,再将角色授权给用户,详情请参见角色管理。
项目成员查看。
MaxCompute的项目数据权限管控要求将用户(User)加入项目中进行授权。您可在项目配置页面,单击项目成员页签,查看项目内所有成员的相关权限详情。
变更项目状态
MaxCompute项目支持变更状态的操作有如下两种操作。
冻结:即停止服务,项目将被禁用,无法运行作业,项目内数据也不能被查询,但是数据将继续保留,因此会产生存储费用。冻结后的项目状态为停服。
恢复:将停服状态、预删除状态的项目恢复,恢复成功后项目状态将为正常。
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择工作区 > 项目管理。
在项目管理页面的项目列表,单击目标项目操作列的冻结或恢复。
在确认对话框,单击确定。
删除项目
删除项目时支持立即删除,即彻底删除,永久不可恢复,删除时需要短信验证,默认验证码发送到阿里云账号绑定的手机(。 里绑定设置的手机号)
RAM角色删除项目不支持短信验证,因此为了避免误删除不建议RAM角色拥有删除项目权限。
项目立即删除后,清理数据需要一定的时间,项目数量越大需要清理的时间越长。因此,若立即创建同名项目时报错表示项目已存在,则需要稍后再重试。
需要注意项目删除将导致如下后果:
立即删除后,项目内所有表(数据)将立即被删除,并且永久无法恢复。
所有向该MaxCompute项目提交的任务因项目不存在都将运行失败。
如果MaxCompute项目已经绑定DataWorks工作空间,删除MaxCompute项目后DataWorks工作空间将无法正常使用并不能恢复,请先访问DataWorks进行解绑再删除MaxCompute项目。
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择工作区 > 项目管理。
在项目管理页面的项目列表,单击目标项目操作列的删除。
在删除项目对话框,选择删除类型,单击确定。
项目标签管理
MaxCompute支持用户为项目绑定或解绑标签,标签的详细用法及使用限制请参见标签概述。
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择工作区 > 项目管理。
创建标签。
单个项目创建标签。
将鼠标悬浮于目标项目所在标签列的图标上,单击绑定/编辑。
在编辑标签对话框中,输入标签键和标签值。
单击确定,并在标签编辑成功对话框中单击关闭。
批量创建多个项目的标签。
选中要批量添加标签的项目,单击页面底部的批量打标。
在编辑标签对话框中,输入标签键和标签值。
单击确定,并在标签编辑成功对话框中单击关闭。
标签筛选。
项目绑定标签后,您可以在标签筛选下拉列表中根据标签的键和值筛选项目。
(可选)解绑标签。
单个项目解绑标签。
将鼠标悬浮于目标项目后所在标签列的图标上,单击编辑。
在编辑标签对话框中,单击要解绑标签后方的图标。
单击确定,并在标签编辑成功对话框中单击关闭。
批量解绑多个项目的标签。
选中要批量解绑标签的项目,单击页面底部的批量删除标签。
在批量解绑标签对话框中,选中需要解绑标签左侧的复选框。
单击解绑x个标签(x为具体的解绑标签数),并在标签编辑成功对话框中单击关闭。