conceitos de transmissão estruturada
O Apache Spark Structured Streaming permite criar aplicações de transmissão e pipelines com as mesmas APIs Spark que você usa para processamento em lotes. No Databricks, ele suporta dois modos de processamento:
- Modo em tempo real (RTM) : Projetado para cargas de trabalho operacionais de sub-segundo, como detecção de fraudes e personalização em tempo real. O RTM processa os registros à medida que chegam, com uma latência de ponta a ponta de até cinco milissegundos. Consulte Conceitos do modo em tempo real.
- Modo de micro-lotes : projetado para pipelines analíticos e cargas de trabalho de extração, transformação e carregamento (ETL). O modo de micro-lotes processa transmissões em pequenos lotes, equilibrando o custo de compute com os requisitos de latência medidos em segundos ou minutos. O processamento em micro-lotes é o modo default.
Ambos os modos usam as mesmas APIs do Structured Streaming. Para query compatíveis com ambos os modos, você pode alternar entre eles por meio da configuração de trigger e compute. Consulte Configurar o modo em tempo real.
O Structured Streaming também possibilita a transmissão em LakeFlow Pipelines, criados em pipelines declarativos do Apache Spark™. Os pipelines gerenciam a orquestração, os checkpoints e a recuperação, e você define transformações em SQL ou Python.
Para obter um tutorial passo a passo, consulte execução de sua primeira carga de trabalho de transmissão estruturada.
Leitura de uma transmissão de dados
Use transmissão estruturada para ingerir dados incrementalmente de fontes de dados suportadas.
-
- Carregador automático
- Processar de forma incremental e eficiente novos arquivos de dados à medida que chegam ao armazenamento cloud .
-
- Leituras e gravações de transmissão da tabela Delta Lake
- Utilize tabelas Delta Lake como fontes e destinos de transmissão com garantias de processamento exatamente uma vez.
-
- SQL e Spark API
- Conecte-se a barramentos de mensagens, filas e aplicativos corporativos usando SQL e Spark API.
-
- Tamanho de microlotes
- Limitar as taxas de entrada para manter tamanhos de lotes consistentes e evitar atrasos no processamento.
Gravar em um coletor de dados
Configure como a transmissão estruturada entrega dados aos sistemas de destino.
-
- Pontos de controle
- Armazenar o estado de processamento para permitir tolerância a falhas e semântica de entrega exatamente uma vez.
-
- Modo de saída
- Escolha entre os modos de anexação, atualização e conclusão para consultas de transmissão com estado.
-
- Intervalos de disparo
- Defina intervalos de disparo para equilibrar a latência e o custo de acordo com suas necessidades de processamento.
-
- tempo real mode em transmissão estruturada
- Processar dados para cargas de trabalho em tempo real com latência de ponta a ponta de apenas cinco milissegundos.
Processamento com e sem estado
Consultas sem estado processam linhas sem reter nenhum estado. Consultas com estado mantêm um estado intermediário para agregações, junções e desduplicação.
-
- Consultas de transmissão sem estado
- Otimize as consultas que processam dados sem manter um estado intermediário.
-
- Marcas d'água
- Controle quanto tempo a transmissão estruturada aguarda por dados atrasados em operações com estado.
-
- Transmissão com estado
- gerenciamento de agregações, junção transmissão-transmissão e desduplicação usando operadores stateful.
Monitorar e gerenciar
Acompanhe o desempenho das consultas, aplique otimizações e controle o acesso aos dados para cargas de trabalho estruturadas de transmissão de produção.
-
- Monitorar com StreamingQueryListener
- Acompanhe o progresso da consulta e as métricas de desempenho usando a Spark UI e API do listener.
-
- Tutorial: Monitorar uma query com o StreamingQueryListener
- Anexe um ouvinte e registre as métricas de progresso da query em uma tabela do Unity Catalog.
-
- Governe com Unity Catalog
- Configure Unity Catalog para cargas de trabalho de transmissão com governança e controle de acesso.