Ir para o conteúdo principal

Apresentando o Modo em Tempo Real no Apache Spark™ Structured Streaming

Processe eventos em milissegundos usando o novo gatilho em tempo real do Spark

Introducing Real-Time Mode in Apache Spark™ Structured Streaming

Summary

  • Processamento de fluxo em milissegundos: Spark Structured Streaming introduz o modo em tempo real para processamento de dados em milissegundos, possibilitando uma nova classe de aplicativos de baixa latência.
  • Não são necessárias reescritas: As equipes podem habilitar o modo em tempo real com uma simples alteração de configuração - não é necessário replataforma ou revisões de código.
  • Agora em Visualização Pública: Disponível no Databricks com suporte para fontes e destinos populares; ideal para detecção de fraude, personalização ao vivo e serviço de recursos de ML.

O Apache Spark™ Structured Streaming tem alimentado pipelines de missão crítica em grande escala há muito tempo, desde ETL em streaming até análises quase em tempo real e aprendizado de máquina. Agora, estamos expandindo essa capacidade para uma nova classe de cargas de trabalho com o modo em tempo real, um novo tipo de gatilho que processa eventos à medida que chegam, com latência na casa dos milissegundos.

Ao contrário dos gatilhos de micro-lote existentes, que processam dados em um cronograma fixo (gatilho ProcessingTime) ou processam todos os dados disponíveis antes de serem desligados (gatilho AvailableNow), o modo em tempo real processa continuamente os dados e emite resultados assim que estão prontos. Isso possibilita casos de uso de ultra baixa latência como detecção de fraude, personalização ao vivo e serviço de recursos de aprendizado de máquina em tempo real, tudo sem alterar seu código existente ou replataformar.

Este novo modo está sendo contribuído para o código aberto Apache Spark e agora está disponível em Visualização Pública no Databricks.

Nesta postagem, vamos abordar:

  • O que é o modo em tempo real e como ele funciona
  • Os tipos de aplicações que ele possibilita
  • Como você pode começar a usar isso hoje

O que é o modo em tempo real?

O modo em tempo real oferece processamento contínuo e de baixa latência no Spark Structured Streaming, com latências p99 tão baixas quanto milissegundos de um dígito. As equipes podem ativá-lo com uma única alteração de configuração — sem necessidade de reescritas ou replataformas — mantendo as mesmas APIs de Streaming Estruturado que usam hoje.

Como funciona o modo em tempo real

O modo em tempo real executa trabalhos de streaming de longa duração que agendam estágios simultaneamente. Os dados passam entre as tarefas na memória usando uma embaralhamento em streaming, que:

  • Reduz a sobrecarga de coordenação
  • Remove os atrasos de agendamento fixos do modo micro-lote
  • Oferece desempenho consistente em menos de um segundo

Nos testes internos da Databricks, as latências p99 variaram de alguns milissegundos a ~300 ms, dependendo da complexidade da transformação:

Benchmarks internos do modo em tempo real
Real-time mode internal benchmarks

Aplicações e Casos de Uso

O modo em tempo real é projetado para aplicações de streaming que requerem processamento de ultra baixa latência e tempos de resposta rápidos, muitas vezes no caminho crítico das operações de negócios.

O Modo em Tempo Real no Spark Structured Streaming tem entregue resultados notáveis em nossos testes iniciais. Para um pipeline de autorização de pagamentos crítico para a missão, onde realizamos criptografia e outras transformações, alcançamos uma latência de ponta a ponta P99 de apenas 15 milissegundos. Estamos otimistas sobre a escalabilidade desse processamento de baixa latência em nossos fluxos de dados, enquanto atendemos consistentemente SLAs rigorosos. — Raja Kanchumarthi, Engenheiro de Dados Sênior, Network International

Network International

Além do caso de uso de autorização de pagamento da Network International citado acima, vários adotantes iniciais já o utilizaram para alimentar uma ampla gama de cargas de trabalho:

Detecção de fraude em serviços financeiros: Um banco global processa transações de cartão de crédito do Kafka em tempo real e sinaliza atividades suspeitas, tudo dentro de 200 milissegundos - reduzindo o risco e o tempo de resposta sem replataformar.

