Voltar

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

  1. CEVIU explica o Real-Time Mode do Structured Streaming no Spark 4.1.

  2. Spark 4.1.0 chega com pipelines declarativos e modo de streaming em tempo real.

  3. 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

Avalie este artigo:
Categoria
CEVIU Dados
Publicado
09 de novembro de 2026
Editoria
CEVIU Dados

Quer receber mais sobre CEVIU Dados?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser