Conceitos de Streaming Estruturado

O Apache Spark Structured Streaming permite-te construir aplicações e pipelines de streaming com as mesmas APIs Spark que usas para processamento em lote. O Azure Databricks suporta dois modos de processamento:

  • Modo em tempo real (RTM): Concebido para cargas de trabalho operacionais com latência inferior a um segundo, como deteção de fraude e personalização em tempo real. O RTM processa os registos à medida que chegam, com uma latência de ponta a ponta tão baixa quanto cinco milissegundos. Ver conceitos do modo em tempo real.
  • Modo micro-batch: Concebido para pipelines analíticos e cargas de extração, transformação e carga (ETL). O modo micro-batch processa fluxos em pequenos lotes, equilibrando o custo de cálculo com os requisitos de latência medidos em segundos ou minutos. O processamento em micro-lotes é o modo padrão.

Ambos os modos utilizam as mesmas APIs de Streaming Estruturado. Para consultas suportadas por ambos os modos, pode alternar modos através da configuração de trigger e compute. Veja Configurar modo em tempo real.

O Structured Streaming também suporta o streaming em pipelines Lakeflow, construídas com base em Apache Spark™ Declarative Pipelines. Os pipelines gerem orquestração, checkpoints e recuperação, e define transformações em SQL ou Python.

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

Ler a partir de um fluxo de dados

Use Structured Streaming para ingerir dados de forma incremental de fontes de dados suportadas.

Feature Descrição
Carregador Automático Processe de forma incremental e eficiente novos ficheiros de dados à medida que chegam ao armazenamento na cloud.
Leituras e escritas em fluxo da tabela Delta Lake Use as tabelas Delta Lake como fontes e destinos de fluxo com garantias de processamento de exatamente uma vez.
APIs SQL e Spark Ligue-se a barramentos de mensagens, filas e aplicações empresariais usando APIs SQL e Spark.
Tamanho micro-lote Limite as taxas de entrada para manter tamanhos de lote consistentes e evitar atrasos no processamento.

Gravar num destino de dados

Configure como o Structured Streaming entrega os dados aos sistemas-alvo.

Feature Descrição
Pontos de verificação Armazenar o estado de processamento para permitir tolerância a falhas e semântica de entrega exata uma vez.
Modo de saída Escolha entre os modos de acrescentar, atualizar e completar para consultas de streaming com estado.
Intervalos de gatilho Defina intervalos de gatilho para equilibrar latência e custo para as suas necessidades de processamento.
Modo em tempo real em Streaming Estruturado Processar 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

Consultas sem estado processam linhas sem manter estado. Consultas com estado mantêm o estado intermédio para agregações, junções e deduplicação.

Feature Descrição
Consultas de streaming sem estado Otimize consultas que processem dados sem manter o estado intermédio.
Marcas de água Controlar quanto tempo o Structured Streaming espera por dados que chegam tarde em operações com estado.
Transmissão com estado Gerir agregações, junções fluxo-fluxo e deduplicação com operadores com estado.

Monitorizar e gerir

Acompanhar o desempenho das consultas, aplicar otimizações e governar o acesso a dados para cargas de trabalho de Streaming Estruturado em produção.

Feature Descrição
Monitorizar com o StreamingQueryListener Acompanhe o progresso das consultas e métricas de desempenho usando a interface Spark e a API do ouvinte.
Tutorial: Monitorizar uma consulta com o StreamingQueryListener Anexe um listener e registe métricas de progresso da consulta numa tabela do Unity Catalog.
Catálogo Governar com Unidade Configure o Unity Catalog para cargas de trabalho em streaming com governação e controlo de acessos.