S3 Iceberg 가져오기
S3 Iceberg 가져오기
S3에 있는 Iceberg 파일을 DuckDB로 읽어오는 방법을 살펴볼게요. 확장 설치부터 자격 증명 설정, 실제 테이블 읽기까지 순서대로 따라 하면 금방 쓸 수 있어요.
출처: 문서
본문
사전 준비
S3에서 Iceberg 파일을 로드하려면 httpfs와 iceberg 확장이 모두 필요해요. 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)
httpfs와iceberg확장의 개요는 각각core_extensions/httpfs/overview,core_extensions/iceberg/overview문서를 참고해 주세요.