Conceitos de Streaming Estruturado

O Apache Spark Structured Streaming permite que você construa aplicativos e pipelines de streaming com as mesmas APIs do Spark que você usa para processamento em lote. No Azure Databricks, ele suporta dois modos de processamento:

  • Modo em tempo real (RTM): projetado para cargas de trabalho operacionais com menos de um segundo, como detecção de fraudes e personalização em tempo real. O RTM processa os registros à medida que chegam, com latência de ponta a ponta tão baixa quanto cinco milissegundos. Veja conceitos de modo em tempo real.
  • Modo micro-batch: Projetado para pipelines analíticos e cargas de trabalho de extração, transformação e carga (ETL). O modo micro-batch processa fluxos em pequenos lotes, equilibrando o custo de computação com os requisitos de latência medidos em segundos ou minutos. O microprocessamento em lote é o modo padrão.

Ambos os modos usam as mesmas APIs de Streaming Estruturado. Para consultas com suporte por ambos os modos, você pode alternar os modos por meio da configuração de gatilho e de computação. Consulte Configurar o modo em tempo real.

O Structured Streaming também alimenta o streaming em pipelines Lakeflow, construídos sobre Apache Spark™ Declarative Pipelines. Pipelines gerenciam orquestração, checkpoints e recuperação, e você define transformações em SQL ou Python.

Para obter um tutorial passo a passo, consulte Executar sua primeira carga de trabalho de Streaming Estruturado.

Ler de um fluxo de dados

Use o Streaming Estruturado para ingerir dados de fontes de dados com suporte incremental.

Característica Descrição
Carregador Automático Processe de forma incremental e eficiente novos arquivos de dados à medida que chegam ao armazenamento em nuvem.
Leituras e gravações de streaming de tabelas do Delta Lake Use tabelas do Delta Lake como fontes e coletores de streaming com garantias de processamento exatamente uma única vez.
APIs SQL e Spark Conecte-se a barramentos de mensagens, filas e aplicações empresariais usando APIs SQL e Spark.
Tamanho do microlote Limite as taxas de entrada para manter tamanhos de lote consistentes e evitar atrasos no processamento.

Gravar em um destino de dados

Configure como o Streaming Estruturado fornece dados para sistemas de destino.

Característica Descrição
Pontos de Verificação Armazene o estado de processamento para habilitar a tolerância a falhas e a semântica de entrega exatamente uma vez.
Modo de saída Escolha entre os modos acrescentar, atualizar e concluir para consultas de streaming com estado.
Intervalos de gatilho Defina intervalos de gatilho para equilibrar a latência e o custo dos requisitos de processamento.
Modo em tempo real no Streaming Estruturado Processe dados para cargas de trabalho em tempo real com latência de ponta a ponta tão baixa quanto cinco milissegundos.

Processamento com estado e sem estado

As consultas sem estado processam linhas sem manter o estado. As consultas com estado mantêm o estado intermediário para agregações, junções e eliminação de duplicação.

Característica Descrição
Consultas de streaming sem estado Otimize as consultas que processam dados sem manter o estado intermediário.
Marcas d'água Controle por quanto tempo o Streaming Estruturado aguarda os dados de chegada tardia em operações com estado.
Streaming com estado Gerenciar agregações, junções fluxo-fluxo e deduplicação usando operadores com estado.

Monitorar e gerenciar

Acompanhe o desempenho da consulta, aplique otimizações e governe o acesso a dados para cargas de trabalho de Streaming Estruturado de produção.

Característica Descrição
Monitorar com StreamingQueryListener Acompanhe o progresso da consulta e as métricas de desempenho usando a interface do usuário do Spark e a API do ouvinte.
Governe com o Catálogo do Unity Configure o Catálogo do Unity para cargas de trabalho de streaming com controle de governança e acesso.