Partilhar via


Tutorial: Executar uma carga de trabalho de streaming em tempo real

O modo em tempo real permite streaming com latência ultra-baixa com latência de ponta a ponta tão baixa quanto cinco milissegundos, tornando-o ideal para cargas de trabalho operacionais como deteção de fraudes e personalização em tempo real. Este tutorial guia-o na configuração da sua primeira consulta de streaming em tempo real usando um exemplo simples.

Para informações conceptuais sobre o modo em tempo real, quando o utilizar e funcionalidades suportadas, consulte Modo em tempo real em Streaming Estruturado. Para requisitos de configuração, veja Configurar modo em tempo real.

Requisitos

Antes de começar, certifique-se de que tem permissões para criar um cluster de computação clássico que utilize a configuração especificada no modo Set Up em tempo real. Em alternativa, contacte o administrador do seu espaço de trabalho para criar um cluster em modo em tempo real para si.

Passo 1: Crie um bloco de notas

Os cadernos proporcionam um ambiente interativo para desenvolver e testar consultas em streaming. Usa este caderno para escrever a sua consulta em tempo real e vê os resultados atualizarem-se continuamente.

Para criar um caderno:

  1. Clica em Novo na barra lateral, depois clica no ícone do Caderno.Caderno.
  2. No menu suspenso de computação, selecione o seu cluster de modos em tempo real.
  3. Selecione Python ou Scala como linguagem predefinida.

Passo 2: Executar uma consulta em modo em tempo real

Copie e cole o código seguinte numa célula de caderno e execute-o. Este exemplo utiliza uma fonte de taxa, que gera linhas a uma taxa especificada e apresenta os resultados em tempo real.

Observação

A display função com o realTime trigger está disponível a partir do Databricks Runtime 17.1.

Python

inputDF = (
  spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
)
display(inputDF, realTime="5 minutes", outputMode="update")

Scala

import org.apache.spark.sql.streaming.Trigger
import org.apache.spark.sql.streaming.OutputMode

val inputDF = spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
display(inputDF, trigger=Trigger.RealTime(), outputMode=OutputMode.Update())

Depois de executar o código, vês uma tabela que se atualiza em tempo real à medida que novas linhas são geradas. A tabela exibe uma timestamp coluna e uma value coluna que incrementa a cada linha.

Compreender o código

O código acima demonstra os componentes essenciais de uma consulta de streaming em tempo real. As tabelas seguintes explicam os parâmetros-chave e o que eles controlam:

Python

Parâmetro Descrição
format("rate") Utiliza a fonte de taxa, uma fonte incorporada que gera linhas a uma taxa configurável. Isto é útil para testes sem dependências externas.
numPartitions Define o número de partições para os dados gerados.
rowsPerSecond Controla quantas linhas são geradas por segundo.
realTime="5 minutes" Ativa o modo em tempo real. O intervalo especifica com que frequência os pontos de verificação da consulta progridem. Intervalos mais longos significam pontos de controlo menos frequentes, mas potencialmente tempos de recuperação mais longos após falhas.
outputMode="update" O modo em tempo real requer o modo de saída atualizado.

Scala

Parâmetro Descrição
format("rate") Utiliza a fonte de taxa, uma fonte incorporada que gera linhas a uma taxa configurável. Isto é útil para testes sem dependências externas.
numPartitions Define o número de partições para os dados gerados.
rowsPerSecond Controla quantas linhas são geradas por segundo.
Trigger.RealTime() Ativa o modo em tempo real com o intervalo de checkpoint padrão. Também pode especificar um intervalo, por exemplo Trigger.RealTime("5 minutes").
OutputMode.Update() O modo em tempo real requer o modo de saída atualizado.

Passo 3: Validar os resultados

Quando executas a consulta, a display função cria uma tabela que se atualiza em tempo real à medida que a fonte de taxa gera novas linhas. Cada linha contém:

  • Um carimbo temporal de quando a linha foi gerada pela fonte da taxa.
  • Um contador que aumenta monotonamente e que aumenta a cada nova linha.

A tabela atualiza-se continuamente com latência mínima, demonstrando como o modo em tempo real processa os dados assim que ficam disponíveis. Este é o principal benefício do modo em tempo real – a capacidade de ver e agir sobre dados imediatamente, em vez de esperar pelo processamento em lote.

Recursos adicionais

Agora que já executou a sua primeira consulta em tempo real, explore estes recursos para construir aplicações de streaming de produção com Kafka, Kineses e outras fontes suportadas: