Amazon Athena의 서비스 할당량 오류를 해결하려고 합니다.
간략한 설명
서비스 할당량 오류로 인해 Athena에서 쿼리가 실패하는 경우 다음 오류 응답 중 하나가 표시될 수 있습니다.
- TooManyRequestsException
- ThrottlingException
- Query Timeout
- QueryString failure
여러 AWS 리전의 Athena 엔드포인트 및 할당량 기본값을 확인하려면 서비스 할당량을 참조하십시오.
해결 방법
참고: 시작하기 전에 현재 Athena 할당량을 확인하십시오.
TooManyRequestsException
DML 또는 DDL 쿼리 할당량에는 실행 중인 쿼리와 대기 중인 쿼리가 포함됩니다. DML 또는 DDL 쿼리에 대해 지정된 제한보다 많은 쿼리를 제출하면 TooManyRequestsException 오류 응답이 나타납니다. Athena의 일반적인 DDL 쿼리에는 ALTER TABLE ADD PARTITION, CREATE TABLE, DROP이 포함됩니다. Athena의 일반적인 DML 쿼리에는 SELECT, CREATE TABLE AS (CTAS), INSERT INTO가 포함됩니다.
현재 대기열을 확인하려면 다음 방법 중 하나를 사용하십시오.
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
참고: 쿼리 동시성을 높일 경우 더 많은 쿼리를 제출할 수 있지만 쿼리에 사용할 추가적인 리소스는 없습니다. 따라서 Athena에서 쿼리를 실행하는 데 필요한 리소스를 사용할 수 있을 때까지 쿼리는 대기 중인 상태로 유지됩니다.
이 오류를 해결하려면 Athena의 프로비저닝된 용량을 사용하여 쿼리 동시성을 높이고, 해당 용량에 액세스하는 워크로드를 관리하고, 워크로드 간에 용량을 공유하십시오. 자세한 내용은 쿼리 처리 용량 관리를 참조하십시오. 용량 예약 요금에 대한 자세한 내용은 Amazon Athena 요금을 참조하십시오.
추가적인 문제 해결에 대해서는 Amazon Athena의 TooManyRequestsException 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
ThrottlingException
Athena에는 AWS 계정당 API 호출 할당량이 있습니다. API 할당량을 초과하면 다음과 비슷한 오류 메시지가 표시됩니다.
"ClientError: An error occurred (ThrottlingException) when calling the <API_name> operation: Rate exceeded."
이 오류를 해결하려면 API 호출 빈도를 줄이고 재시도 로직을 사용하십시오. 자세한 내용은 워크로드의 API 스로틀링 관리 및 모니터링에서 재시도 로직 섹션을 참조하십시오.
Query Timeout
쿼리가 사전 정의된 제한 시간을 초과하면 시간 초과가 발생합니다. DML 쿼리의 경우 사전 정의된 제한 시간은 30분입니다. 이 오류를 해결하려면 Athena의 “Query Timeout” 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
QueryString failure
Athena의 최대 쿼리 문자열 길이는 262,144바이트(B)이며 사용자가 할당량을 조정할 수 없습니다. 쿼리 문자열 오류를 방지하려면 긴 쿼리를 작은 쿼리로 분할하십시오. 자세한 내용은 Amazon Athena에서 최대 쿼리 문자열 길이를 늘리려면 어떻게 해야 합니까?를 참조하십시오.