Otimize consultas de transmissão sem estado
Esta página descreve os recursos de otimização disponíveis para consultas de transmissão sem estado no Databricks Runtime 18.0 e versões superiores.
Transmissão estruturada sem estado: consultas processam dados sem manter um estado intermediário. Essas consultas não usam operadores com estado, como agregações de transmissão, dropDuplicates ou junção transmissão-transmissão. Exemplos incluem consultas que usam junção estática de transmissão, MERGE INTO com tabelas Delta e outras operações que rastreiam apenas quais linhas foram processadas da origem ao destino.
Execução de consultas adaptativa e embaralhamento otimizado automaticamente
Databricks oferece suporte à Execução Adaptativa de Consultas (AQE) e ao Embaralhamento Automático Otimizado (AOS) para consultas de transmissão sem estado. Esses recursos ajudam a otimizar cargas de trabalho de transmissão que usam transmissão-static join, MERGE INTO com tabelas Delta e operações semelhantes.
Para habilitar o AQE para consultas de transmissão sem estado, defina a seguinte configuração como true. Isso está ativado por default:
spark.sql.adaptive.streaming.stateless.enabled true
Para habilitar o AOS para consultas de transmissão sem estado, habilite o AQE e defina a seguinte configuração:
spark.sql.shuffle.partitions auto
Alterar partições aleatórias durante a reinicialização da consulta
As consultas de transmissão sem estado permitem alterar o número de partições de embaralhamento ao reiniciar uma consulta. Isso permite ajustar o paralelismo para acomodar volumes de entrada variáveis.
Este recurso é especialmente útil para cenários de preenchimento retroativo histórico. Por exemplo, você pode processar dados históricos de preenchimento com maior paralelismo e, em seguida, reduzir o paralelismo para entrada em tempo real.
Para alterar o número de partições de embaralhamento, defina a seguinte configuração com o valor desejado e reinicie a consulta:
spark.sql.shuffle.partitions <number>