테이블 데이터 접근하기

테이블 데이터 접근하기 (Accessing table data)

Amazon S3 테이블 버킷의 테이블에는 여러 방식으로 접근할 수 있어요. AWS Glue Data Catalog를 사용해 테이블을 AWS 분석 서비스와 통합하거나, Amazon S3 Tables Iceberg REST 엔드포인트나 Amazon S3 Tables Catalog for Apache Iceberg로 테이블에 직접 접근할 수 있어요. 어떤 접근 방식을 쓸지는 카탈로그 설정, 거버넌스 모델, 접근 제어 요구 사항에 따라 달라져요. 다음은 이런 접근 방식에 대한 개요예요.

출처: 문서

본문

AWS Glue Data Catalog 통합

이 방식은 S3 테이블 버킷의 테이블과 작업할 때 권장하는 접근 방식이에요. 이 통합은 AWS Glue Data Catalog를 통해 여러 AWS 분석 서비스에 걸쳐 데이터 자산(data estate)의 통합된 뷰를 제공해요. 통합 후에는 Athena, Amazon Redshift 같은 서비스로 테이블을 쿼리할 수 있어요. 테이블에 대한 접근은 IAM 권한으로 관리돼요. 이 통합으로 테이블에 접근하려면 사용하는 IAM 자격 증명이 S3 Tables 리소스·작업, AWS Glue Data Catalog 객체, 그리고 사용 중인 쿼리 엔진에 접근할 수 있어야 해요. 자세한 내용은 "Access management for S3 Tables" 문서를 참고하세요.

직접 접근 (Direct access)

이 방식은 AWS Partner Network(APN) 카탈로그 구현이나 커스텀 카탈로그 구현과 작업해야 하거나, 단일 테이블 버킷 안의 테이블에 기본적인 읽기·쓰기 작업만 수행하면 되는 경우에 사용해요. 테이블에 대한 접근은 IAM 권한으로 관리돼요. 테이블에 접근하려면 사용하는 IAM 자격 증명이 테이블 리소스와 S3 Tables 작업에 접근할 수 있어야 해요. 자세한 내용은 "Access management for S3 Tables" 문서를 참고하세요.

AWS Glue Data Catalog 통합을 통해 테이블 접근하기

S3 테이블 버킷을 AWS Glue Data Catalog와 통합하면 Amazon Athena, Amazon Redshift, Quick 같은 AWS 분석 서비스에서 테이블에 접근할 수 있어요. 이 통합은 AWS Glue Data Catalog에 테이블 리소스를 채우고 그 리소스에 대한 접근을 연합(federate)해요. 통합에 대한 자세한 내용은 "Integrating Amazon S3 Tables with AWS analytics services" 문서를 참고하세요.

다음 AWS 분석 서비스들이 이 통합을 통해 테이블에 접근할 수 있어요.

  • Amazon Athena
  • Amazon Redshift
  • Amazon EMR
  • Quick
  • Amazon Data Firehose
  • AWS Glue ETL
  • SageMaker Unified Studio로 S3 Tables 쿼리하기

AWS Glue Iceberg REST 엔드포인트를 사용해 테이블 접근하기

S3 테이블 버킷이 AWS Glue Data Catalog와 통합되면 AWS Glue Iceberg REST 엔드포인트를 사용해 Iceberg를 지원하는 서드파티 쿼리 엔진에서 S3 테이블에 연결할 수도 있어요. 자세한 내용은 "Accessing Amazon S3 tables using the AWS Glue Iceberg REST endpoint" 문서를 참고하세요.

Spark, PyIceberg 또는 다른 Iceberg 호환 클라이언트에서 테이블에 접근하려는 경우 AWS Glue Iceberg REST 엔드포인트 사용을 권장해요.

다음 클라이언트가 AWS Glue Iceberg REST 엔드포인트를 통해 테이블에 직접 접근할 수 있어요.

  • Spark, PyIceberg 등을 포함한 모든 Iceberg 클라이언트

테이블에 직접 접근하기

오픈 소스 쿼리 엔진에서 S3 Tables 관리 작업을 Apache Iceberg 분석 애플리케이션에 연결하는 방법을 통해 테이블에 직접 접근할 수 있어요. 직접 접근 방법은 두 가지예요. Amazon S3 Tables Iceberg REST 엔드포인트 또는 Amazon S3 Tables Catalog for Apache Iceberg예요. REST 엔드포인트가 권장돼요.

셀프 관리형 카탈로그 구현에서 테이블에 접근하거나, 단일 테이블 버킷의 테이블에 기본 읽기·쓰기 작업만 수행해야 하는 경우 직접 접근을 권장해요. 다른 접근 시나리오에서는 AWS Glue Data Catalog 통합을 권장해요.

테이블에 대한 직접 접근은 테이블과 테이블 버킷에 연결된 IAM 자격 증명 기반 정책 또는 리소스 기반 정책으로 관리돼요.

Amazon S3 Tables Iceberg REST 엔드포인트를 통해 테이블에 직접 접근하기

Amazon S3 Tables Iceberg REST 엔드포인트를 사용하면 HTTP 엔드포인트를 통해 Iceberg REST 호환 클라이언트 어디서든 테이블에 직접 접근할 수 있어요. 자세한 내용은 "Accessing tables using the Amazon S3 Tables Iceberg REST endpoint" 문서를 참고하세요.

다음 AWS 분석 서비스와 쿼리 엔진이 Amazon S3 Tables Iceberg REST 엔드포인트를 사용해 테이블에 직접 접근할 수 있어요.

  • Spark, PyIceberg 등을 포함한 모든 Iceberg 클라이언트
  • Amazon EMR
  • AWS Glue ETL

Amazon S3 Tables Catalog for Apache Iceberg를 통해 테이블에 직접 접근하기

S3 Tables 클라이언트 카탈로그를 사용해 Apache Spark 같은 쿼리 엔진에서 테이블에 직접 접근할 수도 있어요. 자세한 내용은 "Accessing Amazon S3 tables with the Amazon S3 Tables Catalog for Apache Iceberg" 문서를 참고하세요. 다만 S3는 직접 접근에 Amazon S3 Tables Iceberg REST 엔드포인트 사용을 권장하는데, 언어나 엔진별 코드가 필요 없이 더 많은 애플리케이션을 지원하기 때문이에요.

다음 쿼리 엔진이 클라이언트 카탈로그를 사용해 테이블에 직접 접근할 수 있어요.

  • Apache Spark

더 알아보기 (Learn more)

  • 테이블에서 태그 삭제하기 (Deleting a tag from a table)
  • S3 Tables 통합 개요 (S3 Tables integration overview)