Apache Iceberg™ 테이블과 함께 Snowpipe Streaming 사용하기

Snowflake Ingest SDK 버전 3.0.0 이상에서는 Snowpipe Streaming 을 통해 Snowflake가 관리하는 Apache Iceberg 테이블로 데이터를 수집할 수 있습니다. Snowpipe Streaming Ingest Java SDK 는 표준 Snowflake 테이블(비 Iceberg)과 Iceberg 테이블 모두에 대한 로딩을 지원합니다.

Iceberg 테이블을 사용한 Snowpipe Streaming

Snowpipe Streaming API 를 통해 전송된 데이터는 하나 이상의 채널을 통해 행을 수집하며, 지정된 MAX_CLIENT_LAG 에 따라 자동으로 플러시됩니다.

MAX_CLIENT_LAG 속성은 스트림 수집의 지연 시간을 제어합니다.

  • 표준 Snowflake 테이블(비Iceberg)의 경우 기본 MAX_CLIENT_LAG 는 1초입니다.

  • Iceberg 테이블의 경우 기본 MAX_CLIENT_LAG 는 30초입니다.

Snowflake는 외부 볼륨 을 사용하여 저장소 위치에 연결하고, Snowpipe Streaming은 데이터를 플러시하여 해당 Iceberg 메타데이터가 포함된 Iceberg 호환 Parquet 데이터 파일을 생성합니다. 이러한 Parquet 데이터 및 메타데이터 파일은 구성된 외부 클라우드 저장소 위치에 업로드되며, Snowflake에서 관리하는 Iceberg 테이블로 Iceberg 카탈로그에 등록되어 가용성이 제공됩니다.

구성

구성된 외부 볼륨으로 Snowflake 관리 Iceberg 테이블 을 생성하고, 열린 채널 요청에 Iceberg 테이블 이름을 지정합니다.

Snowflake 관리 Iceberg 테이블로 Snowpipe Streaming을 사용하려면 profile.json 파일에서 다음 속성 ENABLE_ICEBERG_STREAMING=true 를 설정해야 합니다.

지원되는 데이터 타입

  • Snowflake Ingest SDK 는 현재 Snowflake가 지원하는 것과 동일하게 대부분의 Iceberg 데이터 타입을 지원합니다. 자세한 내용은 Apache Iceberg™ 테이블의 데이터 타입 섹션을 참조하십시오.

  • Snowflake Ingest SDK 는 정형 ARRAY, 정형 OBJECT, 정형 MAP 의 세 가지 정형 데이터 타입 으로의 수집을 지원합니다.

사용법 노트

  • 기본 MAX_CLIENT_LAG 는 Snowflake 관리 Iceberg 테이블로 스트리밍하는 데 30초로 설정되어 있어 Parquet 파일을 최적화할 수 있습니다. 속성을 더 낮은 값으로 설정할 수 있지만 처리량이 현저히 많지 않는 한 이 작업을 수행하지 않는 것이 좋습니다.

  • Ingest SDK 는 비동기적으로 작은 Parquet 파일의 자동 서버리스 압축을 지원합니다.

  • 동일한 클라이언트 애플리케이션을 Iceberg 테이블과 비Iceberg 테이블에 동시에 사용할 수 없습니다.

  • Snowflake로 관리되는 Iceberg 테이블은 클라이언트 측 암호화를 지원하지 않습니다.

  • Iceberg 호환 Parquet 파일은 Iceberg 테이블에 지정된 STORAGE_SERIALIZATION_POLICY 을 기반으로 생성됩니다.

  • Snowpipe Streaming은 Iceberg 카탈로그로 Snowflake만 지원하지만, Snowflake Open Catalog 와의 동기화도 지원합니다.

  • Snowflake는 외부 볼륨 을 사용하여 저장소 위치에 연결합니다. Iceberg 테이블의 데이터 저장소 는 사용자에게 책임이 있습니다.

  • Snowflake가 관리하는 Iceberg 테이블에 대한 Snowpipe Streaming 수집은 제한된 기간 동안 무료로 사용할 수 있습니다.

제한 사항

Snowpipe Streaming에 대해 설명된 제한 사항 은 Iceberg 테이블을 사용한 Snowpipe Streaming에도 적용됩니다.

OSZAR »