테이블 지원 및 스키마

이 항목에서는 Snowpipe Streaming에서 지원하는 테이블 유형, 데이터 타입, 스키마 기능에 대해 설명합니다.

Apache Iceberg™ 테이블 지원:

Snowpipe Streaming은 Iceberg v2 및 Iceberg v3 테이블을 모두 포함하여 Snowflake 관리 Apache Iceberg™ 테이블로의 수집을 지원합니다. 자세한 내용은 Apache Iceberg™ 테이블이 있는 Snowpipe Streaming 고성능 아키텍처 섹션을 참조하십시오.

스키마 진화

Snowpipe Streaming은 자동 테이블 스키마 진화를 지원합니다. 활성화하는 경우 Snowflake는 수신 스트림에서 감지된 새 열을 자동으로 추가하고 NOT NULL 제약 조건을 삭제하여 새로운 데이터 패턴을 수용할 수 있습니다. 자세한 내용은 :doc:`테이블 스키마 진화</user-guide/data-load-schema-evolution>`를 참조하세요.

스키마 진화의 제한 사항:

  • 표준 Snowflake 테이블에만 지원됩니다. 외부 테이블과 Apache Iceberg™ 테이블은 지원되지 않습니다.

  • 기존 열의 전체 자릿수, 소수 자릿수 또는 길이는 자동으로 증가할 수 없습니다.

  • 정형화 데이터 타입에는 스키마 진화가 지원되지 않습니다. 그러나 정형화 타입이 포함된 새 열은 VARIANT로 추론됩니다.

Insert-only 작업

API 는 현재 행 삽입으로 제한됩니다. 데이터를 수정, 삭제 또는 결합하려면 하나 이상의 스테이징 테이블에 “원시” 레코드를 쓰십시오. 연속 데이터 파이프라인 을 사용하여 데이터를 병합, 조인 또는 변환하여 수정된 데이터를 대상 보고 테이블에 삽입합니다.

지원되는 Java 데이터 타입

다음 표에는 Snowflake 열로 수집하기 위해 지원되는 Java 데이터 타입이 요약되어 있습니다.

Snowflake 열 유형

허용되는 Java 데이터 타입

  • CHAR

  • VARCHAR

  • String

  • 기본 데이터 타입(int, boolean, char, …)

  • BigInteger, BigDecimal

  • BINARY

  • byte[]

  • 문자열(16진수 인코딩)

  • NUMBER

  • 숫자 타입(BigInteger, BigDecimal, byte, int, double, …)

  • String

  • FLOAT

  • 숫자 타입(BigInteger, BigDecimal, byte, int, double, …)

  • String

  • BOOLEAN

  • boolean

  • 숫자 타입(BigInteger, BigDecimal, byte, int, double, …)

  • String

부울 변환 세부 정보 를 참조하십시오.

  • TIME

  • java.time.LocalTime

  • java.time.OffsetTime

  • String

    • 정수 저장 시간

    • HH24:MI:SS.FFTZH:TZM (예: 20:57:01.123456789+07:00)

    • HH24:MI:SS.FF (예: 20:57:01.123456789)

    • HH24:MI:SS (예: 20:57:01)

    • HH24:MI (예: 20:57)

  • DATE

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.time.Instant

  • String

    • 정수 저장 날짜

    • YYYY-MM-DD (예: 2013-04-28)

    • YYYY-MM-DDTHH24:MI:SS.FFTZH:TZM (예: 2013-04-28T20:57:01.123456789+07:00)

    • YYYY-MM-DDTHH24:MI:SS.FF (예: 2013-04-28T20:57:01.123456)

    • YYYY-MM-DDTHH24:MI:SS (예: 2013-04-28T20:57:01)

    • YYYY-MM-DDTHH24:MI (예: 2013-04-28T20:57)

    • YYYY-MM-DDTHH24:MI:SSTZH:TZM (예: 2013-04-28T20:57:01-07:00)

    • YYYY-MM-DDTHH24:MITZH:TZM (예: 2013-04-28T20:57-07:00)

  • TIMESTAMP_NTZ

  • TIMESTAMP_LTZ

  • TIMESTAMP_TZ

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.time.Instant

  • String

    • 정수 저장 타임스탬프

    • YYYY-MM-DD (예: 2013-04-28)

    • YYYY-MM-DDTHH24:MI:SS.FFTZH:TZM (예: 2013-04-28T20:57:01.123456789+07:00)

    • YYYY-MM-DDTHH24:MI:SS.FF (예: 2013-04-28T20:57:01.123456)

    • YYYY-MM-DDTHH24:MI:SS (예: 2013-04-28T20:57:01)

    • YYYY-MM-DDTHH24:MI (예: 2013-04-28T20:57)

    • YYYY-MM-DDTHH24:MI:SSTZH:TZM (예: 2013-04-28T20:57:01-07:00)

    • YYYY-MM-DDTHH24:MITZH:TZM (예: 2013-04-28T20:57-07:00)

  • VARIANT

  • ARRAY

  • 문자열(유효한 JSON이어야 함)

  • 기본 데이터 타입 및 해당 배열

  • BigInteger, BigDecimal

  • java.time.LocalTime

  • java.time.OffsetTime

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.util.Map<String, T>. 여기서 T는 유효한 VARIANT 타입임

  • T[]. 여기서 T는 유효한 VARIANT 타입임

  • List<T>. 여기서 T는 유효한 VARIANT 타입임

  • OBJECT

  • 문자열(유효한 JSON 오브젝트여야 함)

  • Map<String, T>. 여기서 T는 유효한 베리언트 타입임

  • GEOGRAPHY

  • 지원됨

  • GEOMETRY

  • 지원됨