Amazon S3 Glacier のストレージクラスまたは Amazon S3 Glacier ボールトに保存されているオブジェクトに対して選択クエリを実行する方法を教えてください。

最終更新日: 2021 年 1 月 5 日

Amazon Simple Storage Service Glacier (Amazon S3 Glacier) のストレージクラスを使用して保存したオブジェクト、または Amazon S3 Glacier ボールトにアーカイブされたオブジェクトに対して選択クエリを実行したいです。AWS Command Line Interface (AWS CLI) を使用してこの選択クエリをどのように実行できますか?

解決方法

Amazon S3 Glacier のストレージクラス

AWS CLI を使用して Amazon S3 Glacier ストレージクラスに保存されているオブジェクトに対して選択クエリを実行するには、次の手順に従ってください。

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

1.    restore-object AWS CLI コマンドのパラメータを使用して JSON ファイルを作成します。次のパラメータを必ず含めてください。
Expression パラメータに、選択クエリを入力します。
OutputLocation パラメータには、クエリ結果を保存したい S3 のロケーションを入力します。

例えば、次の JSON ファイルはクエリ SELECT * FROM オブジェクトを実行します。次に、クエリ結果を S3 のロケーション docexamplebucket/outputJob に送信します。

{
    "Type": "SELECT",
    "Tier": "Standard",
    "SelectParameters": {
        "InputSerialization": {
            "CSV": {
                "FileHeaderInfo": "USE"
            }
        },
        "ExpressionType": "SQL",
        "Expression": "SELECT * FROM object",
        "OutputSerialization": {
            "CSV": {}
        }
    },
    "OutputLocation": {
        "S3": {
            "BucketName": "docexamplebucket",
            "Prefix": "outputJob",
            "StorageClass": "STANDARD"
        }
    }
}

注: この例には必須パラメータのみが含まれています。

2.    restore-object コマンドを実行し、作成した JSON ファイルを --restore-request 値として指定します。

$ aws s3api restore-object --bucket docexamplebucket --key file.csv --restore-request file://restoreJob.json

3.    コマンドを実行すると、選択クエリの結果が保存されている S3 のロケーションが表示されます。この出力は次のようになります。

{
    "RestoreOutputPath": "outputJob/example_iNHt-0sE2cqt8ZtwNdE1nHi7nKzRaIWLyzzcsW4QWIUaHduHVReDDdavy-aLfEdnD6ql3AR8s4f4oZzhdhBg/"
}

クエリ出力について詳しくは、「Select 出力」を参照してください。

Amazon S3 Glacier ボールト

AWS CLI を使用して Amazon S3 Glacier ボールトにアーカイブされたオブジェクトに対して選択クエリを実行するには、以下の手順に従ってください。

1.    activate-job AWS CLI コマンドのパラメータを使用して JSON ファイルを作成します。次のパラメータを必ず含めてください。
Expression パラメータに、選択クエリを入力します。
OutputLocation パラメータには、クエリ結果を保存したい S3 のロケーションを入力します。

例えば、次の JSON ファイルはクエリ SELECT * FROM アーカイブを実行します。次に、クエリ結果を S3 のロケーション docexamplebucket/outputJobGlacier に送信します。

{
    "Type": "SELECT",
    "ArchiveId": "example_QpOx5CphSp5VY8Jbhkmd1-TyIF5KFr_VYDAyyqb0n5r5i5_CBVKY0F0OfwzbsWrewjIJ1Kd1d9Tgp97C$",
    "Tier": "Standard",
    "SelectParameters": {
        "InputSerialization": {
            "csv": {
                "FileHeaderInfo": "USE"
            }
        },
        "ExpressionType": "SQL",
        "Expression": "SELECT * FROM archive",
        "OutputSerialization": {
            "csv": {}
        }
    },
    "OutputLocation": {
        "S3": {
            "BucketName": "docexamplebucket",
            "Prefix": "outputJobGlacier",
            "StorageClass": "STANDARD"
        }
    }
}

注: この例には必須パラメータのみが含まれています。

2.    initiator-job コマンドを実行し、作成した JSON ファイルを --job-parameters 値として指定します。

$ aws glacier initiate-job --account-id 111122223333 --vault-name docexamplevault --job-parameters file://restoreJobGlacier.json

3.    コマンドを実行した後、クエリ結果が保存されている S3 ロケーションを含む応答を受け取ります (jobOutputPath) 。この出力は次のようになります。

{
    "jobOutputPath": "outputJobGlacier/example_N4Zpv9bExi9TCv1gSSwWUhsK-371E9KBCFlAEMSnD2Gzq4GXhaT4aK7Gj8_s-jAn4aAvMNgUEbhTlxUfNYT9/",
    "location": "/111122223333/vaults/docexamplevault/jobs/example_N4Zpv9bExi9TCv1gSSwWUhsK-371E9KBCFlAEMSnD2Gzq4GXhaT4aK7Gj8_s-jAn4aAvMNgUEbhTlxUfNYT9",
    "jobId": "example_N4Zpv9bExi9TCv1gSSwWUhsK-371E9KBCFlAEMSnD2Gzq4GXhaT4aK7Gj8_s-jAn4aAvMNgUEbhTlxUfNYT9"
}

クエリ出力の詳細については、「Glacier Select 出力」を参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?