Compartilhar via


Otimizar consultas de streaming sem estado

Esta página descreve os recursos de otimização disponíveis para consultas de streaming sem estado no Databricks Runtime 18.0 ou superior.

As consultas de Streaming Estruturado sem Estado processam dados sem manter o estado intermediário. Essas consultas não usam operadores com estado, como agregações de streaming, dropDuplicates, ou junções de fluxo a fluxo. Exemplos incluem consultas que usam junções estáticas de fluxo, MERGE INTO com tabelas Delta e outras operações que rastreiam apenas quais linhas foram processadas de origem para coletor.

Execução Adaptativa de Consultas e Embaralhamento Otimizado Automaticamente

O Azure Databricks dá suporte à Execução de Consulta Adaptável (AQE) e ao AOS (Auto Optimized Shuffle) para consultas de streaming sem estado. Esses recursos ajudam a otimizar cargas de trabalho de streaming que usam junções estáticas de fluxo, MERGE INTO com tabelas Delta e operações semelhantes.

Para ativar o AQE para consultas de streaming sem estado, ajuste a configuração a seguir para true. Isso é habilitado por padrão:

spark.sql.adaptive.streaming.stateless.enabled true

Para habilitar o AOS para consultas de streaming sem estado, habilite o AQE e defina a seguinte configuração:

spark.sql.shuffle.partitions auto

Alterar partições de shuffle durante a reinicialização da consulta

As consultas de streaming sem estado dão suporte à alteração do número de partições aleatórias quando você reinicia uma consulta. Isso permite ajustar o paralelismo para acomodar volumes de entrada variados.

Esse recurso é especialmente útil para cenários históricos de backfill. Por exemplo, você pode processar o backfill histórico com paralelismo mais alto e, em seguida, reduzir o paralelismo para entrada em tempo real.

Para alterar o número de partições aleatórias, defina a seguinte configuração para o valor desejado e reinicie a consulta:

spark.sql.shuffle.partitions <number>