CREATE PACKAGE

资源提供方在MaxCompute项目中创建Package。

背景信息

假设某个阿里云账号下有多个MaxCompute项目,其中项目A里有一批表、资源文件、自定义函数需要分享给其他项目使用。通常您可以使用如下方法实现资源分享:

  • 将其他项目中需要使用资源的用户都添加到A项目,并逐个执行授权操作。但该方法比较繁琐,不推荐在跨项目访问资源场景下使用。仅当需要精细控制资源由单人使用,且申请人是本业务项目团队成员时,建议使用该方式。更多授权语法信息,请参见ACL权限控制

  • 基于Package实现跨项目资源分享。

    Package是一种跨项目共享数据及资源的机制。A项目的所有者对其他项目需要使用的资源进行打包(也就是创建Package),然后许可其他项目安装此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客户端执行show packages;命令获取已创建的Package信息。

使用示例

假设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列表。