MSCK REPAIR TABLE 쿼리가 AWS Glue 데이터 카탈로그에 파티션을 추가하지 않는 이유는 무엇입니까?

2분 분량
0

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 정책은 policy 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/

관련 정보

Athena에서 데이터 파티셔닝

Amazon Athena에 사용되는 작업, 리소스 및 조건 키

AWS Glue에 사용되는 작업, 리소스 및 조건 키

AWS 공식
AWS 공식업데이트됨 2년 전