Apache Spark 4.3.0 leva processamento stateful ao Real-Time Mode do Structured Streaming
Aprofundamento CEVIU
Aprofundamento
O Apache Spark 4.3.0 é o quarto release da linha 4.x e resolveu mais de 1.100 tickets no Jira, com contribuições de mais de 210 pessoas. A mudança central está no Real-Time Mode do Structured Streaming, que agora aceita consultas stateful: agregação em streaming, dropDuplicates e transformWithState, com latência de ponta a ponta na ordem de 100 milissegundos e as mesmas APIs de sempre. Por baixo, o Spark ganhou agendamento nativo concorrente de estágios e shuffles em pipeline, de modo que estágios produtores e consumidores rodam ao mesmo tempo. A anotação @Experimental também foi removida do Real-Time Mode, e há suporte a progress tracking assíncrono e correção de dropDuplicates com watermark após reinício da query.
Nos Declarative Pipelines, o Auto CDC ganha SCD Type 2 via Python, SQL e Spark Connect, preservando o histórico de cada registro em vez de sobrescrever o último valor. No SQL entram ASOF JOIN (desligado por padrão, via spark.sql.join.asofJoin.enabled), JSON_TABLE, funções para VARIANT (variant_set, variant_insert, variant_delete), ANSI UNNEST e uma prévia de timestamps com precisão de nanossegundos. Para dados pequenos, há execução single-task sem shuffle e cache Arrow-native, ambos opt-in. O release também marca o início de uma cadência trimestral de feature releases.
O que mudou
Em 23 de fevereiro de 2026, o CEVIU noticiou "7 Minutos para Entender a Nova Funcionalidade de Streaming do Spark que Muda Tudo", sobre o Real-Time Mode chegando ao Spark 4.1, com agendamento concorrente de estágios e shuffle de streaming em memória. Em 31 de agosto de 2026, o texto "Spark 4.1.0 Desembarca com Pipelines Declarativos e Otimizações de Streaming" tratou do modo em tempo real e dos pipelines declarativos. Agora, no 4.3.0, o Real-Time Mode passa a cobrir consultas stateful e perde a marca de experimental, e os pipelines declarativos ganham SCD Type 2 no Auto CDC.
Por que isso importa
Para quem opera streaming com Spark, a leitura é que casos com estado (contagens, deduplicação, lógica customizada) deixam de exigir outro engine quando a meta é latência na casa de 100 ms. Vale validar em carga real, já que o número vem da própria documentação do release. Para quem modela dimensões, o SCD Type 2 nativo no Auto CDC reduz código de merge escrito à mão.
Linha do tempo
CEVIU explica o Real-Time Mode do Structured Streaming no Spark 4.1.
Spark 4.1.0 chega com pipelines declarativos e modo de streaming em tempo real.
Spark 4.3.0 leva processamento stateful ao Real-Time Mode e traz SCD Type 2 ao Auto CDC.
Perguntas frequentes
O que o Real-Time Mode do Spark 4.3.0 faz de novo?
Ele passa a suportar consultas stateful: agregação em streaming, dropDuplicates e transformWithState. A latência de ponta a ponta fica na ordem de 100 milissegundos, usando as APIs conhecidas do Structured Streaming. A base são o agendamento concorrente de estágios e os shuffles em pipeline.
O que é SCD Type 2 no Auto CDC?
É o modo que preserva o histórico de mudanças de cada registro, em vez de sobrescrever o valor mais recente. Está disponível nos Declarative Pipelines via Python, SQL e Spark Connect.
O ASOF JOIN já vem ativo no Spark 4.3.0?
Não. A sintaxe SQL ASOF JOIN com MATCH_CONDITION precisa da configuração spark.sql.join.asofJoin.enabled, que vem desligada por padrão. Ele serve para casar eventos com a informação disponível no momento.
As otimizações para dados pequenos são automáticas?
Não, são opt-in. A execução single-task sem shuffle usa spark.sql.optimizer.singleTaskExecution.enabled, e o cache Arrow-native exige configurar o serializador ArrowCachedBatchSerializer em spark.sql.cache.serializer.
Fontes
- spark.apache.orgfonte original
- Categoria
- CEVIU Dados
- Publicado
- 09 de novembro de 2026
- Editoria
- CEVIU Dados
