すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:外部ボリューム操作

最終更新日:Nov 03, 2025

外部ボリュームは、MaxCompute が提供する分散ファイルシステムおよび非構造化データストレージソリューションです。この機能を使用すると、Object Storage Service (OSS) に保存されているファイル内のデータを MaxCompute テーブルにインポートすることなく、直接クエリおよび処理できます。このプロセスにより、データ冗長性と伝送オーバーヘッドが削減されます。

一般的な操作

操作

説明

権限のあるユーザー

操作プラットフォーム

外部ボリュームを作成する

プロジェクトに外部ボリュームを作成します。

  • 外部ボリュームの所有者

  • プロジェクトオーナー

  • Super_Administrator ロールまたは Admin ロールが割り当てられているユーザー

外部ボリュームのディレクトリ構造を表示する

外部ボリュームのディレクトリ構造を表示します。

外部ボリュームを削除する

外部ボリュームを削除します。

前提条件

  • MaxCompute クライアント V0.43.0 以降がインストールされていること。 詳細については、「MaxCompute クライアント (odpscmd)」をご参照ください。

    このトピックで提供されているコマンドは、DataWorks コンソールの DataStudio ページまたは SQL クエリページでも実行できます。 DataWorks コンソールでコマンドを実行するには、DataStudio または SQL クエリと統合されている MaxCompute クライアントのバージョンが V0.43.2 以降である必要があります。 DataStudio ページまたは SQL クエリページで Show version; コマンドを実行して、MaxCompute クライアントのバージョンをクエリできます。 詳細については、「DataWorks で MaxCompute を使用する」をご参照ください。

    説明

    DataWorks コンソールの DataStudio ページまたは SQL クエリページでコマンドを実行する場合、MaxCompute クライアントは V0.43.2 以降である必要があります。 Show version; コマンドを使用してバージョンを確認できます。

  • Java 用 SDK を使用する場合、Java 用 SDK のバージョンは V0.43.0 以降である必要があります

  • Alibaba Cloud アカウントまたは RAM ユーザーに OSS へのアクセス権限が付与されていること。 権限付与の詳細については、「OSS の STS 認証」をご参照ください。

外部ボリュームを作成する

構文

vfs -create <volume_name>  
    -storage_provider <oss> 
    -url <oss://oss_endpoint/bucket/path>
    -acd <true|false>
    -role_arn <arn:aliyun:xxx/aliyunodpsdefaultrole> 

次の表にパラメーターを示します。

パラメーター

必須

説明

volume_name

はい

作成する外部ボリュームの名前。

storage_provider

はい

ストレージプロバイダー。 OSS のみがサポートされています。 したがって、このパラメーターを oss に設定する必要があります。

url

はい

データファイルが保存されている OSS ディレクトリ。 OSS ディレクトリは oss://<oss_endpoint>/<Bucket name>/<OSS directory name> 形式です。

重要

url パラメーターには、バケット名とレベル 2 ディレクトリ名の両方を指定する必要があります。

  • oss_endpoint: OSS のエンドポイント。 インターネットトラフィックによって発生する追加料金を防ぐために、OSS の内部エンドポイントを使用する必要があります (例: oss://oss-cn-beijing-internal.aliyuncs.com/xxx)。 OSS の内部エンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

    説明

    データファイルを格納する OSS バケットは、MaxCompute プロジェクトと同じリージョンにデプロイすることをお勧めします。 MaxCompute は一部のリージョンにのみデプロイできます。 したがって、リージョン間のデータ接続の問題が発生する可能性があります。

  • バケット名: OSS バケットの名前。 バケット名の詳細については、「バケットを一覧表示する」をご参照ください。

  • OSS ディレクトリ名: ディレクトリ名の後にファイル名を付ける必要はありません。

acd

いいえ

ディレクトリが存在しない場合にディレクトリを自動的に作成するかどうかを指定します。

有効な値:

  • false: ディレクトリが存在しない場合、システムが外部ボリュームの作成に失敗したことを示すエラーが報告されます。 これはデフォルト値です。

  • true: ディレクトリが存在しない場合、システムは role_arn に基づいてディレクトリを自動的に作成します。

説明

外部ボリュームの作成時に acd パラメーターを true に設定し、指定したディレクトリが存在しない場合、MaxCompute は OSS の権限を使用してディレクトリを作成します。 ディレクトリが作成された後、MaxCompute は外部ボリュームが正常に作成されたかどうかに関係なく、ディレクトリを削除しません。 外部ボリュームの作成時に acd パラメーターを true に設定し、指定したディレクトリが既に存在する場合、MaxCompute は別のディレクトリを作成せずに、そのディレクトリを直接使用します。

role_arn

はい

OSS にアクセスする権限を持つ RAM ロールの Alibaba Cloud リソースネーム (ARN)。 ARN の取得方法については、「STS によって提供される一時的な認証情報を使用して OSS にアクセスする」をご参照ください。

作成された外部ボリュームのパスは odps://[project_name]/[volume_name] 形式です。project_name は MaxCompute プロジェクトの名前を指定します。volume_name は外部ボリュームの名前を指定します。このパスは、Spark エンジンおよび MapReduce タスクで使用できます。

test_ext_l という名前の外部ボリュームを作成します。

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;

外部ボリュームのリストと外部ボリュームのディレクトリ構造を表示する

構文

-- 外部ボリュームのリストを表示します。
vfs -ls /;

-- 外部ボリュームのディレクトリ構造を表示します。
vfs -ls [-R] /<volume_name>; 

次の表にパラメーターを示します。

パラメーター

必須

説明

volume_name

はい

表示する外部ボリュームの名前。

  • 外部ボリュームのリストを表示します。

    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

    ユーザーが外部ボリュームに対する権限を持っていない場合、返される結果には情報が表示されません。たとえば、dev01 という名前のユーザーが myfirst_volume4 外部ボリュームに対する権限を持っていないとします。ユーザー dev01 が myfirst_volume4 外部ボリュームからデータをクエリする場合、次のコマンドを実行して、ユーザー dev01 に myfirst_volume4 外部ボリュームに対する読み取り権限を付与する必要があります。

    grant Read on volume myfirst_volume4 to RAM$xxxxxx:dev01;
    説明

    外部ボリュームには、読み取り、書き込み、および CreateVolume の権限を付与できます。

  • test_ext_l という名前の外部ボリュームのディレクトリ構造を表示します。

    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

外部ボリュームを削除する

構文

  • 構文 1:

    vfs -rm -r /<volume_name> 
  • 構文 2:

    vfs -rmv /<volume_name>

次の表にパラメーターを示します。

パラメーター

必須

説明

volume_name

はい

削除する外部ボリュームの名前。

test_ext_l という名前の外部ボリュームを削除します。

vfs -rm -r /test_ext_l; 

関連情報

  • SDK を使用して外部ボリュームを管理する方法の詳細については、「SDK を使用して外部ボリュームを管理する」をご参照ください。

  • MaxCompute では、外部ボリュームを作成し、その外部ボリュームを OSS パスにマウントできます。 その後、MaxCompute 権限管理システムを使用して、外部ボリュームへのアクセスをきめ細かく制御できます。 また、MaxCompute エンジンを使用して、外部ボリュームに格納されているファイルのデータを処理することもできます。 外部ボリュームの使用方法の例の詳細については、「MaxCompute 外部ボリュームを使用して非構造化データを処理する」をご参照ください。