AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

Athena의 “Query Timeout” 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Athena에서 쿼리를 실행했는데 “Query Timeout” 오류 메시지와 함께 실패했습니다.

간략한 설명


DML 쿼리 시간 초과 제한을 초과하면 쿼리 시간 초과 오류가 발생하거나 쿼리가 느리게 실행될 수 있습니다.

해결 방법

쿼리를 최적화하고 시간 초과 오류를 방지하려면 다음 모범 사례를 따르십시오.

Athena에서 쿼리를 실행하는 데 걸리는 시간 줄이기

Athena에서 쿼리 런타임을 줄이기 위해 수행할 수 있는 단계는 다음과 같습니다.

  • 파티션 프로젝션을 사용하여 테이블을 여러 부분으로 나누고 관련 데이터를 함께 보관합니다.
  • 파일을 압축하거나 가능한 경우 분할합니다. 지원되는 압축 형식에 대한 자세한 내용은 Athena 압축 지원을 참조하십시오.
  • 파일 크기를 최적화합니다.

Amazon Athena의 쿼리 런타임 늘리기

Athena에서 Amazon QuickSight SPICE로 데이터를 가져오는 경우 DML 쿼리가 최대 런타임에 도달하여 쿼리 시간 초과 오류가 발생할 수 있습니다.

이 문제를 해결하려면 다음을 수행하십시오.

  1. Athena 쿼리 기록을 확인하여 QuickSight에서 생성한 쿼리를 찾습니다.
  2. 쿼리가 실패하기 전에 얼마나 오래 실행되었는지 검사합니다.
  3. 이전 섹션의 "Athena에서 쿼리를 실행하는 데 걸리는 시간 줄이기“의 단계를 따르고 쿼리를 다시 실행합니다. 이렇게 해도 쿼리 문제가 해결되지 않으면 4단계로 진행합니다.
  4. 시간이 최대 DML 쿼리 시간 초과 할당량(분)에 가까운 경우 서비스 할당량을 늘립니다.

Service Quotas에 대한 자세한 내용을 확인하고 할당량 증가를 요청하려면 Service Quotas를 참조하십시오.

Athena 쿼리 시간 초과에 대한 알림 설정

시간 초과로 실패한 쿼리에 대한 알림을 받으려면 Amazon CloudWatch 이벤트 규칙을 사용하여 이벤트를 캡처합니다. 그런 다음 Amazon Simple Notification Service(Amazon SNS)를 사용하여 알림을 설정합니다.

지침을 확인하려면 Athena 쿼리 시간 초과에 대한 알림을 생성하려면 어떻게 해야 합니까?를 참조하십시오.

Amazon S3 액세스 로그 쿼리

Amazon Simple Storage Service(Amazon S3) 액세스 로그에 대한 쿼리를 실행하고 쿼리 제한 시간이 초과되면 S3 데이터를 분할할 수 있습니다. AWS Glue ETL 작업을 사용하여 Amazon S3 데이터를 분할합니다. 그런 다음 제한된 파티션에서 Athena 쿼리를 실행합니다.

지침을 확인하려면 분할된 Amazon S3 액세스 로그를 사용하여 Athena 쿼리 시간 초과를 방지하려면 어떻게 해야 합니까?를 참조하십시오.

CloudTrail 데이터 쿼리

Athena를 사용하여 AWS CloudTrail 데이터를 쿼리하는 경우 쿼리를 실행하는 데 시간이 오래 걸리거나 제한 시간이 초과될 수 있습니다. 이는 쿼리의 런타임을 줄이기 위해 CloudTrail 테이블을 분할하더라도 시간이 지나면 CloudTrail 로그 크기가 커질 수 있기 때문입니다.

파티션 프로젝션을 사용해 CloudTrail 테이블을 수동으로 생성합니다. 그러면 Athena에서 CloudTrail 테이블 값을 동적으로 계산하고 쿼리 런타임을 줄일 수 있습니다. 파티션 프로젝션을 사용하면 파티션 값과 위치가 구성에서 계산되므로 파티션을 관리할 필요가 없습니다.

지침을 확인하려면 파티션 프로젝션을 사용해 Athena 쿼리용 CloudTrail 테이블을 생성하려면 어떻게 해야 합니까?를 참조하십시오.

CTAS 쿼리 사용

CTAS(CREATE TABLE AS SELECT) 쿼리는 다른 쿼리의 SELECT 문 결과를 기반으로 Athena에 새 테이블을 생성합니다. CTAS를 사용하면 한 단계로 쿼리 결과에서 테이블을 생성할 수 있어 원시 데이터 세트로 작업하기가 더 쉬워집니다. 또한 CTAS 쿼리는 쿼리 성능을 향상시키고 쿼리 비용을 줄여줍니다.

예를 보려면 CTAS 쿼리의 예를 참조하십시오.

자세한 내용은 Athena에서 CTAS 쿼리를 실행할 때 파일 수 또는 크기를 설정하려면 어떻게 해야 합니까?를 참조하십시오.

EXPLAIN 및 EXPLAIN ANALYZE 문 사용

복잡한 쿼리의 경우 Athena에서 EXPLAIN 및 EXPLAIN ANALYZE를 사용합니다. EXPLAIN 문은 SQL 문을 세분화하여 쿼리를 최적화하고 파티션 정리를 검증할 수 있습니다.

EXPLAIN과 EXPLAIN ANALYZE 문에 대한 고려 사항과 제한 사항을 검토하십시오.

자세한 내용은 EXPLAIN 문 예제를 참조하십시오.

관련 정보

Amazon Athena를 위한 10가지 성능 튜닝 팁

Amazon Athena 쿼리 결과를 다른 쿼리에 사용하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 9달 전