資源(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