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

MaxCompute:外部ボリュームの操作

最終更新日:Mar 27, 2026

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

一般的な操作

操作 説明 実行可能なユーザー
外部ボリュームの作成 プロジェクトに外部ボリュームを作成します 外部ボリュームの所有者、プロジェクトオーナー、Super_Administrator または Admin ロールを持つユーザー
外部ボリュームのリスト化とディレクトリ構造の表示 すべての外部ボリュームをリスト化するか、特定のボリュームのディレクトリ構造を表示します
外部ボリュームの削除 外部ボリュームを削除します

前提条件

開始する前に、以下が準備されていることを確認してください:

  • MaxCompute クライアント (odpscmd) V0.43.0 以降。インストール手順については、「MaxCompute クライアント (odpscmd)」をご参照ください。

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

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

外部ボリュームの作成

構文

vfs -create <volume_name>
    -storage_provider oss
    -url <oss://oss_endpoint/bucket_name/directory_name>
    [-acd <true|false>]
    -role_arn <arn:aliyun:xxx/aliyunodpsdefaultrole>

[ ] で囲まれたパラメーターはオプションです。

パラメーター 必須 説明
volume_name はい 作成する外部ボリュームの名前。
storage_provider はい ストレージプロバイダー。oss に設定します。OSS が唯一サポートされているプロバイダーです。
url はい データファイルが保存されている OSS ディレクトリ。フォーマット: oss://<oss_endpoint>/<bucket_name>/<directory_name>。バケット名と第 2 レベルのディレクトリ名の両方が必須です。エンドポイントの要件については、以下の注意事項をご参照ください。
acd いいえ OSS ディレクトリが存在しない場合に自動的に作成するかどうか。デフォルト: false。動作の詳細については、以下の注意事項をご参照ください。
role_arn はい OSS アクセス権限を持つ RAM ロールの Alibaba Cloud リソース名 (ARN)。ARN を取得するには、「STS が提供する一時的な認証情報を使用した OSS へのアクセス」をご参照ください。

`url` パラメーターに関する注意事項:

  • インターネットトラフィックの追加料金を避けるために、OSS 内部エンドポイントを使用してください。例: oss://oss-cn-beijing-internal.aliyuncs.com/my-bucket/my-dir。内部エンドポイントの完全なリストについては、「リージョンとエンドポイント」をご参照ください。

  • リージョン間の接続性の問題を避けるために、OSS バケットを MaxCompute プロジェクトと同じリージョンにデプロイしてください。

`acd` パラメーターに関する注意事項:

  • false (デフォルト): 指定されたディレクトリが存在しない場合、コマンドはエラーで失敗します。

  • true: ディレクトリが存在しない場合、MaxCompute は role_arn を介して付与された権限を使用して自動的に作成します。ディレクトリが既に存在する場合、MaxCompute はそれを直接使用します。

重要

acdtrue に設定され、ディレクトリが自動作成された場合、その後の外部ボリュームの作成が失敗しても、MaxCompute はそのディレクトリを削除しません。

外部ボリュームが作成されると、そのパスは odps://<project_name>/<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 はい 外部ボリュームの名前。
-R いいえ サブディレクトリを再帰的にリスト化します。

すべての外部ボリュームをリスト化:

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
アクセス権限のない外部ボリュームは出力に表示されません。ユーザーにアクセス権を付与するには、次のコマンドを実行します。利用可能な権限は、Read、Write、CreateVolume です。
grant Read on volume myfirst_volume4 to RAM$xxxxxx:dev01;

`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;

次のステップ