Amazon S3 Glacier 스토리지 클래스 또는 Amazon S3 Glacier 저장소에 저장된 객체에 대해 선택 쿼리를 실행하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 6월 20일

Amazon Simple Storage Service(Amazon S3) Glacier 스토리지 클래스를 사용하여 저장한 객체에 대해 선택 쿼리를 실행하려고 합니다. 또는 Amazon S3 Glacier 저장소에 아카이브한 객체에 대해 선택 쿼리를 실행하려고 합니다. AWS CLI(AWS 명령줄 인터페이스)를 사용하여 선택 쿼리를 실행하려면 어떻게 해야 합니까?

해결 방법

Amazon S3 Glacier 스토리지 클래스

Amazon S3 Glacier 스토리지 클래스에 저장된 객체에 대해 다음 단계에 따라 AWS CLI를 사용하여 선택 쿼리를 실행하십시오.

1.    restore-object AWS CLI 명령에 대한 파라미터를 사용하여 JSON 파일을 생성합니다. 다음 파라미터를 포함해야 합니다.
Expression 파라미터에 선택 쿼리를 입력합니다.
OutputLocation 파라미터에 쿼리 결과를 저장할 S3 위치를 입력합니다.

예를 들어 다음 JSON 파일은 SELECT * FROM object 쿼리를 실행합니다. 그런 다음 쿼리 결과를 S3 위치 awsexamplebucket/outputJob으로 보냅니다.

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

참고: 이 예제에는 필수 파라미터만 포함됩니다.

2.    restore-object 명령을 실행하고 앞에서 생성한 JSON 파일을 --restore-request 값으로 지정합니다.

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

3.    명령을 실행하면 선택 쿼리 결과가 저장된 S3 위치가 표시됩니다. 이 출력은 다음과 유사합니다.

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

쿼리 출력에 대한 자세한 내용은 Select 출력을 참조하십시오.

Amazon S3 Glacier 저장소

Amazon S3 Glacier 저장소에 아카이브된 객체에 대해 다음 단계에 따라 AWS CLI를 사용하여 선택 쿼리를 실행하십시오.

1.    initiate-job AWS CLI 명령에 대한 파라미터를 사용하여 JSON 파일을 생성합니다. 다음 파라미터를 포함해야 합니다.
Expression 파라미터에 선택 쿼리를 입력합니다.
OutputLocation 파라미터에 쿼리 결과를 저장할 S3 위치를 입력합니다.

예를 들어 다음 JSON 파일은 SELECT * FROM archive 쿼리를 실행합니다. 그런 다음 쿼리 결과를 S3 위치 awsexamplebucket/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": "awsexamplebucket",
            "Prefix": "outputJobGlacier",
            "StorageClass": "STANDARD"
        }
    }
}

참고: 이 예제에는 필수 파라미터만 포함됩니다.

2.    initiate-job 명령을 실행하고 앞에서 생성한 JSON 파일을 --job-parameters 값으로 지정합니다.

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

3.    명령을 실행하면 쿼리 결과가 저장된 S3 위치(jobOutputPath)를 포함하는 응답을 받습니다. 이 출력은 다음과 유사합니다.

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

쿼리 출력에 대한 자세한 내용은 Glacier Select 출력을 참조하십시오. 


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?