

# Athena를 사용하여 Amazon S3 테이블 쿼리
<a name="s3-tables-integrating-athena"></a>

Amazon Athena는 표준 SQL을 사용해 Amazon S3에서 직접 데이터를 분석하는 데 사용할 수 있는 대화식 쿼리 서비스입니다. 자세한 내용은 *Amazon Athena 사용 설명서*에서 [Amazon Athena란 무엇입니까?](https://docs.aws.amazon.com//athena/latest/ug/what-is.html)를 참조하세요.

테이블 버킷을 AWS 분석 서비스와 통합한 후 Athena를 사용하여 S3 Tables에서 데이터 정의 언어(DDL), 데이터 조작 언어(DML) 및 데이터 쿼리 언어(DQL) 쿼리를 실행할 수 있습니다. 테이블 버킷의 테이블을 쿼리하는 방법에 대한 자세한 내용은 *Amazon Athena 사용 설명서*의 [S3 Tables 버킷 카탈로그 등록](https://docs.aws.amazon.com//athena/latest/ug/gdc-register-s3-table-bucket-cat.html)을 참조하세요.

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."라는 오류 메시지가 표시됩니다.

## S3 콘솔 및 Amazon Athena 사용
<a name="query-table-console"></a>

다음 절차에서는 Amazon S3 콘솔을 사용하여 Athena 쿼리 편집기에 액세스하여 Amazon Athena로 테이블을 쿼리할 수 있습니다.

**참고**  
다음 단계를 수행하기 전에 테이블 버킷을 이 리전의 AWS 분석 서비스와 통합했는지 확인합니다. 자세한 내용은 [AWS 분석 서비스와 Amazon S3 Tables 통합](s3-tables-integrating-aws.md) 섹션을 참조하세요.

**테이블을 쿼리하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **테이블 버킷**을 선택합니다.

1. **테이블 버킷** 페이지에서 쿼리할 테이블이 포함된 버킷을 선택합니다.

1. 버킷 세부 정보 페이지에서 쿼리하려는 테이블 이름 옆에 있는 옵션 버튼을 선택합니다.

1. **Athena를 사용하여 테이블 쿼리**를 선택합니다.

1. Amazon Athena 콘솔이 열리고 Athena 쿼리 편집기가 샘플 `SELECT` 쿼리가 로드된 상태로 나타납니다. 사용 사례에 맞게 이 쿼리를 수정합니다.

   쿼리 편집기에서 **카탈로그** 필드는 **s3tablescatalog/**로 채워지고 테이블 버킷의 이름, 예를 들어 **s3tablescatalog/{{amzn-s3-demo-bucket}}**로 채워야 합니다. **데이터베이스** 필드는 테이블이 저장된 네임스페이스로 채워져야 합니다.
**참고**  
**카탈로그** 및 **데이터베이스** 필드에 이러한 값이 표시되지 않는 경우 테이블 버킷을 이 리전의 AWS 분석 서비스와 통합했는지 확인합니다. 자세한 내용은 [AWS 분석 서비스와 Amazon S3 Tables 통합](s3-tables-integrating-aws.md) 섹션을 참조하세요.

1. 그런 다음 **실행(Run)**을 선택하여 쿼리를 실행합니다.
**참고**  
Athena에서 쿼리를 실행하려고 할 때 “쿼리를 실행할 권한이 충분하지 않습니다. 위탁자는 지정된 리소스에 대한 권한이 없습니다." 오류가 표시되면 테이블에서 필요한 Lake Formation 권한이 부여되어야 합니다. 자세한 내용은 [테이블 또는 데이터베이스에 대한 Lake Formation 권한 부여](grant-permissions-tables.md#grant-lf-table) 섹션을 참조하세요.
쿼리를 실행하려고 할 때 "Iceberg가 요청된 리소스에 액세스할 수 없음" 오류가 표시되면 AWS Lake Formation 콘솔로 이동하여 생성한 테이블 버킷 카탈로그 및 데이터베이스(네임스페이스)에 대한 권한을 자신에게 부여했는지 확인합니다. 이러한 권한을 부여할 때 테이블을 지정하지 마십시오. 자세한 내용은 [테이블 또는 데이터베이스에 대한 Lake Formation 권한 부여](grant-permissions-tables.md#grant-lf-table) 섹션을 참조하세요.
Athena에서 `SELECT` 쿼리를 실행할 때 다음 오류 메시지가 표시되는 경우 테이블 이름이나 테이블 정의의 열 이름에 대문자가 있기 때문입니다. "GENERIC\_INTERNAL\_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names." 테이블 및 열 이름이 모두 소문자인지 확인합니다.