全部產品
Search
文件中心

MaxCompute:External Volume操作

更新時間:Jun 19, 2024

External Volume是MaxCompute提供的Distributed File System和非結構化資料存放區方案,通過External Volume可以實現使用MaxCompute引擎查詢及處理OSS上的檔案資料,而無需將資料匯入到MaxCompute的表中,從而減少資料的冗餘和傳輸開銷。本文為您介紹常用的External Volume操作。

External Volume常用操作如下。

類型

功能

角色

操作入口

建立External Volume

在專案中建立External Volume。

  • External Volume所有者。

  • 專案所有者(Project Owner)。

  • 具備Super_Administrator或Admin角色的使用者。

查看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,即值只能為oss

url

資料檔案所在OSS路徑。格式為oss://<oss_endpoint>/<Bucket名稱>/<OSS目錄名稱>

重要

目前暫不支援url指定的OSS路徑只指定為OSS Bucket名稱,需要有二級目錄名稱。

  • oss_endpoint:OSS訪問網域名稱資訊。您需要使用OSS提供的內網網域名稱,否則將產生OSS流量費用。例如oss://oss-cn-beijing-internal.aliyuncs.com/xxx。更多OSS內網網域名稱資訊,請參見訪問網域名稱和資料中心

    說明

    建議資料檔案存放的OSS地區與MaxCompute專案所在地區保持一致。由於MaxCompute只在部分地區部署,跨地區的資料連通性可能存在問題。

  • Bucket名稱:OSS儲存空間名稱,即Bucket名稱。更多查看儲存空間名稱資訊,請參見列舉儲存空間

  • OSS目錄名稱。目錄後不需要指定檔案名稱。

acd

Auto Create Directory,此參數控制如果目錄不存在是否自動建立目錄。

取值如下:

  • false(預設值):如果目錄不存在則報錯建立失敗。

  • true:使用role_arn授權建立目錄。

說明

當建立External Volume時候配置了acd參數,MaxCompute會先使用外部儲存產品的授權建立目錄,如果建立外部儲存目錄成功,無論External Volume是否建立成功,MaxCompute都不會刪除已建立成功的外部儲存目錄;如果外部儲存目錄存在,當建立External Volume時,即使acd參數為true,也不會因為目錄存在而衝突導致失敗。

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; 

相關文檔