S3 Iceberg 가져오기

S3 Iceberg 가져오기

S3에 있는 Iceberg 파일을 DuckDB로 읽어오는 방법을 살펴볼게요. 확장 설치부터 자격 증명 설정, 실제 테이블 읽기까지 순서대로 따라 하면 금방 쓸 수 있어요.

출처: 문서

본문

사전 준비

S3에서 Iceberg 파일을 로드하려면 httpfsiceberg 확장이 모두 필요해요. INSTALL SQL 명령어로 설치하면 됩니다. 확장 설치는 한 번만 하면 돼요.

INSTALL httpfs;
INSTALL iceberg;

확장을 로드하려면 LOAD 명령어를 사용해요.

LOAD httpfs;
LOAD iceberg;

자격 증명

확장을 로드한 뒤, 데이터를 읽기 위한 자격 증명과 S3 리전을 설정하세요. 액세스 키와 시크릿을 사용하거나, 토큰을 사용할 수 있어요.

CREATE SECRET (
    TYPE s3,
    KEY_ID '⟨«redacted:AKIA…»⟩',
    SECRET '⟨wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY⟩',
    REGION '⟨us-east-1⟩'
);

자격 증명을 자동으로 가져오거나, 명명된 프로필·SSO·assumed role을 쓰려면 aws 확장을 참고해 주세요. 기본 설정은 다음과 같아요.

CREATE SECRET (
    TYPE s3,
    PROVIDER credential_chain
);

S3에서 Iceberg 테이블 로드

확장이 설정되고 S3 자격 증명이 올바르게 구성된 뒤에는, 다음 명령어로 S3의 Iceberg 테이블을 읽을 수 있어요.

SELECT *
FROM iceberg_scan('s3://⟨bucket⟩/⟨iceberg_table_folder⟩/metadata/⟨id⟩.metadata.json');

주의할 점은 매니페스트 파일에 직접 연결해야 한다는 거예요. 그렇지 않으면 다음과 같은 오류가 발생할 수 있습니다.

IO Error:
Cannot open file "s3://bucket/iceberg_table_folder/metadata/version-hint.text": No such file or directory

더 알아보기 (Learn more)

  • httpfsiceberg 확장의 개요는 각각 core_extensions/httpfs/overview, core_extensions/iceberg/overview 문서를 참고해 주세요.