복원된 Amazon S3 Glacier 객체 쿼리 - Amazon Athena

복원된 Amazon S3 Glacier 객체 쿼리

Athena를 사용하여 S3 Glacier Flexible Retrieval(이전의 Glacier) 및 S3 Glacier Deep Archive Amazon S3 스토리지 클래스로부터 복원된 객체를 쿼리할 수 있습니다. 이 기능은 테이블별로 활성화해야 합니다. 쿼리를 실행하기 전에 테이블에서 이 기능을 활성화하지 않으면 Athena는 쿼리 실행 중에 테이블의 S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 객체를 모두 건너뜁니다.

고려 사항 및 제한

  • 복원된 Amazon S3 Glacier 객체 쿼리는 Athena 엔진 버전 3에서만 지원됩니다.

  • 이 기능은 Apache Hive 테이블에서만 지원됩니다.

  • 데이터를 쿼리하기 전에 객체를 복원해야 합니다. Athena는 자동으로 객체를 복원하지 않습니다.

복원된 객체를 사용하도록 테이블 구성

복원된 객체를 쿼리에 포함하도록 Athena 테이블을 구성하려면 read_restored_glacier_objects 테이블 속성을 true로 설정해야 합니다. 이 작업을 수행하기 위해 Athena 쿼리 편집기 또는 AWS Glue 콘솔을 사용할 수 있습니다. AWS Glue CLI, AWS Glue API 또는 AWS Glue SDK도 사용할 수 있습니다.

Athena 쿼리 편집기 사용

Athena에서는 다음 예제와 같이 ALTER TABLE SET TBLPROPERTIES 명령을 사용하여 테이블 속성을 설정할 수 있습니다.

ALTER TABLE table_name SET TBLPROPERTIES ('read_restored_glacier_objects' = 'true')

AWS Glue 콘솔 사용

AWS Glue 콘솔에서 다음 단계를 수행하여 read_restored_glacier_objects 테이블 속성을 추가합니다.

AWS Glue 콘솔에서 테이블 속성을 구성하려면
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다.

  2. 다음 중 하나를 수행하십시오.

    • 데이터 카탈로그로 이동을 선택합니다.

    • 탐색 창의 데이터 카탈로그 테이블을 선택합니다.

  3. 테이블 페이지의 테이블 목록에서 편집하려는 테이블에 대한 링크를 선택합니다.

  4. Actions(작업), Edit table(테이블 편집)을 선택합니다.

  5. 테이블 편집 페이지의 테이블 속성 섹션에서 다음 키 값 페어를 추가합니다.

    • read_restored_glacier_objects을 추가합니다.

    • true을(를) 입력합니다.

  6. Save(저장)를 선택합니다.

AWS CLI 사용

AWS CLI에서 AWS Glue update-table 명령과 해당 --table-input 인수를 사용하여 테이블을 재정의하고 이에 따라 read_restored_glacier_objects 속성을 추가할 수 있습니다. --table-input 인수에서 Parameters 구조를 사용하여 read_restored_glacier_objects 속성과 true의 값을 지정합니다. --table-input의 인수에는 공백이 없어야 하며 큰따옴표를 이스케이프 처리하려는 경우 백슬래시를 사용해야 합니다. 다음 예제에서는 my_databasemy_table을 사용자의 데이터베이스 및 테이블 이름으로 바꿉니다.

aws glue update-table \ --database-name my_database \ --table-input={\"Name\":\"my_table\",\"Parameters\":{\"read_restored_glacier_objects\":\"true\"}}
중요

AWS Glue update-table 명령은 덮어쓰기 모드에서 작동합니다. 따라서 기존 테이블 정의를 table-input 파라미터로 지정된 새 정의로 바꿉니다. 이런 이유로 read_restored_glacier_objects 속성을 추가할 때 table-input 파라미터에서 테이블에 포함하려는 모든 필드를 지정해야 합니다.