REST API を使用した Azure Data Lake Storage Gen1 に対するファイルシステム操作

この記事では、WebHDFS REST API と Data Lake Storage Gen1 REST API を使用して Azure Data Lake Storage Gen1 に対するファイルシステム操作を実行する方法について説明します。 REST API を使用して Data Lake Storage Gen1 に対するアカウント管理操作を実行する方法については、REST API を使用した Data Lake Storage Gen1 に対するアカウント管理操作に関するページを参照してください。

前提条件

Microsoft Entra IDを使用して認証操作方法?

Microsoft Entra IDを使用して認証するには、2 つの方法を使用できます。

フォルダーを作成します。

この操作は、 ここで定義されている WebHDFS REST API 呼び出しをベースにしています。

次の cURL コマンドを使用します。 <yourstorename> を自分の Data Lake Storage Gen1 アカウント名に置き換えます。

curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/?op=MKDIRS'

上記のコマンドの <REDACTED> を、以前に取得した承認トークンに置き換えます。 このコマンドを実行すると、Data Lake Storage Gen1 アカウントのルート フォルダーの下に mytempdir という名前のディレクトリが作成されます。

操作が正常に完了すると、次のスニペットのような応答が表示されます。

{"boolean":true}

フォルダーを一覧表示する

この操作は、 ここで定義されている WebHDFS REST API 呼び出しをベースにしています。

次の cURL コマンドを使用します。 <yourstorename> を自分の Data Lake Storage Gen1 アカウント名に置き換えます。

curl -i -X GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS'

上記のコマンドの <REDACTED> を、以前に取得した承認トークンに置き換えます。

操作が正常に完了すると、次のスニペットのような応答が表示されます。

{
"FileStatuses": {
    "FileStatus": [{
        "length": 0,
        "pathSuffix": "mytempdir",
        "type": "DIRECTORY",
        "blockSize": 268435456,
        "accessTime": 1458324719512,
        "modificationTime": 1458324719512,
        "replication": 0,
        "permission": "777",
        "owner": "<GUID>",
        "group": "<GUID>"
    }]
}
}

データのアップロード

この操作は、 ここで定義されている WebHDFS REST API 呼び出しをベースにしています。

次の cURL コマンドを使用します。 <yourstorename> を自分の Data Lake Storage Gen1 アカウント名に置き換えます。

curl -i -X PUT -L -T 'C:\temp\list.txt' -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE'

上記の構文の -T パラメーターは、ファイルのアップロード先となる場所です。

出力は次のスニペットのようになります。

HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE&write=true
...
Content-Length: 0

HTTP/1.1 100 Continue

HTTP/1.1 201 Created
...

データの読み取り

この操作は、 ここで定義されている WebHDFS REST API 呼び出しをベースにしています。

Data Lake Storage Gen1 アカウントからのデータの読み取りは、2 段階のプロセスとなります。

  • まず、エンドポイント https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPENに対して GET 要求を送信します。 この呼び出しにより、次の GET 要求の送信先が返されます。
  • 次に、エンドポイント https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=trueに対して GET 要求を送信します。 この呼び出しにより、ファイルの内容が表示されます。

ただし、1 番目の手順と 2 番目の手順の間に入力パラメーターの違いはないため、 -L パラメーターを使用して最初の要求を送信できます。 -L オプションにより、基本的に 2 つの要求が 1 つの要求に結合され、新しい場所で cURL により要求がやり直されます。 最後に、次のスニペットに示すように、すべての要求呼び出しの出力が表示されます。 <yourstorename> を自分の Data Lake Storage Gen1 アカウント名に置き換えます。

curl -i -L GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN'

次のスニペットのような出力が表示されます。

HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/somerandomfile.txt?op=OPEN&read=true
...

HTTP/1.1 200 OK
...

Hello, Data Lake Store user!

ファイル名を変更する

この操作は、 ここで定義されている WebHDFS REST API 呼び出しをベースにしています。

ファイルの名前を変更するには、次の cURL コマンドを使用します。 <yourstorename> を自分の Data Lake Storage Gen1 アカウント名に置き換えます。

curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=RENAME&destination=/mytempdir/myinputfile1.txt'

次のスニペットのような出力が表示されます。

HTTP/1.1 200 OK
...

{"boolean":true}

ファイルを削除する

この操作は、 ここで定義されている WebHDFS REST API 呼び出しをベースにしています。

次の cURL コマンドを使用して、ファイルを削除します。 <yourstorename> を自分の Data Lake Storage Gen1 アカウント名に置き換えます。

curl -i -X DELETE -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile1.txt?op=DELETE'

出力は次のように表示されます。

HTTP/1.1 200 OK
...

{"boolean":true}

次のステップ

関連項目