Introdução ao modo em tempo actual no streaming estruturado do Apache Spark ™


O streaming estruturado da Apache Spark ™ tem pipelines de missão crítica por muito tempo em escala, desde o streaming ETL até a análise quase em tempo actual e o aprendizado de máquina. Agora, estamos expandindo essa capacidade para uma classe totalmente nova de cargas de trabalho com modo em tempo actual, um novo tipo de gatilho que processa eventos quando eles chegam, com latência no Dezenas de milissegundos.

Diferentemente dos gatilhos de micro-lotes existentes, que processam os dados em um cronograma fixo (acionador de processamento de tempo de processamento) ou processam todos os dados disponíveis antes de desligar (o gatilho disponível), o modo em tempo actual processa continuamente os dados e emite resultados assim que estiverem prontos. Isso permite casos de uso ultra-baixa-latência, como detecção de fraude, personalização ao vivo e atuação de aprendizado de máquina em tempo actual, tudo sem alterar seu código ou replação existente.

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

Neste put up, abordaremos:

  • O que é o modo em tempo actual e como funciona
  • Os tipos de aplicações que ele permite
  • Como você pode começar a usá -lo hoje

O que é o modo em tempo actual?

O modo em tempo actual fornece processamento contínuo e de baixa latência no fluxo estruturado de faísca, com latências P99 tão baixas quanto os milissegundos de um dígito. As equipes podem habilitá -lo com uma única mudança de configuração – não é necessário reescrever ou replicar – mantendo as mesmas APIs de streaming estruturado que eles usam hoje.

Como o modo em tempo actual funciona

O modo em tempo actual executa trabalhos de streaming de longa duração que agendam etapas simultaneamente. Os dados passam entre tarefas na memória usando um shuffle de streaming, que:

  • Reduz a sobrecarga da coordenação
  • Take away os atrasos fixos de agendamento do modo micro-lote
  • Oferece desempenho consistente do subsegundo

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

Introdução ao modo em tempo actual no streaming estruturado do Apache Spark ™
Modo em tempo actual referências internas

Aplicativos e casos de uso

O modo em tempo actual é projetado para transmissão de aplicativos que requerem processamento ultra-baixo de latência e tempos de resposta rápidos, geralmente no caminho crítico das operações comerciais.

O modo em tempo actual no Spark Structured Streaming forneceu resultados notáveis ​​em nossos testes antecipados. Para um pipeline de autorização de pagamentos críticos, onde realizamos criptografia e outras transformações, alcançamos a latência de ponta a ponta do P99 de apenas 15 milissegundos. Estamos otimistas em dimensionar esse processamento de baixa latência nos fluxos de dados, enquanto atende a SLAs estritos consistentemente. – Raja Kanchumarthi, engenheiro de dados principal, Community Worldwide

Network International

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

Detecção de fraude em serviços financeiros: Um world processa transações com cartão de crédito da Kafka em tempo actual e sinaliza atividades suspeitas, tudo dentro de 200 milissegundos – reduzindo o tempo de risco e resposta sem replatforma.

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

Estado de sessão ao vivo e histórico de pesquisa: Um grande website de viagens rastreia e aparece as pesquisas recentes de cada usuário em tempo actual entre dispositivos. Cada nova consulta atualiza o cache da sessão instantaneamente, permitindo resultados personalizados e preenchimento automático sem demora.

Recurso de ML em tempo actual: porção: Um aplicativo de entrega de alimentos atualiza recursos como localização do motorista e horários de preparação em milissegundos. Essas atualizações fluem diretamente para 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 actual pode suportar qualquer carga de trabalho que se beneficie de transformar dados em decisões em milissegundos, a partir de alertas do sensor de IoT e visibilidade da cadeia de suprimentos para telemetria de jogos ao vivo e personalização no aplicativo.

Introdução ao modo em tempo actual

O modo em tempo actual já está disponível na visualização pública nos Databricks. Se você já está usando o streaming estruturado, pode ativá -lo com uma única configuração e atualização de acionamento – não é necessário reescritas.

Para experimentar no DBR 16.4 ou acima:

  1. Crie um cluster (Recomendamos o modo dedicado) nos bancos de dados com acesso ao público.
  2. Ativar modo em tempo actual Definindo a seguinte configuração de Spark:

  3. Use o novo gatilho em sua consulta:

Conquistamento de checking

O set off(RealTimeTrigger.apply(...)) A opção permite o novo modo de execução em tempo actual, permitindo que você obtenha latências de processamento de subsendos. RealTimeTrigger Aceita um argumento que especifica com que frequência os pontos de verificação da consulta. Por exemplo, set off(RealTimeTrigger.apply(“x minutes”)) Por padrão, o intervalo do ponto de verificação é de 5 minutos, o que funciona bem para a maioria dos casos de uso. Reduzir esse intervalo aumenta a frequência do ponto de verificação, mas pode afetar a latência. A maioria das fontes e pias de streaming é suportada, incluindo Kafka, Kinesis e forEach para escrever para sistemas externos.

Resumo

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

Para mais detalhes, revise o Documentação do modo em tempo actual Para detalhes completos da implementação, fontes e pias suportadas e consultas de exemplo. Você encontrará tudo o que precisa para ativar 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, incluindo como o modo em tempo actual se encaixa na evolução do motor, assista Spark Keynote de Michael Armbrust do DAIs 2025. Ele abrange as mudanças arquitetônicas atrás do próximo capítulo de Spark, com o modo em tempo actual como parte central da história.

Para se aprofundar na engenharia por trás do modo em tempo actual, observe nossos engenheiros ‘ sessão de mergulho profundo técnicoque passa pelo design e implementação.

E para ver como o modo em tempo actual se encaixa na estratégia de streaming mais ampla em Databricks, confira o Guia abrangente para streaming na plataforma de inteligência de dados.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *