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.
Este artigo descreve as principais diferenças entre o lote e o streaming, duas semânticas de processamento de dados diferentes usadas para cargas de trabalho de engenharia de dados, incluindo ingestão, transformação e processamento em tempo real.
O streaming geralmente é associado à baixa latência e ao processamento contínuo de barramentos de mensagens, como o Apache Kafka.
No entanto, no Azure Databricks, ele tem uma definição mais expansiva. O mecanismo subjacente do Lakeflow Spark Declarative Pipelines (Apache Spark e Streaming Estruturado) tem uma arquitetura unificada para processamento em lote e streaming:
- O mecanismo pode tratar fontes como armazenamento de objetos de nuvem e Delta Lake como fontes de streaming para processamento incremental eficiente.
- O processamento de streaming pode ser executado de maneira pontual e contínua, dando a você a flexibilidade para controlar o equilíbrio entre custo e desempenho para suas cargas de trabalho de streaming.
Abaixo estão as diferenças semânticas fundamentais que distinguem o processamento em lote e o processamento em fluxo, incluindo suas vantagens e desvantagens, e considerações para a escolha entre elas para suas cargas de trabalho.
Semântica de processamento em lote
Com o processamento em lote, o mecanismo não controla quais dados já estão sendo processados na origem. Todos os dados atualmente disponíveis na origem são processados no momento do processamento. Na prática, uma fonte de dados em lotes normalmente é particionada logicamente, por exemplo, por dia ou região, para limitar o reprocessamento de dados.
Por exemplo, calcular o preço médio de venda de itens, agregado em uma granularidade por hora, para um evento de vendas executado por uma empresa de comércio eletrônico pode ser agendado como processamento em lote para calcular o preço médio de vendas a cada hora. No processamento em lote, os dados das horas anteriores são reprocessados a cada hora, e os resultados calculados anteriormente são substituídos para refletir os resultados mais recentes.
Semântica de streaming
Com o processamento de streaming, o mecanismo controla quais dados estão sendo processados e processa apenas novos dados em execuções subsequentes. No exemplo acima, você pode agendar o processamento de streaming em vez de processamento em lote para calcular o preço médio de vendas a cada hora. Com o streaming, somente novos dados adicionados à fonte desde a última execução são processados. Os resultados calculados recentemente devem ser acrescentados aos resultados calculados anteriormente para verificar os resultados completos.
Lote versus transmissão contínua
No exemplo acima, o streaming é melhor do que o processamento em lote porque não processa os mesmos dados processados em execuções anteriores. Porém, o processamento de streaming fica mais complexo com cenários envolvendo dados fora de ordem e com chegada tardia na fonte de dados.
Um exemplo de dados de chegada tardia é se alguns dados de vendas da primeira hora não chegarem à origem até a segunda hora:
- No processamento em lote, os dados de chegada tardia da primeira hora serão processados com dados da segunda hora e dados existentes da primeira hora. Os resultados anteriores da primeira hora serão substituídos e corrigidos com os dados que chegaram tardiamente.
- No processamento de streaming, os dados de chegada tardia da primeira hora serão processados sem os demais dados da primeira hora que já foram processados. A lógica de processamento deve armazenar as informações de soma e contagem dos cálculos da média da primeira hora para atualizar corretamente os resultados anteriores.
Essas complexidades de streaming normalmente são introduzidas quando o processamento é stateful, como joins, agregações e deduplicações.
Para o processamento de streaming sem estado, como acrescentar novos dados da origem, lidar com dados fora de ordem e de chegada tardia é menos complexo, pois os dados de chegada tardia podem ser acrescentados aos resultados anteriores à medida que os dados chegam na origem.
A tabela a seguir descreve os prós e contras do processamento em lote e streaming e os diferentes recursos do produto que dão suporte a essas duas semânticas de processamento no Databricks Lakeflow.
| Processamento semântico | Vantagens | Desvantagens | Produtos de engenharia de dados |
|---|---|---|---|
| Lote |
|
|
|
| Transmissão ao vivo |
|
|
|
Recomendações
A tabela a seguir descreve a semântica de processamento recomendada com base nas características das cargas de trabalho de processamento de dados em cada camada da arquitetura de medalhão.
| Camada de medalhão | Características da carga de trabalho | Recomendação |
|---|---|---|
| Bronze |
|
|
| Prata |
|
|
| Ouro |
|
|