表支持与架构

本主题涵盖 Snowpipe Streaming 支持的表类型、数据类型和架构功能。

Apache Iceberg™ 表支持

Snowpipe Streaming 支持将数据引入到 Snowflake 管理的 Apache Iceberg™ 表中,包括 Iceberg v2 以及 Iceberg v3 表。有关更多信息,请参阅 Apache Iceberg™ 表的 Snowpipe Streaming 高性能架构

架构演化

Snowpipe Streaming 支持自动表架构演化。启用后,Snowflake 可以自动添加在传入流中检测到的新列,并删除 NOT NULL 约束以适配新的数据模式。有关更多信息,请参阅 表架构演化

架构演化的限制:

  • 仅支持标准 Snowflake 表。不支持外部表和 Apache Iceberg™ 表。

  • 无法自动增加现有列的精度、比例或长度。

  • 结构化数据类型不支持架构演化。不过,包含结构化类型的新列将被推断为 VARIANT。

仅限插入操作

API 目前仅限于插入行。要修改、删除或合并数据,请将“原始”记录写入一个或多个临时表。若要合并、连接或转换数据,请使用 :doc:` 连续数据管道 </user-guide/data-pipelines-intro>` 将修改后的数据插入目标报告表。

支持的 Java 数据类型

下表汇总了支持将哪些 Java 数据类型引入到 Snowflake 列:

Snowflake 列类型

允许的 Java 数据类型

  • CHAR

  • VARCHAR

  • 字符串

  • 基元数据类型(整数、布尔、字符等)

  • BigInteger、BigDecimal

  • BINARY

  • byte[]

  • 字符串(十六进制编码)

  • NUMBER

  • 数字类型(BigInteger、BigDecimal、字节、整数、双精度等)

  • 字符串

  • FLOAT

  • 数字类型(BigInteger、BigDecimal、字节、整数、双精度等)

  • 字符串

  • BOOLEAN

  • 布尔

  • 数字类型(BigInteger、BigDecimal、字节、整数、双精度等)

  • 字符串

请参阅 布尔转换详细信息

  • TIME

  • java.time.LocalTime

  • java.time.OffsetTime

  • 字符串

    • 以整数形式存储的时间

    • HH24:MI:SS.FFTZH:TZM`(例如,:code:`20:57:01.123456789+07:00

    • HH24:MI:SS.FF`(例如,:code:`20:57:01.123456789

    • HH24:MI:SS`(例如,:code:`20:57:01

    • HH24:MI`(例如,:code:`20:57

  • DATE

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.time.Instant

  • 字符串

    • 以整数形式存储的日期

    • YYYY-MM-DD`(例如,:code:`2013-04-28

    • YYYY-MM-DDTHH24:MI:SS.FFTZH:TZM`(例如,:code:`2013-04-28T20:57:01.123456789+07:00

    • YYYY-MM-DDTHH24:MI:SS.FF`(例如,:code:`2013-04-28T20:57:01.123456

    • YYYY-MM-DDTHH24:MI:SS`(例如,:code:`2013-04-28T20:57:01

    • YYYY-MM-DDTHH24:MI`(例如,:code:`2013-04-28T20:57

    • YYYY-MM-DDTHH24:MI:SSTZH:TZM`(例如,:code:`2013-04-28T20:57:01-07:00

    • YYYY-MM-DDTHH24:MITZH:TZM`(例如,:code:`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

  • 字符串

    • 以整数形式存储的时间戳

    • YYYY-MM-DD`(例如,:code:`2013-04-28

    • YYYY-MM-DDTHH24:MI:SS.FFTZH:TZM`(例如,:code:`2013-04-28T20:57:01.123456789+07:00

    • YYYY-MM-DDTHH24:MI:SS.FF`(例如,:code:`2013-04-28T20:57:01.123456

    • YYYY-MM-DDTHH24:MI:SS`(例如,:code:`2013-04-28T20:57:01

    • YYYY-MM-DDTHH24:MI`(例如,:code:`2013-04-28T20:57

    • YYYY-MM-DDTHH24:MI:SSTZH:TZM`(例如,:code:`2013-04-28T20:57:01-07:00

    • YYYY-MM-DDTHH24:MITZH:TZM`(例如,:code:`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

  • 支持