Amazon Athena에서 실행하는 데 시간이 너무 오래 걸리거나 시간 초과되는 MSCK REPAIR TABLE 명령을 해결하고 싶습니다.
간략한 설명
MSCK REPAIR TABLE 명령을 실행하면 Athena가 Amazon Simple Storage Service (Amazon S3)의 접두사 및 객체를 나열합니다. Amazon S3 접두사 또는 객체가 너무 많으면 명령을 실행하는 데 시간이 오래 걸리거나 오류와 함께 시간이 초과됩니다.
이 문제를 해결하려면 다음 방법 중 하나를 사용하세요.
- Athena에서 파티션 프로젝션을 사용합니다.
- AWS Glue 크롤러를 사용하여 Athena 테이블에 파티션을 추가합니다.
- Athena DDL 문을 사용하여 파티션 로드
해결 방법
Athena에서 파티션 프로젝션 사용
Athena를 사용한 파티션 프로젝션을 사용하여 인메모리 파티션을 생성합니다. AWS Glue 데이터 카탈로그에 파티션을 추가하거나 데이터 카탈로그에서 파티션을 검색할 필요가 없습니다. Athena는 많은 파티션 목록을 스캔하는 대신 테이블의 값을 계산합니다. 또한 파티션 프로젝션은 AWS Glue 데이터 카탈로그와 같은 리포지토리 대신 구성에서 값과 위치를 계산합니다.
AWS Glue 크롤러를 사용하여 Athena 테이블에 파티션 추가
AWS Glue 크롤러를 사용하여 Athena 테이블에 파티션을 추가하려면 다음 단계를 완료하세요.
- AWS Glue 콘솔을 엽니다.
- 탐색 창에서 크롤러를 선택한 다음 크롤러 만들기를 선택합니다.
- 크롤러의 이름을 만든 다음 다음을 선택합니다.
- 데이터 소스 및 분류기 선택의 데이터 소스 구성에서 **데이터가 이미 테이블에 매핑되어 있나요?**에 대해 예를 선택합니다.
- Glue 테이블에서 테이블 추가를 선택한 다음 필요한 데이터베이스와 테이블을 선택합니다. 다음을 선택합니다.
- AWS Glue에 대한 IAM 역할 생성을 선택합니다. 다음을 선택합니다.
- 출력 및 스케줄링 설정에서 고급 옵션을 확장한 다음 다음을 선택합니다.
변경 내용을 무시하고 데이터 카탈로그에서 테이블을 업데이트하지 않습니다.
테이블의 메타데이터로 모든 새 파티션과 기존 파티션을 업데이트합니다.
변경 내용을 무시하고 데이터 카탈로그에서 테이블을 업데이트하지 않습니다.
- 다음을 선택한 다음 크롤러 만들기를 선택하여 크롤러 구성을 저장합니다.
- 크롤러 실행을 선택합니다. 크롤러를 실행하면 파티션이 테이블에 로드됩니다.
자세한 내용은 크롤러 작동 방식 및 AWS Glue에서 새 파티션 추가를 위한 증분 크롤링을 참조하세요.
Athena DDL 문을 사용하여 파티션 로드
Athena DDL 문을 사용하여 파티션을 로드하려면 다음 단계를 완료하세요.
- Amazon Athena 콘솔을 엽니다.
- 쿼리 편집기 탭에서 ALTER TABLE ADD PARTITION 명령을 실행하여 파티션을 로드합니다.
관련 정보
Athena 쿼리를 실행하는 데 시간이 오래 걸리는 이유는 무엇인가요?
AWS Glue ETL 작업에서 데이터 카탈로그에 테이블 생성, 스키마 업데이트 및 새 파티션 추가
AWS Glue 요금