O Que É um Batch Job? Processar Dados em Blocos Explicado
Um batch job processa um conjunto delimitado de dados de uma só vez, tipicamente sob um agendamento, em vez de tratar registros continuamente à medida que chegam.
O processamento em batch é a forma mais antiga e ainda mais comum de processar dados. Um batch job reúne um bloco de trabalho definido - todas as transações de ontem, os logs desta hora - e o processa numa única execução. Ele troca latência por simplicidade e throughput.
O que é um batch job
Um batch job é um processo que roda sobre um dataset finito e delimitado e termina. Ele geralmente roda sob um agendamento (noturno, horário) e processa os dados que se acumularam desde a última execução. Exemplos incluem uma agregação noturna, a geração de um relatório diário ou um retrain semanal de modelo.
Batch versus streaming
O batch processa dados em blocos com latência maior, mas lógica mais simples e reprocessamento fácil. O streaming processa eventos continuamente com baixa latência, mas com tratamento de estado mais complexo. Muitas plataformas usam batch para trabalho histórico pesado e streaming para dados recentes.
Idempotência e retries
Como batch jobs são reexecutados em caso de falha ou para backfills, eles devem ser idempotentes: rodar o mesmo job duas vezes produz o mesmo resultado, não duplicatas. Isso torna os retries seguros, o que importa quando um job processando horas de dados encontra um erro transitório perto do fim.
Batch jobs no CI
Um batch job roda naturalmente como um workflow de CI agendado. O CI também testa a lógica do job sobre um bloco de amostra antes de ele ser entregue.
on:
schedule:
- cron: "0 2 * * *" # run nightly at 02:00
jobs:
nightly:
steps:
- run: python batch_job.py --date $(date -I)Nota Latchkey
Batch jobs podem ser longos e pesados em recursos, processando grandes datasets numa única execução. No Latchkey, direcione-os para runners maiores, faça cache dos dados de entrada e das dependências, e conte com o auto-retry para que uma falha transitória no fim de um job longo não force uma reexecução completa do zero.
Principais conclusões
- Um batch job processa um bloco delimitado de dados de uma só vez, normalmente sob um agendamento.
- Ele troca latência por simplicidade e throughput em comparação com streaming.
- Batch jobs devem ser idempotentes para que retries e backfills sejam seguros, e rodam bem como workflows de CI agendados.