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

MaxCompute:外部ボリューム操作

最終更新日:Dec 10, 2024

MaxComputeでは、外部ボリュームは分散ファイルシステムとして使用され、非構造化データの格納に使用されます。 MaxComputeエンジンを使用して、Object Storage Service (OSS) に保存されているファイルのデータを照会および処理する外部ボリュームを作成できます。 この方法では、データをMaxComputeテーブルにインポートする必要はありません。 これは、データ冗長性および伝送オーバヘッドを低減するのに役立つ。 このトピックでは、外部ボリュームで実行できる一般的な操作について説明します。

次の表に、外部ボリュームで実行できる一般的な操作を示します。

API 操作

説明

承認済みユーザー

操作プラットフォーム

外部ボリュームの作成

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

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

  • プロジェクト所有者

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

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

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

外部ボリュームの削除

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

前提条件

  • 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のみがサポートされています。 したがって、このパラメーターをossに設定する必要があります。

url

必須

データファイルが保存されるOSSディレクトリ。 OSSディレクトリは、oss://<oss_endpoint>/<バケット名>/<OSSディレクトリ名> 形式です。

重要

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

  • oss_endpoint: OSSのエンドポイント。 OSS: // oss-cn-beijing-internal.aliyuncs.com/xxxなど、インターネットトラフィックによって発生する追加料金を防ぐために、ossの内部エンドポイントを使用する必要があります。 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;

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

構文

-- 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外部ボリュームを使用した非構造化データの処理」をご参照ください。