Pular para o conteúdo
Lucas Lessa
Voltar para as notícias
SnowflakeGAImpacto: Médio

Snowpipe Streaming suporta tabelas Iceberg particionadas

O Snowpipe Streaming agora oferece suporte geral para ingestão em tabelas Iceberg gerenciadas pelo Snowflake particionadas e não particionadas (v2 e v3).

O que mudou

O Snowpipe Streaming agora permite ingerir dados diretamente em tabelas Iceberg gerenciadas pelo Snowflake que possuem particionamento, utilizando a arquitetura de alto desempenho e suporte para as versões v2 e v3 do formato.

Para que serve

Imagine que você precisa transmitir fluxos contínuos de dados de eventos diretamente para tabelas em formato aberto particionadas, sem sofrer com gargalos de lote. Com essa novidade, você pode:

  • Ingerir dados em tempo real em tabelas Iceberg particionadas e não particionadas.
  • Utilizar canais elásticos (Elastic Channels) ou canais nomeados (Named Channels).
  • Trabalhar com tabelas Iceberg usando armazenamento gerenciado pelo Snowflake ou volumes externos próprios.

Como usar

Você pode criar uma tabela Iceberg gerenciada pelo Snowflake com armazenamento interno e definir a versão do Iceberg antes de iniciar a ingestão via SDK.

CREATE OR REPLACE ICEBERG TABLE my_iceberg_table (
    event_id NUMBER,
    event_type STRING,
    event_data VARIANT,
    event_timestamp TIMESTAMP_NTZ
)
    CATALOG = 'SNOWFLAKE'
    EXTERNAL_VOLUME = 'SNOWFLAKE_MANAGED'
    ICEBERG_VERSION = 3;

O que acontece nesse código:

  1. Define a criação de uma nova tabela Iceberg chamada my_iceberg_table.
  2. Especifica o catálogo como SNOWFLAKE e utiliza o armazenamento interno gerenciado.
  3. Configura o uso da versão v3 do padrão Iceberg.

Limitações e requisitos

  • Recurso em General Availability (GA) para tabelas gerenciadas pelo Snowflake.
  • Colunas VARCHAR com restrição de tamanho (ex: VARCHAR(100)) não são suportadas em tabelas Iceberg; utilize STRING ou VARCHAR sem limite de tamanho.
  • O Snowpipe Streaming Clássico e tabelas Iceberg gerenciadas externamente não estão incluídos nesta liberação.
  • O Snowflake deve ser o catálogo do Iceberg (catálogos externos como AWS Glue ou Hive Metastore não são suportados pelo streaming).

Como aplicar num pipeline

Essa funcionalidade é ideal para a camada de ingestão (Bronze) em arquiteturas de lakehouse, recebendo dados de streaming de aplicações ou microsserviços e gravando-os em tabelas Iceberg otimizadas por partições para consumo analítico posterior.

Ver nota oficial do Snowflake

Snowpipe Streaming: Partitioned Apache Iceberg™ tables (General availability)

Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.

Relacionadas