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

Redimensione partições de stateful streaming sem perder o checkpoint no Databricks

Agora é possível alterar o número de partições de shuffle em queries Structured Streaming e pipelines Lakeflow sem descartar o estado do checkpoint.

O que mudou

O redimensionamento de estado sob demanda permite ajustar a quantidade de partições em queries de streaming com estado sem perder o histórico do checkpoint. Antes, alterar esse valor exigia reiniciar a query do zero com um novo diretório de checkpoint.

Para que serve

Imagine que você tem uma query de streaming agregando dados de IoT que precisa escalar para cima ou para baixo conforme o volume de dados muda.

  • Ajustar a performance de queries de streaming sem reconstruir o checkpoint.
  • Dimensionar recursos conforme a variação da carga de trabalho.

Como usar

Use a configuração spark.sql.streaming.stateStore.partitions para definir a nova quantidade de partições antes de reiniciar a query.

# Para a query atual
query.stop()

# Define o novo número de partições
spark.conf.set("spark.sql.streaming.stateStore.partitions", "100")

# Reinicia a query com as mesmas opções
query = (
    df.withWatermark("event_time", "10 minutes")
    .groupBy(window("event_time", "5 minutes"), "id")
    .count()
    .writeStream.format("delta")
    .option("checkpointLocation", "/checkpoint/path")
    .outputMode("append")
    .start()
)

O que acontece nesse código:

  1. A query ativa é interrompida com o método .stop().
  2. A configuração do Spark define o novo total de partições de estado.
  3. A query é reiniciada com o mesmo caminho de checkpoint, aplicando o redimensionamento automaticamente.

Limitações e requisitos

  • Requer Databricks Runtime 18 LTS ou superior.
  • A query precisa usar o provedor de estado RocksDB.
  • Recurso agora geralmente disponível (GA).
Ver nota oficial do Databricks

On-demand state repartitioning is now generally available

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