Modo em tempo real no Structured Streaming

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 e personalização em tempo real.

O modo em tempo real também está disponível nos Lakeflow Spark Declarative Pipelines. Veja Usar o modo em tempo real nos Pipelines Declarativos Lakeflow Spark.

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.

Entre lotes, o Structured Streaming guarda pontos de verificação do 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.
  • Recuperação mais rápida: Cargas de trabalho que precisam de checkpoints frequentes para minimizar o tempo de repetição após uma falha.

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