全部產品
Search
文件中心

MaxCompute:資源操作

更新時間:Jun 19, 2024

資源(Resource)是MaxCompute的特有概念,如果您想使用MaxCompute的自訂函數(UDF)或MapReduce功能,需要依賴資源來完成。本文為您介紹添加、查看、下載及刪除資源等常用資源操作。

資源操作常用命令如下。

類型

功能

角色

操作入口

添加資源

添加資源至MaxCompute專案中。

具備更新資源許可權(Write)的使用者。

本文中的命令您可以在如下工具平台執行:

查看資源資訊

查看資源的詳細資料。

具備讀取資源許可權(Read)的使用者。

查看資源清單

查看當前專案下所有的資源。

具備專案查看對象列表許可權(List)的使用者。

為資源建立別名

為資源建立別名。

具備更新資源許可權(Write)的使用者。

下載資源

下載MaxCompute專案中的資源到本地。

具備更新資源許可權(Write)的使用者。

刪除資源

刪除MaxCompute專案中已經存在的資源。

具備刪除資源許可權(Delete)的使用者。

添加資源

添加資源至MaxCompute專案中。

  • 使用限制

    • MaxCompute不支援添加外部表格為資源。

    • 每個資源檔的大小不能超過2048 MB。單個SQL、MapReduce作業所引用的資源總大小不能超過2048 MB。

  • 命令格式

    add file <local_file> [as <alias>] [comment '<comment>'][-f];
    add archive <local_file> [as <alias>] [comment '<comment>'][-f];
    add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'][-f];
    add py|jar <localfile> [comment '<comment>'][-f];
  • 參數說明

    • file|archive|table|py|jar:必填。資源類型。資源類型詳情請參見資源

    • local_file:必填。表示本地檔案所在路徑。並以檔案名稱作為資源名,資源名是資源的唯一標識。

    • table_name:必填。表示MaxCompute中的表名。

    • spec:必填。當添加的資源為分區表時,MaxCompute僅支援將某個分區作為資源,不支援將整張分區表作為資源。

    • alias:可選。指定資源名,不加該參數時預設檔案名稱為資源名。JAR及PYTHON類型資源不支援此參數。

    • comment:可選。為資源添加註釋。

    • -f:可選。當存在同名的資源時,此操作會覆蓋原有資源。如果不指定此選項,存在同名資源時,操作將失敗。

  • 使用樣本

    • 樣本1:添加一個FILE類型檔案資源到MaxCompute。

      add file banking.txt;

      返回結果如下。

      OK: Resource 'banking.txt' have been created.
    • 樣本2:添加一個別名為sale.res的分區表資源到MaxCompute。

      add table sale_detail partition (ds='20150602') as sale.res comment 'sale detail on 20150602' -f;

      返回結果如下。

      OK: Resource 'sale.res' have been updated.
    • 樣本3:添加Python資源到MaxCompute。

      add py python.py [comment '<comment>'][-f];

      返回結果如下。

      OK: Resource 'python.py' have been created.

查看資源資訊

查看當前專案下指定資源的資訊,包含資源名、所有者、資源類型、資源大小、建立時間、上一次修改時間、資源檔的MD5值等資訊。

  • 命令格式

    desc resource <resource_name>;
  • 參數說明

    resource_name:必填。已存在的資源名稱。

  • 傳回值說明

    • Name:資源的名稱。

    • Owner:資源所有者帳號。

    • Type:資源類型。

    • Comment:資源注釋資訊。

    • CreatedTime:資源建立時間。

    • LastModifiedTime:資源最近一次的更新時間。

    • LastUpdator:執行最近一次更新操作的帳號。

    • Size:資源檔大小,單位為MB。

    • Md5sum:資源檔的MD5值。

    說明

    MaxCompute的資源名大小寫不敏感,resource_A和 resource_a指代同一資源。

  • 使用樣本

    --查看資源topn_new.jar的資訊。
    desc resource topn_new.jar;

    返回結果如下。

    Name                                    topn_new.jar
    Owner                                   ALIYUN$****@test.aliyunid.com
    Type                                    JAR
    Comment                                 cloudopenapi
    CreatedTime                             2020-12-29 13:55:11
    LastModifiedTime                        2020-12-29 13:55:11
    LastUpdator
    Size                                    11438795
    Md5sum                                  8bcf6aabf****56c0

查看資源清單

查看當前專案下所有的資源,包含資源名、所有者、建立時間、最近一次更新時間、資源類型等資訊。

  • 命令格式

    list resources;
  • 使用樣本

    list resources;

    返回結果如下。

    Resource Name         Owner                 Creation Time         Last Modified Time    Type          Last Updator Resource Size  Source         comment
    getaddr.jar           ALIYUN$****           2020-06-18 15:47:28   2020-06-18 15:47:28   jar           1353716                                    cloudopenapi
    ip.dat                ALIYUN$****           2020-06-18 15:49:46   2020-06-18 15:49:46   file          8525962                                    cloudopenapi
    2 resources

為資源建立別名

為資源建立別名。alias命令可以在不修改代碼的前提下,在MapReduce自訂函數(UDF)代碼中,通過某個固定的資源名讀取不同資源(資料)。

  • 命令格式

    alias <alias>=<real>;
  • 參數說明

    • alias:命名後的資源別名。

    • real:資源的原名。

  • 使用樣本

    --新增資源res_20121208和res_20121209。
    add table sale_detail partition (ds='20121208') as res_20121208;
    add table sale_detail partition (ds='20121209') as res_20121209;
    --命名資源res_20121208的別名為resName,並調用它。
    alias resName=res_20121208;
    jar -resources resName -libjars work.jar  -classpath ./work.jar com.company.MainClass args ...;  
    --命名資源res_20121209的別名為resName,並調用它。
    alias resName=res_20121209;
    jar -resources resName -libjars work.jar  -classpath ./work.jar com.company.MainClass args ...; 

上例中的資源別名resName在兩個作業裡引用了不同的資源表,您無需修改代碼便可讀取到不同的資料。

下載資源

下載MaxCompute專案中的資源到本地。資源類型必須為FILE、JAR、ARCHIVE或PY,不支援Table類型。

  • 命令格式

    get resource <resource_name> <path>;
  • 參數說明

    • resource_name:必填。要下載的資源名稱。

    • path:必填。資源儲存到本地的路徑。

  • 使用樣本

    get resource getaddr.jar D:\;

刪除資源

刪除MaxCompute專案中已經存在的資源。

  • 命令格式

    drop resource <resource_name>;
  • 參數說明

    resource_name:待刪除資源的名稱。

  • 使用樣本

    drop resource getaddr.jar;

    返回結果如下。

    Confirm to "drop resource getaddr.jar" (yes/no)? y
    OK