테이블 문제 해결 - Amazon Athena

테이블 문제 해결

테이블을 생성할 때 경로 오류를 생성할 수 없습니다.

오류 메시지: IllegalArgumentException: 빈 문자열에서 경로를 생성할 수 없습니다.

원인: 이 오류는 Athena에서 Apache Spark를 사용하여 AWS Glue 데이터베이스에서 테이블을 생성하고, 데이터베이스에 빈 LOCATION 속성이 있는 경우에 발생할 수 있습니다.

권장 솔루션: 자세한 내용 및 해결 방법은 테이블을 생성할 때 잘못된 인수 예외 발생 단원을 참조하세요.

AWS Glue 테이블을 쿼리할 때 AccessDeniedException 예외 발생

오류 메시지: pyspark.sql.utils.AnalysisException: Unable to verify existence of default database: com.amazonaws.services.glue.model.AccessDeniedException: User: arn:aws:sts::aws-account-id:assumed-role/AWSAthenaSparkExecutionRole-unique-identifier/AthenaExecutor-unique-identifier is not authorized to perform: glue:GetDatabase on resource: arn:aws:glue:aws-region:aws-account-id:catalog because no identity-based policy allows the glue:GetDatabase action (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: request-id; Proxy: null)

원인: Spark 지원 작업 그룹의 실행 역할에 AWS Glue 리소스에 액세스할 수 있는 권한이 없습니다.

권장 솔루션: 이 문제를 해결하려면 실행 역할에 AWS Glue 리소스에 대한 액세스 권한을 부여한 다음 실행 역할에 액세스 권한을 부여하도록 Amazon S3 버킷 정책을 편집합니다.

다음 절차에서는 이 단계를 자세히 설명합니다.

실행 역할에 AWS Glue 리소스에 대한 액세스 권한을 부여하려면
  1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

  2. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.

    확장 메뉴를 선택합니다.
  3. Athena 콘솔 탐색 창에서 작업 그룹(Workgroups)을 선택합니다.

  4. 작업 그룹(Workgroups) 페이지에서 보려는 작업 그룹의 링크를 선택합니다.

  5. 작업 그룹에 대한 Overview Details(개요 세부 정보) 페이지에서 Role ARN(역할 ARN) 링크를 선택합니다. 링크를 클릭하면 IAM 콘솔에서 Simple 실행 역할이 열립니다.

  6. Permissions policies(권한 정책) 섹션에서 연결된 역할 정책 이름을 선택합니다.

  7. Edit policy(정책 편집)를 선택한 다음 JSON을 선택합니다.

  8. 역할에 AWS Glue 액세스 권한을 추가합니다. 일반적으로 glue:GetDatabaseglue:GetTable 작업에 대한 권한을 추가합니다. IAM 역할 구성에 대한 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가 및 제거를 참조하세요.

  9. Review policy(정책 검토)를 선택한 다음 Save changes(변경 사항 저장)를 선택합니다.

  10. 실행 역할에 액세스 권한을 부여하도록 Amazon S3 버킷 정책을 편집합니다. 버킷과 버킷 내 객체 모두에 대한 액세스 권한을 역할에 부여해야 합니다. 작업 단계는 Amazon Simple Storage Service 사용 설명서의 Amazon S3 콘솔을 사용하여 버킷 정책 추가 단원을 참조하세요.