작업 그룹 오류 문제 해결 - Amazon Athena

작업 그룹 오류 문제 해결

다음 팁을 사용하여 작업 그룹의 문제를 해결하세요.

  • 계정의 개별 사용자에 대한 권한을 확인합니다. 사용자가 쿼리 결과의 위치 및 쿼리를 실행하려는 작업 그룹에 대해 액세스 권한이 있어야 합니다. 사용자가 작업 그룹을 전환할 경우 두 작업 그룹 모두에 대해 권한이 있어야 합니다. 자세한 내용은 IAM 정책을 사용하여 작업 그룹 액세스 제어을 참조하세요.

  • Athena 콘솔의 컨텍스트에 주의를 기울여서 어느 작업 그룹에서 쿼리를 실행하려 하고 있는지 확인합니다. 드라이버를 사용할 경우 필요한 드라이버에 작업 그룹을 설정해야 합니다. 자세한 내용은 쿼리용 작업 그룹 지정을 참조하세요.

  • API 또는 드라이버를 사용하여 쿼리를 실행할 경우 개별 쿼리에 대해서는 OutputLocation(클라이언트 측)을 사용하여 쿼리 결과 위치를 지정해야 합니다. 작업 그룹의 경우 WorkGroupConfiguration을 사용합니다. 두 방법 중 하나를 사용하여 위치를 지정하지 않은 경우 쿼리 런타임 중에 Athena에서 오류가 발생합니다.

  • 클라이언트 측 설정을 작업 그룹 설정으로 재정의한 경우 쿼리 결과 위치에 대한 오류가 발생할 수 있습니다. 예를 들어 작업 그룹의 사용자가, 쿼리 결과를 저장하기 위한 Amazon S3의 작업 그룹 위치에 대해 권한이 없을 수 있습니다. 이 경우 필요한 권한을 추가하세요.

  • 작업 그룹은 API 작업의 동작에 변경을 적용합니다. 다음과 같은 기존 API 작업을 호출하려면 계정의 사용자들이 작업을 수행하는 작업 그룹에 대한 리소스 기반 권한을 IAM에서 소유해야 합니다. 기존의 작업 그룹 및 작업 그룹 작업에 대한 권한이 없을 경우 다음 API 작업은 AccessDeniedException을 발생시킵니다. CreateNamedQuery, DeleteNamedQuery, GetNamedQuery, ListNamedQueries, StartQueryExecution, StopQueryExecution, ListQueryExecutions, GetQueryExecution, GetQueryResults, GetQueryResultsStream(이 API 작업은 드라이버와 함께 사용하는 경우에만 사용할 수 있으며 공개적으로 사용하는 경우에는 노출되지 않음). 자세한 내용은 서비스 권한 부여 참조에서 Amazon Athena에 사용되는 작업, 리소스 및 조건 키를 참조하세요.

    BatchGetQueryExecutionBatchGetNamedQuery API 작업에 대한 호출은 사용자가 액세스 권한이 있는 작업 그룹에서 실행한 쿼리에 대해서만 정보를 반환합니다. 사용자가 작업 그룹에 대해 액세스 권한이 없을 경우 이러한 API 작업은 처리되지 않은 ID 목록에 승인되지 않은 쿼리 ID를 포함시켜 반환합니다. 자세한 내용은 Athena 작업 그룹 API 사용 단원을 참조하세요.

  • 쿼리가 실행되는 작업 그룹이 쿼리 결과 위치 강제 적용(enforced query results location)으로 구성된 경우 CTAS 쿼리에 대해 external_location을 지정하면 안 됩니다. 이러한 경우 Athena에서 오류가 발생하고 external_location을 지정한 쿼리가 실패합니다. 예를 들어 쿼리 결과 위치에 대해 클라이언트 측 설정의 재정의할 경우 이 쿼리가 실패하고 작업 그룹에서 해당 위치 CREATE TABLE <DB>.<TABLE1> WITH (format='Parquet', external_location='s3://amzn-s3-demo-bucket/test/') AS SELECT * FROM <DB>.<TABLE2> LIMIT 10;를 사용합니다.

다음과 같은 오류가 나타날 수 있습니다. 다음 표에는 작업 그룹과 관련된 몇 가지 오류 목록과 권장 해결 방법이 나와 있습니다.

작업 그룹 오류
Error 발생 조건...
취소됨 쿼리 상태. 스캔한 바이트 제한을 초과했습니다. 쿼리가 쿼리당 데이터 한도에 도달하여 취소되었습니다. 데이터를 읽는 양을 줄이도록 쿼리를 다시 작성하거나 계정 관리자에게 문의하세요.
arn:aws:iam::123456789012:user/abc 사용자는 arn:aws:athena:us-east-1:123456789012:workgroup/workgroupname 리소스에 대해 athena:StartQueryExecution 작업을 수행하도록 승인되지 않았습니다. 사용자가 작업 그룹에서 쿼리를 실행했으나 작업 그룹에 대해 액세스 권한이 없습니다. 작업 그룹에 대해 액세스 권한을 갖도록 정책을 업데이트하세요.
INVALID_INPUT. <name> 작업 그룹이 비활성화되었습니다. 사용자가 작업 그룹에서 쿼리를 실행했으나 작업 그룹이 비활성화되었습니다. 관리자가 작업 그룹을 비활성화했을 수 있습니다. 또한 해당 작업 그룹에 대해 액세스 권한이 없을 수 있습니다. 두 경우 모두 액세스 권한을 가진 관리자에게 연락하여 작업 그룹을 수정해 달라고 요청하세요.
INVALID_INPUT. <name> 작업 그룹을 찾을 수 없습니다. 사용자가 작업 그룹에서 쿼리를 실행했으나 작업 그룹이 존재하지 않습니다. 작업 그룹이 삭제되었을 수 있습니다. 다른 작업 그룹으로 전환하여 쿼리를 실행하세요.
InvalidRequestException: StartQueryExecution 작업을 호출하는 동안 출력 위치를 제공하지 않았습니다. 출력 위치는 Workgroup 결과 구성 설정 또는 API 입력으로 필요합니다.

사용자가 쿼리 결과 위치를 지정하지 않고 API를 사용하여 쿼리를 실행했습니다. 개별 쿼리에 대해 OutputLocation(클라이언트 측)을 사용하여 또는 작업 그룹에서 WorkGroupConfiguration을 사용하여 쿼리 결과 위치를 설정해야 합니다.

CTAS(Create Table As Select) 쿼리는 모든 쿼리에 대해 중앙 집중식 출력 위치를 적용하는 'external_location' 속성과 함께 Athena 작업 그룹에 제출되었기 때문에 실패했습니다. 'external_location' 속성을 제거하고 쿼리를 다시 제출하세요.

쿼리를 실행한 작업 그룹이 쿼리 결과 위치 강제 적용으로 구성된 경우 CTAS 쿼리에 대해 external_location을 지정하세요. 이 경우 external_location을 제거하고 쿼리를 다시 실행하세요.
prepared_statement_name 준비된 문을 생성할 수 없습니다. 이 작업 그룹에서 준비된 문 수가 1000개 제한을 초과했습니다. 이 작업 그룹에 1,000개 제한을 초과하는 준비된 문이 포함되어 있습니다. 이 문제를 해결하려면 DEALLOCATE PREPARE를 사용해 작업 그룹에서 준비된 문을 하나 이상 제거합니다. 또는 새 작업 그룹을 생성합니다.