Amazon S3 Tables Iceberg REST 엔드포인트를 사용하여 테이블에 액세스
Iceberg REST 클라이언트를 Amazon S3 Tables Iceberg REST 엔드포인트에 연결하고 S3 테이블 버킷에서 테이블을 생성, 업데이트 또는 쿼리하는 REST API 직접 호출을 할 수 있습니다. 엔드포인트는 Apache Iceberg RESTCatalog Open API 사양
참고
Amazon S3 Tables Iceberg REST 엔드포인트를 사용하여 AWS Partner Network(APN) 카탈로그 구현 또는 사용자 지정 카탈로그 구현의 테이블에 액세스할 수 있습니다. 또한 단일 테이블 버킷에 대한 기본 읽기/쓰기 액세스 권한만 필요한 경우에도 사용할 수 있습니다. 다른 액세스 시나리오의 경우 AWS Glue Iceberg REST 엔드포인트를 사용하여 통합 테이블 관리, 중앙 집중식 거버넌스 및 세분화된 액세스 제어를 제공하는 테이블에 연결하는 것이 좋습니다. 자세한 내용은 AWS GlueIceberg REST 엔드포인트를 사용하여 Amazon S3 Tables에 액세스 단원을 참조하세요.
엔드포인트 구성
서비스 엔드포인트를 사용하여 Amazon S3 Tables Iceberg REST 엔드포인트에 연결합니다. S3 Tables Iceberg REST 엔드포인트의 형식은 다음과 같습니다.
https://s3tables.<REGION>.amazonaws.com/iceberg
리전별 엔드포인트는 S3 Tables AWS 리전 및 엔드포인트 섹션을 참조하세요.
카탈로그 구성 속성
Iceberg 클라이언트를 사용하여 분석 엔진을 서비스 엔드포인트에 연결하는 경우 카탈로그를 초기화할 때 다음 구성 속성을 지정해야 합니다. 자리 표시자 값
을 리전 및 테이블 버킷의 실제 정보로 바꿉니다.
리전별 엔드포인트를 엔드포인트 URI로 사용:
https://s3tables.<REGION>.amazonaws.com/iceberg
테이블 버킷 ARN을 웨어하우스 위치로 사용:
arn:aws:s3tables:<region>:<accountID>:bucket/<bucketname>
인증을 위한 Sigv4 속성. 서비스 엔드포인트 요청의 SigV4 서명 이름은
s3tables
입니다.
다음 예제에서는 Amazon S3 Tables Iceberg REST 엔드포인트를 사용하도록 여러 클라이언트를 구성하는 방법을 보여줍니다.
엔드포인트에 대한 액세스 인증 및 권한 부여
S3 Tables 서비스 엔드포인트에 대한 API 요청은 AWS Signature Version 4(SigV4)를 사용하여 인증됩니다. AWS SigV4에 대한 자세한 내용은 API 요청용 AWS Signature Version 4 섹션을 참조하세요.
Amazon S3 Tables Iceberg REST 엔드포인트 요청의 SigV4 서명 이름은 s3tables
입니다.
Amazon S3 Tables Iceberg REST 엔드포인트에 대한 요청은 REST API 작업에 해당하는 s3tables
IAM 작업을 사용하여 승인됩니다. 이러한 권한은 IAM 자격 증명 기반 정책 또는 테이블 및 테이블 버킷에 연결된 리소스 기반 정책에서 정의할 수 있습니다. 자세한 내용은 S3 Tables의 액세스 관리 단원을 참조하십시오.
AWS CloudTrail을 사용하여 REST 엔드포인트를 통해 테이블에 대한 요청을 추적할 수 있습니다. 요청은 해당 S3 IAM 작업으로 기록됩니다. 예를 들어 LoadTable
API는 GetTableMetadataLocation
작업에 대한 관리 이벤트와 GetTableData
작업에 대한 데이터 이벤트를 생성합니다. 자세한 내용은 S3 Tables에서 AWS CloudTrail을 사용하여 로깅 단원을 참조하십시오.
접두사 및 경로 파라미터
Iceberg REST 카탈로그 API는 요청 URL에 자유 형식 접두사를 사용합니다. 예를 들어 ListNamespaces
API 직접 호출은 GET/v1/{prefix}/namespaces
URL 형식을 사용합니다. S3 테이블의 경우 REST 경로 {prefix}
는 항상 URL로 인코딩된 테이블 버킷 ARN입니다.
예를 들어 다음 테이블 버킷 ARN arn:aws:s3tables:
의 경우 접두사는 us-east-1
:111122223333:bucket/bucketname
arn%3Aaws%3As3tables%3A
입니다.us-east-1
%3A111122223333
%3Abucket%2Fbucketname
네임스페이스 경로 파라미터
Iceberg REST 카탈로그 API 경로의 네임스페이스는 여러 수준을 가질 수 있습니다. 그러나 S3 Tables는 단일 수준 네임스페이스만 지원합니다. 다중 수준 카탈로그 계층 구조의 네임스페이스에 액세스하려면 네임스페이스 위의 다중 수준 카탈로그에 연결하여 네임스페이스를 참조하면 됩니다. 이렇게 하면 다중 수준 네임스페이스를 사용하는 것에 비해 호환성 문제 없이 catalog.namespace.table
의 3부 표기법을 지원하는 모든 쿼리 엔진이 S3 Tables의 카탈로그 계층 구조의 객체에 액세스할 수 있습니다.
지원되는 Iceberg REST API 작업
다음 표에는 지원되는 Iceberg REST API와 이러한 API가 S3 Tables 작업에 대응하는 방식이 나와 있습니다.
Iceberg REST 작업 | REST 경로 | S3 Tables IAM 작업 | CloudTrail EventName |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
고려 사항 및 제한 사항
다음은 Amazon S3 Tables Iceberg REST 엔드포인트 사용 시 고려 사항 및 제한 사항입니다.
고려 사항
CreateTable API 동작 - 이 작업에서는
stage-create
옵션이 지원되지 않으며400 Bad Request
오류가 발생합니다. 즉,CREATE TABLE AS SELECT
(CTAS)를 사용하여 쿼리 결과에서 테이블을 생성할 수 없습니다.DeleteTable API 동작 - 제거가 활성화된 테이블만 삭제할 수 있습니다.
purge=false
가 포함된 테이블을 삭제하는 것은 지원되지 않으며400 Bad Request
오류가 발생합니다. Spark의 일부 버전은DROP TABLE PURGE
명령을 실행할 때도 항상 이 플래그를 false로 설정합니다.DROP TABLE PURGE
를 사용하거나 S3 Tables DeleteTable 작업을 사용하여 테이블을 삭제할 수 있습니다.-
엔드포인트는 표준 테이블 메타데이터 작업만 지원합니다. 스냅샷 관리 및 압축과 같은 테이블 유지 관리의 경우 S3 Tables 유지 관리 API 작업을 사용합니다. 자세한 내용은 S3 Tables 유지 관리 단원을 참조하십시오.
제한 사항
다중 수준 네임스페이스는 지원되지 않습니다.
OAuth 기반의 인증은 지원되지 않습니다.
네임스페이스에는
owner
속성만 지원됩니다.Apache Iceberg REST Open API 사양
에 정의된 보기 관련 API는 지원되지 않습니다. metadata.json
파일이 5MB를 초과하는 테이블에서 작업을 실행하는 것은 지원되지 않으며400 Bad Request
오류가 반환됩니다.metadata.json
파일 크기를 제어하려면 테이블 유지 관리 작업을 사용합니다. 자세한 내용은 S3 Tables 유지 관리 단원을 참조하십시오.