Amazon S3 Tables

Amazon S3 Tables

iceberg 확장은 Amazon S3 Tables에 저장된 Iceberg 테이블 읽기를 지원해요. 아직 실험적인 지원이므로 최신 버전에서 동작을 확인해보는 걸 권장해요.

출처: 문서

본문

S3 Tables 지원은 현재 실험적이에요.

iceberg 확장은 Amazon S3 Tables에 저장된 Iceberg 테이블 읽기를 지원해요.

요구 사항

다음 확장을 설치해요.

INSTALL aws;
INSTALL httpfs;
INSTALL iceberg;

Amazon S3 Tables에 연결하기

Secrets Manager로 다음 secret을 생성하면 ~/.aws 디렉토리의 기본 프로필을 기반으로 AWS 자격 증명과 구성을 DuckDB가 자동으로 감지하게 할 수 있어요.

CREATE SECRET (
    TYPE s3,
    PROVIDER credential_chain
);

또는 값을 직접 설정할 수도 있어요.

CREATE SECRET (
    TYPE s3,
    KEY_ID '⟨key_id⟩',
    SECRET '⟨secret⟩',
    REGION '⟨region⟩'
);

자격 증명 옵션의 전체 범위(가정된 역할, SSO, 웹 ID 등)는 aws 확장을 참고해요.

그런 다음 AWS Management Console에서 확인 가능한 S3 Tables ARN과 ENDPOINT_TYPE s3_tables 옵션을 사용해 카탈로그에 연결해요.

ATTACH '⟨s3_tables_arn⟩' AS my_s3_tables_catalog (
   TYPE iceberg,
   ENDPOINT_TYPE s3_tables
);

경고 ENDPOINT_TYPE s3_tables는 항상 s3tables.⟨region⟩.amazonaws.com/iceberg 형태의 엔드포인트를 생성해요. 이는 일반적인 amazonaws.com 접미사를 사용하지 않는 리전에서는 올바르지 않아요. 특히 amazonaws.com.cn을 사용하는 AWS 중국 리전(cn-north-1, cn-northwest-1)이 그렇죠. 이런 리전에서는 ENDPOINT_TYPE 대신 명시적 ENDPOINT(리전에 맞는 올바른 호스트)와 AUTHORIZATION_TYPE 'sigv4'를 함께 전달해 카탈로그를 부착해요.

부착이 잘 됐는지 확인하려면 모든 테이블을 나열해요.

SHOW ALL TABLES;

테이블은 다음과 같이 쿼리할 수 있어요.

SELECT count(*)
FROM my_s3_tables_catalog.⟨namespace_name⟩.⟨table_name⟩;

S3 Tables는 Iceberg REST 카탈로그예요. ATTACH 옵션의 전체 목록과 호환성 플래그에 대한 자세한 내용은 Iceberg REST 카탈로그를 참고해요.

더 알아보기 (Learn more)