外部ボリュームは、MaxCompute が提供する分散ファイルシステムおよび非構造化データストレージソリューションです。この機能を使用すると、Object Storage Service (OSS) に保存されているファイル内のデータを MaxCompute テーブルにインポートすることなく、直接クエリおよび処理できます。このプロセスにより、データ冗長性と伝送オーバーヘッドが削減されます。
一般的な操作
操作 | 説明 | 権限のあるユーザー | 操作プラットフォーム |
プロジェクトに外部ボリュームを作成します。 |
| ||
外部ボリュームのディレクトリ構造を表示します。 | |||
外部ボリュームを削除します。 |
前提条件
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 のみがサポートされています。 したがって、このパラメーターを |
url | はい | データファイルが保存されている OSS ディレクトリ。 OSS ディレクトリは 重要
|
acd | いいえ | ディレクトリが存在しない場合にディレクトリを自動的に作成するかどうかを指定します。 有効な値:
説明 外部ボリュームの作成時に |
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 外部ボリュームを使用して非構造化データを処理する」をご参照ください。