MSCK REPAIR TABLE이 Athena에서 파티션을 감지하지만 이를 AWS Glue 데이터 카탈로그에 추가하지 않습니다.

최종 업데이트 날짜: 2020년 6월 18일

MSCK REPAIR TABLE을 실행하면 Amazon Athena가 파티션 목록을 반환하지만 AWS Glue 데이터 카탈로그의 테이블에 파티션을 추가하지 못합니다.

간략한 설명

이 동작의 몇 가지 일반적인 원인은 다음과 같습니다.

  • AWS Identity and Access Management(IAM) 사용자 또는 역할에 glue:BatchCreatePartition 작업을 허용하는 정책이 없습니다.
  • Amazon S3(Amazon Simple Storage Service) 경로는 소문자 대신 카멜 표기법을 사용합니다(예: userid 대신 userId).

해결 방법

IAM 정책에서 glue:BatchCreatePartition 허용

MSCK REPAIR TABLE을 실행하는 데 사용하는 사용자 또는 역할에 연결된 IAM 정책을 검토합니다. Athena에서 AWS Glue 데이터 카탈로그를 사용하는 경우, IAM 정책이 glue:BatchCreatePartition 작업을 허용해야 합니다. 정책에서 해당 작업을 허용하지 않는 경우, Athena는 파티션을 메타스토어에 추가할 수 없습니다. glue:BatchCreatePartition 작업을 허용하는 IAM 정책의 예는 AmazonAthenaFullAccess 관리형 정책을 참조하십시오.

Amazon S3 경로를 소문자로 변경

Amazon S3 경로 이름은 소문자여야 합니다. 경로가 카멜 표기법으로 표시된 경우 MSCK REPAIR TABLE은 파티션을 AWS Glue 데이터 카탈로그에 추가하지 않습니다. 예를 들어, Amazon S3 경로가 userId인 경우 다음 파티션은 AWS Glue 데이터 카탈로그에 추가되지 않습니다.

  • s3://awsdoc-example-bucket/path/userId=1/
  • s3://awsdoc-example-bucket/path/userId=2/
  • s3://awsdoc-example-bucket/path/userId=3/

이 문제를 해결하려면 카멜 표기법 대신 소문자를 사용하십시오.

  • s3://awsdoc-example-bucket/path/userid=1/
  • s3://awsdoc-example-bucket/path/userid=2/
  • s3://awsdoc-example-bucket/path/userid=3/