External Volume是MaxCompute提供的Distributed File System和非結構化資料存放區方案,通過External Volume可以實現使用MaxCompute引擎查詢及處理OSS上的檔案資料,而無需將資料匯入到MaxCompute的表中,從而減少資料的冗餘和傳輸開銷。本文為您介紹常用的External Volume操作。
External Volume常用操作如下。
類型 | 功能 | 角色 | 操作入口 |
在專案中建立External Volume。 |
| ||
查看目標External Volume的目錄結構。 | |||
刪除目標External Volume。 |
前提條件
已安裝MaxCompute用戶端且用戶端需為v0.43.0及以上版本,詳情請參見使用本地用戶端(odpscmd)串連。您也可以使用DataWorks的資料開發或SQL查詢功能運行命令,DataWorks的資料開發或SQL查詢功能整合的MaxCompute版本需為v0.43.2及以上版本,您可以在DataWorks的資料開發或SQL查詢功能中使用
Show version;
命令查看版本,詳情請參見使用DataWorks串連。通過SDK操作時,Java SDK版本需為v0.43.0及以上版本。
申請新功能測試。
使用之前需提交表單申請在Project層級同時開啟關於External Volume的執行開關,詳情請參見新功能試用申請。
已授予訪問OSS的許可權。更多授權資訊,請參見OSS的STS模式授權。
建立External Volume
文法命令
vfs -create <volume_name>
-storage_provider <oss>
-url <oss://oss_endpoint/bucket/path>
-acd <true|false>
-role_arn <arn:aliyun:xxx/aliyunodpsdefaultrole>
參數說明如下。
參數 | 是否必選 | 說明 |
volume_name | 是 | 待建立的External Volume名稱。 |
storage_provider | 是 | 儲存提供者,目前只支援OSS,即值只能為 |
url | 是 | 資料檔案所在OSS路徑。格式為 重要 目前暫不支援
|
acd | 否 | Auto Create Directory,此參數控制如果目錄不存在是否自動建立目錄。 取值如下:
說明 當建立External Volume時候配置了 |
role_arn | 是 | 指定RAM中Role(具有訪問OSS許可權)的ARN資訊,擷取ARN資訊詳情請參見使用STS臨時訪問憑證訪問OSS。 |
建立完成的External Volume在MaxCompute中的路徑為:odps://[project_name]/[volume_name]
,其中project_name為MaxCompute專案名稱;volume_name為External Volume名稱。Spark引擎和MapReduce任務等都可以使用External Volume在MaxCompute中的路徑。
使用樣本
建立名稱為test_ext_l
的External Volume。
vfs -create test_ext_l -storage_provider oss -url oss://oss-cn-hangzhou-internal.aliyuncs.com/test/ex_volume/ -role_arn acs:ram::xxxxxxx:role/aliyunodpsdefaultrole;
查看External Volume列表、目錄結構
文法命令
--查看External Volume列表
vfs -ls /;
--查看External Volume目錄結構
vfs -ls [-R] /<volume_name>;
參數說明如下。
參數 | 是否必選 | 說明 |
volume_name | 是 | 待查看的External Volume名稱。 |
使用樣本
查看External Volume列表。
vfs -ls /;
返回結果樣本:
> vfs -ls /; Found 2 items drwxrwxrwx - 0 2023-03-11 12:06 /test_ext_l -> oss://oss-cn-shanghai-internal.aliyuncs.com/test/ex_volume drwxrwxrwx - 0 2023-03-21 07:33 /myfirst_volume4 -> oss://oss-cn-shanghai-internal.aliyuncs.com/paristech/data
如果目前使用者對某些External Volume沒有許可權,返回結果無法展示資訊。例如目前使用者是dev01,對
myfirst_volume4
沒有許可權,如需查詢myfirst_volume4
的資訊需使用如下命令將myfirst_volume4
的讀(Read)許可權賦給dev01。grant Read on volume myfirst_volume4 to RAM$xxxxxx:dev01;
說明目前支援的授權操作有:Read、Write和CreateVolume。
查看名稱為
test_ext_l
的External Volume目錄結構。vfs -ls -R /test_ext_l;
返回結果樣本:
drwxrwxrwx - 0 2023-03-27 07:31 /test_ext_l/test -> oss://oss-cn-hangzhou-internal.aliyuncs.com/test/ex_volume/test
刪除External Volume
文法命令
命令1:
vfs -rm -r /<volume_name>
命令2:
vfs -rmv /<volume_name>
參數說明如下。
參數 | 是否必選 | 說明 |
volume_name | 是 | 待刪除的External Volume名稱。 |
使用樣本
刪除名稱為test_ext_l
的External Volume。
vfs -rm -r /test_ext_l;
相關文檔
通過SDK操作External Volume請參見External Volume SDK說明。
MaxCompute可通過建立External Volume去掛載OSS的一個路徑,利用MaxCompute許可權管理系統對使用者訪問External Volume做細粒度的許可權控制,同時利用MaxCompute引擎處理External Volume內部的檔案資料。具體樣本請參見利用MaxCompute External Volume處理非結構化資料。