资源提供方在MaxCompute项目中创建Package。
背景信息
假设某个阿里云账号下有多个MaxCompute项目,其中项目A里有一批表、资源文件、自定义函数需要分享给其他项目使用。通常您可以使用如下方法实现资源分享:
将其他项目中需要使用资源的用户都添加到A项目,并逐个执行授权操作。但该方法比较繁琐,不推荐在跨项目访问资源场景下使用。仅当需要精细控制资源由单人使用,且申请人是本业务项目团队成员时,建议使用该方式。更多授权语法信息,请参见ACL权限控制。
基于Package实现跨项目资源分享。
Package是一种跨项目共享数据及资源的机制。A项目的所有者对其他项目需要使用的资源进行打包(也就是创建Package),然后许可其他项目安装此Package。其他项目的所有者安装Package之后,就可以自行管理Package是否需要进一步授权给自己项目下的用户。完整实现流程如下。
使用限制
Package的使用限制如下:
一个Package中最多可以包含1000个资源。
一个Package最多允许安装至10万个MaxCompute项目中。
一个MaxCompute项目最多可以从另外一个MaxCompute项目安装100个Package。
一个MaxCompute项目最多可以创建10万个Package。
一个MaxCompute项目最多可以安装10万个Package。
本命令为CMD命令,仅支持在客户端(odpscmd)工具中运行。
命令格式
create package <package_name>;
参数说明
参数名称 | 是否必填 | 说明 |
package_name | 是 | 指定Package的名称,项目内唯一。可以包含字母、下划线(_)或数字,但是不能以数字开头。 您可以通过MaxCompute客户端执行 |
使用示例
假设Bob@aliyun.com是test_project_a的项目所有者,现需要允许其他项目访问test_project_a中的部分资源。创建Package,命令示例如下。
--Bob进入项目test_project_a。
use test_project_a;
--创建Package。
create package datashare;
相关命令
ADD TO PACKAGE:将资源使用方需要的资源添加至创建的Package中。
REMOVE FROM PACKAGE:删除Package中已添加的资源。
ALLOW PROJECT:资源提供方授予其他项目使用Package的权限。
DISALLOW PROJECT:资源提供方撤销授予其他项目使用Package的权限。
DESCRIBE PACKAGE:在MaxCompute项目中查看已创建的Package详细信息
DROP PACKAGE:删除已创建的Package。
INSTALL PACKAGE:在目标MaxCompute项目中安装Package。
UNINSTALL PACKAGE:为目标MaxCompute项目卸载已安装的Package。
GRANT:为用户或角色授予访问Package的权限。
REVOKE:撤销为用户或角色授予的访问Package的权限。
SHOW:在MaxCompute项目中查看已创建或已安装的Package列表。