Athena로 Amazon S3 테이블 쿼리하기

Athena로 Amazon S3 테이블 쿼리하기 (Querying Amazon S3 tables with Athena)

Amazon Athena는 표준 SQL을 사용해 Amazon S3의 데이터를 직접 분석할 수 있는 대화형 쿼리 서비스예요. 자세한 내용은 Amazon Athena User Guide의 "What is Amazon Athena?" 문서를 참고하세요.

출처: 문서

본문

테이블 버킷을 AWS 분석 서비스와 통합한 뒤에는 Athena를 사용해 S3 테이블에서 데이터 정의 언어(DDL), 데이터 조작 언어(DML), 데이터 쿼리 언어(DQL) 쿼리를 실행할 수 있어요. 테이블 버킷의 테이블을 쿼리하는 방법에 대한 자세한 내용은 Amazon Athena User Guide의 "Register S3 Table bucket catalogs" 문서를 참고하세요.

Amazon S3 콘솔에서도 Athena 쿼리를 실행할 수 있어요.

중요: 테이블을 만들 때 테이블 이름과 테이블 정의에 소문자만 사용하세요. 예를 들어 컬럼 이름을 모두 소문자로 만들어요. 테이블 이름이나 테이블 정의에 대문자가 포함되면 AWS Lake Formation이나 AWS Glue Data Catalog가 그 테이블을 지원하지 않아요. 이 경우 테이블 버킷이 AWS 분석 서비스와 통합돼 있어도 Amazon Athena 같은 AWS 분석 서비스에 테이블이 보이지 않아요.

테이블 정의에 대문자가 포함되면 Athena에서 SELECT 쿼리를 실행할 때 다음 오류 메시지를 받아요: "GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names."

다음 절차는 Amazon S3 콘솔을 사용해 Athena 쿼리 편집기에 접근해서 Amazon Athena로 테이블을 쿼리하는 방법이에요.

참고: 다음 단계를 수행하기 전에 이 리전에서 테이블 버킷을 AWS 분석 서비스와 통합했는지 확인하세요. 자세한 내용은 "Integrating Amazon S3 Tables with AWS analytics services" 문서를 참고하세요.

테이블을 쿼리하려면:

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 Table buckets를 선택해요.
  3. Table buckets 페이지에서 쿼리하려는 테이블이 들어 있는 버킷을 선택해요.
  4. 버킷 세부 정보 페이지에서 쿼리하려는 테이블 이름 옆의 옵션 버튼을 선택해요.
  5. Query table with Athena를 선택해요.
  6. Amazon Athena 콘솔이 열리고 Athena 쿼리 편집기에 샘플 SELECT 쿼리가 로드되어 나타나요. 이 쿼리를 사용 사례에 맞게 수정해요. 쿼리 편집기에서 Catalog 필드에는 s3tablescatalog/ 다음에 테이블 버킷 이름이 채워져야 해요. 예를 들어 s3tablescatalog/amzn-s3-demo-bucket처럼요. Database 필드에는 테이블이 저장된 네임스페이스가 채워져야 해요.

    참고: Catalog와 Database 필드에 이 값들이 보이지 않으면 이 리전에서 테이블 버킷을 AWS 분석 서비스와 통합했는지 확인하세요. 자세한 내용은 "Integrating Amazon S3 Tables with AWS analytics services" 문서를 참고하세요.

  7. 쿼리를 실행하려면 Run을 선택해요.

    참고: Athena에서 쿼리를 실행할 때 "Insufficient permissions to execute the query. Principal does not have any privilege on specified resource" 오류가 발생하면 테이블에 필요한 Lake Formation 권한을 부여받아야 해요. 자세한 내용은 "Granting Lake Formation permission on a table or database" 문서를 참고하세요. 쿼리를 실행할 때 "Iceberg cannot access the requested resource" 오류가 발생하면 AWS Lake Formation 콘솔로 가서 만든 테이블 버킷 카탈로그와 데이터베이스(네임스페이스)에 자신의 권한을 부여했는지 확인하세요. 이 권한을 부여할 때 테이블을 지정하지 마세요. 자세한 내용은 "Granting Lake Formation permission on a table or database" 문서를 참고하세요. Athena에서 SELECT 쿼리를 실행할 때 다음 오류 메시지가 발생하면 테이블 이름이나 테이블 정의의 컬럼 이름에 대문자가 있어서예요: "GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names." 테이블과 컬럼 이름이 모두 소문자인지 확인하세요.

더 알아보기 (Learn more)

  • 클라이언트 카탈로그로 테이블 접근하기 (Accessing tables with the client catalog)
  • Amazon Redshift (Amazon Redshift)