Experiências personalizadas no varejo e na mídia: Um provedor de streaming OTT atualiza recomendações de conteúdo imediatamente após um usuário terminar de assistir a um programa. Uma plataforma líder de comércio eletrônico recalcula ofertas de produtos enquanto os clientes navegam - mantendo o engajamento alto com loops de feedback de subsegundos.

Estado da sessão ao vivo e histórico de pesquisa: Um grande site de viagens rastreia e mostra as pesquisas recentes de cada usuário em tempo real em vários dispositivos. Cada nova consulta atualiza o cache da sessão instantaneamente, permitindo resultados personalizados e preenchimento automático sem atraso.

Serviço de Recursos de ML em Tempo Real: Um aplicativo de entrega de comida atualiza recursos como localização do motorista e tempos de preparação em milissegundos. Essas atualizações fluem diretamente para os modelos de aprendizado de máquina e aplicativos voltados para o usuário, melhorando a precisão do ETA e a experiência do cliente.

Estes são apenas alguns exemplos. O modo em tempo real pode suportar qualquer carga de trabalho que se beneficie de transformar dados em decisões em milissegundos, desde alertas de sensores IoT e visibilidade da cadeia de suprimentos até telemetria de jogos ao vivo e personalização no aplicativo.

Começando com o modo em tempo real

O modo em tempo real agora está disponível em Visualização Pública no Databricks. Se você já está usando Streaming Estruturado, pode ativá-lo com uma única configuração e atualização de gatilho - sem reescritas necessárias.

Para experimentá-lo no DBR 16.4 ou superior:

  1. Crie um cluster (recomendamos o Modo Dedicado) no Databricks com acesso à Pré-visualização Pública.
  2. Ative o modo em tempo real definindo a seguinte configuração do Spark:

  3. Use o novo gatilho em sua consulta:

Checkpointing

A opção trigger(RealTimeTrigger.apply(...)) habilita o novo modo de execução em tempo real, permitindo que você alcance latências de processamento de subsegundos. RealTimeTrigger aceita um argumento que especifica a frequência com que a consulta faz checkpoints. Por exemplo, trigger(RealTimeTrigger.apply(“x minutos”)) Por padrão, o intervalo de checkpoint é de 5 minutos, o que funciona bem para a maioria dos casos de uso. Reduzir este intervalo aumenta a frequência de checkpoint, mas pode impactar a latência. A maioria das fontes e destinos de streaming são suportados, incluindo Kafka, Kinesis, e forEach para escrita em sistemas externos.

Resumo

O modo em tempo real é ideal para casos de uso que exigem a menor latência possível. Para muitas cargas de trabalho analíticas, o modo micro-lote padrão pode ser mais econômico, enquanto ainda atende aos requisitos de latência. O modo em tempo real introduz uma ligeira sobrecarga do sistema, por isso recomendamos usá-lo para pipelines críticos de latência, como os exemplos acima. O suporte para fontes e sinks adicionais está se expandindo, e estamos trabalhando ativamente para ampliar a compatibilidade e reduzir ainda mais a latência.

Para mais detalhes, por favor, consulte a documentação do modo em tempo real para obter detalhes completos de implementação, fontes e destinos suportados, e exemplos de consultas. Você encontrará tudo o que precisa para habilitar o novo gatilho e configurar suas cargas de trabalho de streaming.

Para uma visão mais ampla do que há de novo no Apache Spark 4.0, incluindo como o modo em tempo real se encaixa na evolução do motor, assista à palestra principal de Michael Armbrust sobre o Spark 4.0 do DAIS 2025. Ele aborda as mudanças arquitetônicas por trás do próximo capítulo do Spark, com o modo em tempo real como uma parte central da história.

Para entender melhor a engenharia por trás do modo em tempo real, assista à sessão de aprofundamento técnico de nossos engenheiros, que explica o design e a implementação.

E para ver como o modo em tempo real se encaixa na estratégia de streaming mais ampla no Databricks, confira o Guia Completo para Streaming na Plataforma de Inteligência de Dados.

 

(This blog post has been translated using AI-powered tools) Original Post

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada