Apache Beam unificado mostra processamento em lote e streaming com janelas por tempo de evento no DirectRunner
4 meses ago · Updated 4 meses ago

Ouça este artigo
Você vai aprender a montar um pipeline unificado com Apache Beam e DirectRunner que funciona igual em lote e em streaming. Você cria dados sintéticos com event-time para testar janelas, gatilhos e dados atrasados. Só troca a fonte de entrada e mantém a mesma lógica de agregação. O tutorial mostra passo a passo e imprime os resultados para você ver como tudo acontece.
- Pipeline único roda em lote e em streaming com DirectRunner
- Usa tempo do evento e janelas fixas para agrupar eventos
- Gatilhos e tolerância a atraso tratam eventos fora de ordem e tardios
- Lógica de agregação é uma transformação reaproveitável independente da fonte
- TestStream e carimbos de água simulam fluxo e mostram quando resultados são emitidos
Você pode rodar o mesmo pipeline Apache Beam em batch e em streaming com DirectRunner
Você verá um tutorial prático que mostra como construir um pipeline Apache Beam que funciona tanto em modo batch quanto em modo parecido com streaming, usando o DirectRunner. Publicado em 7 de janeiro de 2026, o guia usa dados sintéticos com carimbos de tempo de evento para demonstrar como windowing, gatilhos e lateness afetam a emissão de resultados. A lógica de agregação permanece idêntica; apenas a fonte de entrada muda.
Principais pontos
- Objetivo: provar que o mesmo pipeline processa dados limitados e ilimitados sem modificar a lógica central.
- Execução local: uso do DirectRunner para testar sem infraestrutura de streaming; ideal para validar comportamento em um ambiente de pipeline local.
- Dados sintéticos: eventos com timestamps de evento para comportamento determinístico, incluindo eventos fora de ordem e tardios.
- Windowing e gatilhos: janelas fixas, regras de acumulação e gatilhos configuráveis.
- Lateness: tratamento de eventos atrasados e atualização de janelas.
- TestStream: simula watermark, avanço de tempo de processamento e dados tardios.
Como o tutorial foi organizado
- Ambiente
- Instalação de dependências e verificação de versões compatíveis do Apache Beam.
- Geração de dados
- Criação de eventos sintéticos com timestamps explícitos, incluindo out-of-order e tardios.
- Transformação reutilizável
- Implementação de um PTransform que aplica janelas fixas, gatilhos e regras de acumulação, independente da fonte de dados.
- Enriquecimento de resultados
- Adição de metadados de janela e pane a cada agregação; timestamps convertidos para UTC legível e preparados para exibição em painéis interativos quando desejado.
- Simulação de streaming
- Definição de um TestStream para reproduzir watermark e atrasos.
- Execução
- Alternância entre modo batch e stream mudando uma flag; o pipeline roda localmente e imprime resultados por janela.
Detalhes técnicos
- Windowing: janelas fixas baseadas em event-time.
- Gatilhos: configurados para emitir resultados em momentos desejados (tempo de evento, tempo de processamento, etc.).
- Acumulação: regras determinam se resultados se acumulam ou são descartados entre emissões.
- Allowed lateness: período definido para aceitar eventos tardios e atualizar janelas já emitidas.
- Watermarks: controlam avanço do tempo de evento e determinam fechamento de janelas.
- TestStream: permite observar comportamento em cenários realistas sem infraestrutura externa.
Comparação rápida
| Modo | Fonte de entrada | Runner | Comportamento esperado |
|---|---|---|---|
| Batch | Dados limitados (lista) | DirectRunner | Emissões finais por janela, sem avanço dinâmico de watermark |
| Stream-like | TestStream com watermark | DirectRunner | Emissões incrementais e atualizações por eventos tardios |
Implicações e próximos passos
- Teste a lógica de janelas localmente antes de migrar para um runner distribuído.
- A mesma transform aplicada em batch e streaming reduz tempo de desenvolvimento.
- Watermarks, gatilhos e acumulação determinam quando e como resultados são entregues.
- Esse padrão é base sólida para migrar pipelines para ambientes de produção com runners adequados; considere também práticas de orquestração e automação de pipelines.
- Para cenários com grandes volumes em batch, avalie estratégias de armazenamento e particionamento, como as discutidas para gerenciamento de grandes dados com Zarr.
Conclusão
O tutorial demonstra, na prática, como um pipeline unificado com Apache Beam e DirectRunner funciona tanto em batch quanto em modo streaming: você troca apenas a fonte e mantém a mesma lógica de agregação. O grande ganho é a reutilização — testar localmente com TestStream permite checar watermarks, janelas, gatilhos e lateness, reduzindo retrabalho e aumentando confiança.
Lembre-se: o DirectRunner é ideal para desenvolvimento e depuração; para produção em larga escala, escolha Dataflow, Flink ou Spark. Teste suas janelas, experimente os panes e observe como os resultados evoluem — é aí que o conhecimento vira prática.
Quer continuar aprendendo? Visite e leia mais artigos em https://blog.aidirectory.com.br.
Perguntas frequentes
- O que este tutorial ensina?
Mostra como criar um pipeline Apache Beam único que roda em lote e em modo parecido com streaming, usando janelas por tempo de evento e o DirectRunner.
- Como eu alterno entre lote e streaming?
Troque apenas a fonte de entrada: dados limitados para lote ou TestStream para streaming. A lógica de agregação permanece igual.
- O que são janelas por tempo de evento e por que usar?
Agrupam eventos pelo timestamp do evento, mantendo resultados corretos mesmo com dados fora de ordem — essencial para análises temporais precisas.
- Como o tutorial mostra eventos atrasados e triggers?
Usa TestStream com watermarks e avanços de tempo, definindo gatilhos e allowed lateness para demonstrar atualizações de janelas e panes.
- Posso rodar isso em produção com DirectRunner?
DirectRunner é ótimo para teste local e depuração, mas não é indicado para produção em larga escala. Para produção, use runners como Dataflow, Flink ou Spark.
Se você quiser conhecer outros artigos semelhantes a Apache Beam unificado mostra processamento em lote e streaming com janelas por tempo de evento no DirectRunner, você pode visitar a categoria Notícias e Tendências.
