튜토리얼: S3 Tables 시작하기

튜토리얼: S3 Tables 시작하기

이 튜토리얼에서는 테이블 버킷을 만들고, 리전의 테이블 버킷을 AWS 분석 서비스와 통합해요. 다음으로 AWS CLI 또는 콘솔을 사용해 테이블 버킷에 첫 번째 네임스페이스와 테이블을 만들게 돼요. 그런 다음 Athena로 테이블을 쿼리하기 시작할 수 있어요.

일반 목적 버킷에서 테이블 버킷으로 표 형식 데이터를 마이그레이션한다면, AWS Solutions Library에 안내 솔루션이 있어 도움이 돼요. 이 솔루션은 AWS Glue Data Catalog에 등록되고 일반 목적 버킷에 저장된 Apache Iceberg 및 Apache Hive 테이블을 AWS Step Functions와 Amazon EMR( Apache Spark 포함)을 사용해 테이블 버킷으로 이동하는 작업을 자동화해요. 자세한 내용은 AWS Solutions Library의 Amazon S3에서 S3 Tables로 표 형식 데이터 마이그레이션 안내를 참고하세요.

출처: Tutorial: Getting started with S3 Tables

본문

  • 1단계: 테이블 버킷을 만들고 AWS 분석 서비스와 통합하기
  • 2단계: 테이블 네임스페이스와 테이블 만들기
  • 3단계: Athena에서 SQL로 데이터 쿼리하기

1단계: 테이블 버킷을 만들고 AWS 분석 서비스와 통합하기

이 단계에서는 Amazon S3 콘솔을 사용해 첫 번째 테이블 버킷을 만들어요. 테이블 버킷을 만드는 다른 방법은 테이블 버킷 만들기 문서를 참고하세요.

기본적으로 Amazon S3 콘솔은 테이블 버킷을 AWS Glue Data Catalog와 자동으로 통합해서, AWS 분석 서비스가 S3 Tables 데이터를 자동으로 검색하고 접근할 수 있게 해요. AWS Command Line Interface(AWS CLI), AWS SDK, 또는 REST API로 프로그래밍 방식으로 첫 번째 테이블 버킷을 만든다면 AWS 분석 서비스 통합을 수동으로 완료해야 해요. 자세한 내용은 Amazon S3 Tables를 AWS 분석 서비스와 통합하기 문서를 참고하세요.

  • AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 열어요.
  • 탐색 모음에서 현재 표시된 AWS 리전의 이름을 선택해요. 그런 다음 테이블 버킷을 만들 리전을 선택해요.
  • 왼쪽 탐색 창에서 테이블 버킷(Table buckets)을 선택해요.
  • 테이블 버킷 만들기(Create table bucket)를 선택해요.
  • 일반 구성(General configuration)에서 테이블 버킷 이름을 입력해요. 테이블 버킷 이름은 다음을 충족해야 해요. 현재 리전의 AWS 계정 내에서 고유해야 하고, 3~63자 길이여야 하며, 소문자, 숫자, 하이픈(-)만 사용해야 하고, 문자나 숫자로 시작하고 끝나야 해요. 테이블 버킷을 만든 후에는 이름을 변경할 수 없어요. 테이블 버킷을 만든 AWS 계정이 그 버킷을 소유해요. 테이블 버킷 이름 지정에 대한 자세한 내용은 테이블 버킷 이름 지정 규칙 문서를 참고하세요.
  • AWS 분석 서비스와 통합(Integration with AWS analytics services) 섹션에서 통합 활성화(Enable integration) 확인란을 선택했는지 확인해요. 콘솔로 첫 번째 테이블 버킷을 만들 때 통합 활성화가 선택되어 있다면, Amazon S3는 테이블 버킷을 AWS 분석 서비스와 통합하려고 시도해요. 이 통합을 통해 AWS 분석 서비스를 사용해 현재 리전의 모든 테이블에 접근할 수 있어요. 자세한 내용은 Amazon S3 Tables를 AWS 분석 서비스와 통합하기 문서를 참고하세요.
  • 버킷 만들기(Create bucket)를 선택해요.

2단계: 테이블 네임스페이스와 테이블 만들기

이 단계에서는 테이블 버킷에 네임스페이스를 만들고, 그 네임스페이스 아래에 새 테이블을 만들어요. 테이블 네임스페이스와 테이블은 콘솔이나 AWS CLI를 사용해 만들 수 있어요.

테이블을 만들 때 테이블 이름과 테이블 정의에 소문자만 사용했는지 확인하세요. 예를 들어 열 이름이 모두 소문자인지 확인해요. 테이블 이름이나 테이블 정의에 대문자가 포함되면 그 테이블은 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."

3단계: Athena에서 SQL로 데이터 쿼리하기

Athena에서 SQL로 테이블을 쿼리할 수 있어요. Athena는 S3 Tables에 대해 DDL(Data Definition Language), DML(Data Manipulation Language), DQL(Data Query Language) 쿼리를 지원해요.

Athena 쿼리는 Amazon S3 콘솔이나 Amazon Athena 콘솔에서 접근할 수 있어요.

더 알아보기 (Learn more)

  • 테이블 버킷 만들기
  • Amazon S3 Tables를 AWS 분석 서비스와 통합하기
  • 테이블 버킷