Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Esse recurso está em Visualização Pública.
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.
Requisitos
- Você tem permissão para criar computação clássica.
- Databricks Runtime 17.1 ou superior (necessário para usar a função
displayno modo em tempo real).
Observação
Se você não tiver privilégios clássicos de criação de computação, entre em contato com o administrador do workspace para criar um cluster de modo em tempo real para você usando a configuração na Etapa 1.
Etapa 1: Criar computação clássica para o modo em tempo real
O modo em tempo real requer uma configuração de computação clássica específica para obter latência ultra-baixa. Essas configurações garantem que as tarefas sejam executadas simultaneamente em todos os estágios e os dados sejam processados continuamente à medida que chegam, em vez de em lotes.
Para criar uma computação clássica configurada corretamente:
No workspace do Azure Databricks, clique em Computação na barra lateral.
Clique em Criar computação.
Insira um nome.
Selecione Databricks Runtime 17.1 ou superior.
Limpar aceleração Photon (modo em tempo real não suporta Photon).
Limpar Habilitar dimensionamento automático (o modo em tempo real requer um tamanho de cluster fixo).
Em Desempenho avançado, desmarque a opção 'usar instâncias spot' (instâncias spot podem causar interrupções).
Clique em Opções avançadas para expandir as configurações adicionais.
No modo de acesso, selecione Dedicado (anteriormente: usuário único).
Na configuração do Spark, adicione a seguinte configuração:
spark.databricks.streaming.realTimeMode.enabled trueClique em Criar computação.
Etapa 2: 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:
- Clique em Novo na barra lateral e em seguida clique em Notebooks.
- No menu suspenso de recursos de computação, selecione o recurso que você criou na Etapa 1.
- Selecione Python ou Scala como o idioma padrão.
Etapa 3: 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. |
O que você está vendo
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:
- timestamp: a data e hora em que a linha foi gerada pela fonte de taxa
- valor: um contador monotonicamente crescente que incrementa com o acréscimo de 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.
O que você aprendeu
Você configurou e executou com êxito sua primeira consulta de streaming em tempo real. Agora você sabe como:
- Configurar a computação clássica com as configurações necessárias para o modo em tempo real (cluster dedicado, Photon desabilitado, dimensionamento automático desabilitado, configuração do Spark)
- Habilitar o processamento em tempo real usando o
realTimegatilho - Usar a
displayfunção para desenvolvimento e teste interativos - Verifique se a consulta está em execução no modo em tempo real observando atualizações contínuas
Você está pronto para criar pipelines de produção em tempo real com Kafka, Kinesis e outras fontes suportadas. Para saber mais sobre o Streaming Estruturado, confira os conceitos de Streaming Estruturado.
Próximas Etapas
Agora que você executou sua primeira consulta em tempo real, explore esses recursos para criar aplicativos de streaming de produção:
- Exemplos de modo em tempo real – Exemplos de código de trabalho para fontes e coletores kafka, consultas com estado, agregações e coletores personalizados
- Referência do modo em tempo real – saiba mais sobre dimensionamento de cluster, operadores compatíveis, monitoramento e limitações de recursos
- Aplicativos de streaming com estado persistente – Acrescentar gerenciamento de estado às consultas de streaming para eliminação de duplicação, agregações e funcionalidades de janela
-
Gerenciamento de estado avançado – uso
transformWithStatepara processamento com estado personalizado com TTL (vida útil) e lógica complexa