Compartilhar via


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

O modo em tempo real permite streaming de latência ultra-baixa com latência de ponta a ponta de até cinco milissegundos, tornando-o ideal para cargas de trabalho operacionais, como detecção de fraude e personalização em tempo real. Este tutorial orienta você a configurar sua primeira consulta de streaming em tempo real usando um exemplo simples.

Para obter informações conceituais sobre o modo em tempo real, quando usá-lo e recursos com suporte, consulte o modo em tempo real no Streaming Estruturado. Para obter os requisitos de configuração, consulte Configurar o modo em tempo real.

Requisitos

Antes de começar, verifique se você tem permissões para criar um cluster de computação clássico que usa a configuração especificada no modo Configurar em tempo real. Como alternativa, entre em contato com o administrador do seu espaço de trabalho para criar um cluster em modo de tempo real para você.

Etapa 1: Criar um notebook

Os notebooks fornecem um ambiente interativo para desenvolver e testar consultas de streaming. Use este bloco de anotações para escrever sua consulta em tempo real e ver os resultados serem atualizados continuamente.

Para criar um bloco de anotações:

  1. Clique em Novo na barra lateral e, em seguida, clique no ícone bloco de anotações.Bloco de anotações.
  2. No menu suspenso de computação, selecione o cluster do modo em tempo real.
  3. Selecione Python ou Scala como o idioma padrão.

Etapa 2: Executar uma consulta de modo em tempo real

Copie e cole o código a seguir em uma célula de notebook e execute-o. Este exemplo usa uma fonte de taxa, que gera linhas a uma taxa especificada e exibe os resultados em tempo real.

Observação

A display função com realTime gatilho está disponível no Databricks Runtime 17.1 e versões posteriores.

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, você verá uma tabela que é atualizada em tempo real à medida que novas linhas são geradas. A tabela exibe uma timestamp coluna e uma value coluna que incrementa com cada linha.

Compreender o código

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

Python

Parâmetro Descrição
format("rate") Usa a fonte de taxa, uma fonte interna que gera linhas a uma taxa configurável. Isso é ú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" Habilita o modo em tempo real. O intervalo especifica a frequência com que os pontos de verificação de consulta progridem. Intervalos mais longos significam pontos de verificação menos frequentes, mas tempos de recuperação potencialmente mais longos após falhas.
outputMode="update" O modo em tempo real requer o modo de saída de atualização.

Scala

Parâmetro Descrição
format("rate") Usa a fonte de taxa, uma fonte interna que gera linhas a uma taxa configurável. Isso é ú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() Habilita o modo em tempo real com o intervalo de ponto de verificação padrão. Você 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 de atualização.

Etapa 3: Validar resultados

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

  • Um carimbo de data/hora para quando a linha foi gerada pela origem da taxa.
  • Um contador monotonicamente crescente que incrementa a cada nova linha.

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

Recursos adicionais

Agora que você executou sua primeira consulta em tempo real, explore esses recursos para criar aplicativos de streaming de produção com Kafka, Kinesis e outras fontes com suporte: