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

Funções agregadas não determinísticas em Dynamic Tables no Snowflake

O Snowflake agora suporta funções como APPROX_COUNT_DISTINCT no refresh incremental de Dynamic Tables.

O que mudou

Para que serve

Imagine que você mantém uma tabela dinâmica que calcula métricas aproximadas de volumetria e precisa que o refresh ocorra de forma incremental sem precisar reprocessar a base inteira. Agora é possível usar funções de agregação aproximadas diretamente em Dynamic Tables usando os modos INCREMENTAL, AUTO ou ADAPTIVE.

  • Criar Dynamic Tables que utilizam contagens e percentis aproximados.
  • Processar grandes volumes de dados de forma mais eficiente mantendo atualizações incrementais.

Como usar

CREATE OR REPLACE DYNAMIC TABLE minha_tabela_dinamica
  TARGET_LAG = '1 hour'
  WAREHOUSE = meu_warehouse
AS
  SELECT
    categoria,
    APPROX_COUNT_DISTINCT(usuario_id) AS total_usuarios_aprox,
    APPROX_PERCENTILE(valor, 0.95) AS p95_valor
  FROM minha_tabela_base
  GROUP BY categoria;

O que acontece nesse código:

  1. Define a criação de uma Dynamic Table chamada minha_tabela_dinamica.
  2. Configura o intervalo de atualização para uma hora.
  3. Utiliza as funções APPROX_COUNT_DISTINCT e APPROX_PERCENTILE na cláusula SELECT junto com um agrupamento por categoria.

Limitações e requisitos

  • Recurso em General Availability (GA).
  • Suportado nos modos de refresh INCREMENTAL, AUTO e ADAPTIVE.
  • As funções devem ser usadas estritamente na cláusula SELECT para o refresh incremental.
  • Funções suportadas incluem APPROX_COUNT_DISTINCT, APPROX_PERCENTILE e APPROX_TOP_K.
  • A função ANY_VALUE continua sem suporte para refresh incremental.
Ver nota oficial do Snowflake

Non-deterministic aggregate functions are supported with dynamic table incremental refresh (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