Partilhar via


Modo em tempo real no Structured Streaming

Esta página descreve os conceitos por detrás do modo em tempo real no Structured Streaming, incluindo o que é, como alcança baixa latência e quando o utilizar.

O que é o modo em tempo real?

O modo em tempo real é um tipo de gatilho para Streaming Estruturado que permite o processamento de dados com latência ultra-baixa com latência de ponta a ponta tão baixa quanto cinco milissegundos. Use o modo em tempo real para cargas de trabalho operacionais que requerem resposta imediata a dados em fluxo, como deteção de fraude, personalização em tempo real e sistemas de tomada de decisão instantânea.

Como o modo em tempo real alcança baixa latência

O modo em tempo real melhora a arquitetura de execução ao:

  • Executar lotes de longa duração (o padrão é cinco minutos), em que o sistema processa dados à medida que ficam disponíveis na fonte.
  • Agendar todas as fases da consulta em simultâneo. Isso requer que o número de slots de tarefas disponíveis seja igual ou maior do que o número de tarefas de todos os estágios de um lote.
  • Passar dados entre fases assim que são produzidos, usando um streaming shuffle.

No final do processamento de um lote e antes do início do próximo, o Structured Streaming utiliza pontos de verificação para registar o progresso e publica métricas. A duração do lote afeta a frequência dos pontos de controlo:

  • Para lotes mais longos, a realização de checkpoints ocorre com menos frequência, o que significa repetições mais longas em caso de falha e atraso na disponibilização de métricas.
  • Para lotes mais curtos, o checkpointing ocorre com mais frequência, o que pode afetar a latência.

O Azure Databricks recomenda comparar o modo em tempo real com a carga de trabalho alvo para encontrar o intervalo de trigger apropriado.

Quando usar o modo em tempo real

Selecione o modo em tempo real quando o seu caso de uso exigir:

  • Latência sub-segundo: Aplicações que necessitam responder a dados em milissegundos. Por exemplo, bloquear ou sinalizar uma transação com cartão de crédito em tempo real se uma pontuação de fraude ultrapassar um limiar baseado numa localização invulgar, grande dimensão de transação ou padrões de gastos rápidos.
  • Tomada de decisão operacional: Sistemas que desencadeiam ações imediatas com base nos dados recebidos. Por exemplo, entregar uma mensagem promocional quando os dados do clickstream mostram que um utilizador andou a procurar um produto, oferecendo um desconto se comprar nos próximos 15 minutos.
  • Processamento contínuo: Cargas de trabalho em que os dados devem ser processados assim que chegam, em vez de em lotes periódicos.

Use o modo micro-batch (o gatilho padrão do Structured Streaming) quando o seu caso de uso exigir:

  • Processamento analítico: pipelines ETL, transformações de dados e implementações de arquitetura medallion onde os requisitos de latência são medidos em segundos ou minutos.
  • Otimização de custos: Cargas de trabalho onde não é necessária uma latência inferior a um segundo, pois o modo em tempo real requer recursos de computação dedicados.
  • A frequência dos checkpoints importa: Aplicações que beneficiam de checkpoints mais frequentes para uma recuperação mais rápida.

Suporte a funcionalidades e limitações

Para uma lista completa de ambientes suportados, linguagens, tipos de computação, fontes, sumidouros, operadores e limitações conhecidas, veja Referência do modo em tempo real.

Recursos adicionais