Suporte a tabelas e esquema

Este tópico aborda os tipos de tabela, tipos de dados e recursos de esquema compatíveis com o Snowpipe Streaming.

Suporte à tabelas Apache Iceberg™

O Snowpipe Streaming é compatível com a ingestão em tabelas Apache Iceberg™ gerenciadas pelo Snowflake, incluindo tabelas Iceberg v2 e Iceberg v3. Para obter mais informações, consulte Arquitetura de alto desempenho do Snowpipe Streaming com tabelas Apache Iceberg™.

Evolução do esquema

O Snowpipe Streaming oferece suporte à evolução automática do esquema de tabela. Quando habilitado, o Snowflake pode adicionar automaticamente novas colunas detectadas no fluxo de entrada e descartar restrições NOT NULL para acomodar novos padrões de dados. Para obter mais informações, consulte Evolução do esquema de tabela.

Limitações da evolução de esquema:

  • Compatível exclusivamente com tabelas padrão do Snowflake. Tabelas externas e tabelas Apache Iceberg™ não são compatíveis.

  • a precisão, a escala ou o comprimento das colunas existentes não podem ser aumentados automaticamente.

  • A evolução de esquema não é compatível com tipos de dados estruturados. No entanto, novas colunas que contêm tipos estruturados são inferidas como VARIANT.

Operações somente de inserção

O API está atualmente limitado a inserir linhas. Para modificar, apagar ou combinar dados, escreva os registros “brutos” em uma ou mais tabelas de preparação. Mescle, junte ou transforme os dados ao usar o pipeline de dados contínuos para inserir dados modificados nas tabelas de relatórios de destino.

Tipos de dados Java suportados

A tabela a seguir resume quais tipos de dados Java são suportados para ingestão nas colunas Snowflake:

Tipo de coluna Snowflake

Tipo de dados Java permitidos

  • CHAR

  • VARCHAR

  • Cadeia de caracteres

  • tipos de dados primitivos (int, booliano, char,…)

  • BigInteger, BigDecimal

  • BINARY

  • byte[]

  • Cadeia de caracteres (codificação hexadecimal)

  • NUMBER

  • tipos numéricos (BigInteger, BigDecimal, byte, int, double,…)

  • Cadeia de caracteres

  • FLOAT

  • tipos numéricos (BigInteger, BigDecimal, byte, int, double,…)

  • Cadeia de caracteres

  • BOOLEAN

  • booleano

  • tipos numéricos (BigInteger, BigDecimal, byte, int, double,…)

  • Cadeia de caracteres

Consulte detalhes da conversão booliana.

  • TIME

  • java.time.LocalTime

  • java.time.OffsetTime

  • Cadeia de caracteres

    • Tempo inteiro armazenado

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

    • HH24:MI:SS.FF (por exemplo, 20:57:01.123456789)

    • HH24:MI:SS (por exemplo, 20:57:01)

    • HH24:MI (por exemplo, 20:57)

  • DATE

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.time.Instant

  • Cadeia de caracteres

    • Data de inteiro armazenado

    • YYYY-MM-DD (por exemplo, 2013-04-28)

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

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

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

    • YYYY-MM-DDTHH24:MI (por exemplo, 2013-04-28T20:57)

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

    • YYYY-MM-DDTHH24:MITZH:TZM (por exemplo, 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

  • Cadeia de caracteres

    • Carimbo de data/hora do inteiro armazenado

    • YYYY-MM-DD (por exemplo, 2013-04-28)

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

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

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

    • YYYY-MM-DDTHH24:MI (por exemplo, 2013-04-28T20:57)

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

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

  • VARIANT

  • ARRAY

  • Cadeia de caracteres (deve ser um JSON válido)

  • tipos de dados primitivos e suas matrizes

  • 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>, onde T é um tipo VARIANT válido.

  • T[], onde T é um tipo VARIANT válido.

  • List<T>, onde T é um tipo VARIANT válido.

  • OBJECT

  • Cadeia de caracteres (deve ser um objeto JSON válido)

  • Map<String, T>, onde T é um tipo de variante válida

  • GEOGRAPHY

  • Com suporte

  • GEOMETRY

  • Com suporte