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" 문서를 참고하세요.
테이블을 쿼리하려면:
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 열어요.
- 왼쪽 탐색 창에서 Table buckets를 선택해요.
- Table buckets 페이지에서 쿼리하려는 테이블이 들어 있는 버킷을 선택해요.
- 버킷 세부 정보 페이지에서 쿼리하려는 테이블 이름 옆의 옵션 버튼을 선택해요.
- Query table with Athena를 선택해요.
- Amazon Athena 콘솔이 열리고 Athena 쿼리 편집기에 샘플 SELECT 쿼리가 로드되어 나타나요. 이 쿼리를 사용 사례에 맞게 수정해요. 쿼리 편집기에서 Catalog 필드에는
s3tablescatalog/다음에 테이블 버킷 이름이 채워져야 해요. 예를 들어s3tablescatalog/amzn-s3-demo-bucket처럼요. Database 필드에는 테이블이 저장된 네임스페이스가 채워져야 해요.참고: Catalog와 Database 필드에 이 값들이 보이지 않으면 이 리전에서 테이블 버킷을 AWS 분석 서비스와 통합했는지 확인하세요. 자세한 내용은 "Integrating Amazon S3 Tables with AWS analytics services" 문서를 참고하세요.
- 쿼리를 실행하려면 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)