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