Iceberg 확장 함수·설정 참조

Iceberg 확장 함수·설정 참조 (Functions and Settings Reference)

이 페이지는 [iceberg 확장]({% link docs/current/core_extensions/iceberg/overview.md %})이 제공하는 모든 함수와 설정에 대한 참조예요. 작업 지향 문서는 [Overview]({% link docs/current/core_extensions/iceberg/overview.md %})(읽기), [Writing to Iceberg]({% link docs/current/core_extensions/iceberg/writing.md %}), [Iceberg REST Catalogs]({% link docs/current/core_extensions/iceberg/iceberg_rest_catalogs.md %}) 페이지를 참고해요.

테이블을 받는 함수는 테이블 메타데이터의 경로(예: 'data/iceberg/lineitem_iceberg') 또는, [카탈로그가 연결되어 있으면]({% link docs/current/core_extensions/iceberg/iceberg_rest_catalogs.md %}) 완전히 한정된 테이블 이름(예: my_catalog.default.my_table)을 받아요.

출처: 문서

본문

공통 파라미터

아래 읽기 및 메타데이터 테이블 함수는 다음 명명된 파라미터를 받아요:

파라미터 타입 기본값 설명
allow_moved_paths BOOLEAN false 이동된 Iceberg 테이블의 스캔을 허용해요
metadata_compression_codec VARCHAR '' gzip-압축 메타데이터 파일을 읽으려면 'gzip'으로 설정
snapshot_from_id UBIGINT NULL 특정 id를 가진 스냅샷에 접근
snapshot_from_timestamp TIMESTAMP NULL 특정 timestamp 시점의 스냅샷에 접근
version VARCHAR '?' 명시적 버전 문자열, 힌트 파일, 또는 추측용 '?'
version_name_format VARCHAR 'v%s%s.metadata.json,%s%s.metadata.json' 버전을 메타데이터 파일 이름으로 변환하는 방법 제어

자세한 내용은 [Selecting Metadata Versions]({% link docs/current/core_extensions/iceberg/overview.md %}#selecting-metadata-versions)를 참고해요.

읽기 및 메타데이터 함수

함수 설명
iceberg_scan(table, ⟨options⟩) Iceberg 테이블의 데이터를 읽어요. 테이블의 컬럼을 반환해요.
iceberg_metadata(table, ⟨options⟩) 매니페스트 항목당 한 행을 반환해요. 컬럼: manifest_path, manifest_sequence_number, manifest_content, status, content, file_path, file_format, record_count.
iceberg_snapshots(table, ⟨options⟩) 스냅샷당 한 행을 반환해요. 컬럼: sequence_number, snapshot_id, timestamp_ms, manifest_list.
iceberg_column_stats(table, ⟨options⟩) 데이터 파일별·컬럼별 통계를 반환해요. 컬럼: file_path, column_name, column_type, lower_bound, upper_bound, value_count, null_value_count, nan_value_count.
iceberg_partition_stats(table, ⟨options⟩) 파티션 필드별 통계를 반환해요. 컬럼: partition_field_name, partition_source_columns, partition_field_transform, lower_bound, upper_bound.
iceberg_load_table_response(table) 고급, REST-catalog 전용. 원시 카탈로그 LoadTable 응답을 반환해요: metadata_location, metadata (VARIANT), config (MAP), storage_credentials, request_url.
SELECT * FROM iceberg_snapshots('data/iceberg/lineitem_iceberg');
SELECT * FROM iceberg_column_stats('my_catalog.default.events');

테이블 및 스키마 프로퍼티 함수

이 함수들은 Iceberg 테이블 프로퍼티와 Iceberg 스키마(네임스페이스) 프로퍼티를 읽고 수정해요. 연결된 카탈로그가 필요해요. [Writing to Iceberg]({% link docs/current/core_extensions/iceberg/writing.md %}#table-properties)를 참고해요.

함수 설명
iceberg_table_properties(table) 테이블의 모든 프로퍼티를 반환해요.
set_iceberg_table_properties(table, properties) 테이블에 프로퍼티를 설정해요. propertiesMAP(VARCHAR, VARCHAR)예요.
remove_iceberg_table_properties(table, property_list) 테이블에서 나열된 프로퍼티(VARCHAR[])를 제거해요.
iceberg_schema_properties(schema) 스키마(네임스페이스)의 모든 프로퍼티를 반환해요.
set_iceberg_schema_properties(schema, properties) 스키마에 프로퍼티를 설정해요.
remove_iceberg_schema_properties(schema, property_list) 스키마에서 나열된 프로퍼티를 제거해요.

DuckLake 상호운용성

함수 설명
iceberg_to_ducklake(iceberg_catalog, ducklake_catalog, skip_tables := [...]) 연결된 Iceberg 카탈로그의 메타데이터 전용 복사를 [DuckLake]({% link docs/current/core_extensions/ducklake.md %}) 카탈로그로 수행해요. 선택적 skip_tables 파라미터(VARCHAR[])는 테이블을 제외해요.

[Interoperability with DuckLake]({% link docs/current/core_extensions/iceberg/overview.md %}#interoperability-with-ducklake)를 참고해요.

파티션 변환 함수

이 스칼라 함수들은 Iceberg 파티션 변환을 구현해요. 주로 PARTITIONED BY 절에서 사용되지만([Partitioning]({% link docs/current/core_extensions/iceberg/writing.md %}#partitioning) 참고), 직접 호출할 수도 있어요.

함수 설명
iceberg_bucket(num_buckets, value) value에 대한 Iceberg bucket 파티션 값(INTEGER)을 반환해요. 지원되는 value 타입: INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP_NS, VARCHAR, BLOB, UUID.
iceberg_truncate(width, value) value와 같은 타입으로 value에 대한 Iceberg truncate 파티션 값을 반환해요. 지원되는 타입: INTEGER, BIGINT, DECIMAL, VARCHAR, BLOB.
SELECT iceberg_bucket(16, 'duckdb');
SELECT iceberg_truncate(10, 1234);

설정 (Settings)

설정 타입 기본값 설명
unsafe_enable_version_guessing BOOLEAN false (가능하면) 파일시스템을 globbing해 최신 메타데이터 버전을 찾는 것을 활성화해요. 커밋되지 않은 버전을 읽을 수 있으므로 기본적으로 비활성화돼요.
iceberg_use_metadata_log BOOLEAN true 테이블의 선택적 metadata-log를 사용해 원자성 보장을 지켜요. 드문 경우에 추가 메타데이터 GET을 희생해요.
ignore_target_file_size_for_partitioned_tables BOOLEAN false 파티션 테이블에서 지원되지 않는 write.target-file-size-bytes 테이블 프로퍼티를 오류를 내는 대신 무시해요.
ignore_row_group_size_for_partitioned_tables BOOLEAN false 파티션 테이블에서 지원되지 않는 write.parquet.row-group-size-bytes 테이블 프로퍼티를 오류를 내는 대신 무시해요.
iceberg_via_aws_sdk_for_catalog_interactions BOOLEAN false DuckDB의 HTTP 클라이언트 대신 레거시 AWS SDK 코드 경로를 사용해 AWS 기반 카탈로그와 상호작용해요.

더 알아보기 (Learn more)

Iceberg 확장의 전체 개요는 [Iceberg extension]({% link docs/current/core_extensions/iceberg/overview.md %}) 문서를 참고해요.