MaxComputeでは、外部ボリュームは分散ファイルシステムとして使用され、非構造化データの格納に使用されます。 MaxComputeエンジンを使用して、Object Storage Service (OSS) に保存されているファイルのデータを照会および処理する外部ボリュームを作成できます。 この方法では、データをMaxComputeテーブルにインポートする必要はありません。 これは、データ冗長性および伝送オーバヘッドを低減するのに役立つ。 このトピックでは、外部ボリュームで実行できる一般的な操作について説明します。
次の表に、外部ボリュームで実行できる一般的な操作を示します。
API 操作 | 説明 | 承認済みユーザー | 操作プラットフォーム |
プロジェクトに外部ボリュームを作成します。 |
| ||
外部ボリュームのディレクトリ構造を表示します。 | |||
外部ボリュームを削除します。 |
前提条件
MaxComputeクライアントV0.43.0以降がインストールされています。 詳細については、「MaxComputeクライアント (odpscmd) 」をご参照ください。 このトピックで提供されているコマンドは、DataStudioページまたはDataWorksコンソールのSQLクエリページで実行することもできます。 DataWorksコンソールでコマンドを実行するには、DataStudioまたはSQL Queryと統合されているMaxComputeクライアントのバージョンがV0.43.2以降である必要があります。
Show version;
コマンドをDataStudioページまたはSQL Queryページで実行して、MaxComputeクライアントのバージョンを照会できます。 詳細については、「DataWorksでのMaxComputeの使用」をご参照ください。SDK for Javaを使用する場合、SDK for Javaのバージョンは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;
外部ボリュームのリストと外部ボリュームのディレクトリ構造の表示
構文
-- View the list of external volumes.
vfs -ls /;
-- View the directory structure of an external volume.
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外部ボリュームを使用した非構造化データの処理」をご参照ください。