Estratégias de Ingestão de Dados: Streaming vs Batch
Descrição do post.
10/7/20242 min read


A forma com que as empresas coletam os dados é crucial para sua competitividade e eficiência. A ingestão dos dados, o processo de integrar e adquirir dados de diversas fontes, pode ser feito de duas maneiras principais: streaming ou batch. Cada uma dessas abordagens apresenta vantagens e desafios, dependendo do tipo de negócio ou da finalidade dos dados.
Praticamente todos os dados com os quais as empresas lidam são, em sua essência, streaming, como, compras de um sistema de e-commerce. Eles são quase sempre produzidos ou atualizados de maneira constante. A ingestão em batch é basicamente uma maneira de processar esse fluxo em grandes blocos, por exemplo, lidar com dados de um dia inteiro em um único lote.
Streaming
A ingestão de forma streaming, permite fornecer dados para ambientes analíticos de forma contínua e em tempo real. Nesse caso, tempo real significa que os dados estarão disponíveis para análise pouco tempo após serem produzidos.
Batch
Já os dados em batch são ingeridos quando os dados atingem um limite de tamanho ou um intervalo de tempo predeterminado. A ingestão em lote é uma via de mão única, uma vez que os dados são divididos em lotes, a latência para os consumidores é automaticamente diminuída.
Principais considerações de quando for adotar streaming ou batch
É necessário ter uma ingestão de dados em tempo real com precisão de milisegundos? Ou acumular em microlotes de um minuto seria mais ideal?
Caso eu obtenha dados em tempo real, quais ações posso realizar com esses dados que seriam mais eficazes do que lidar com lote?
Meu pipeline e sistema de streaming são confiáveis e redundantes em caso de falha na infraestrutura?
Estou obtendo dados de uma fonte de produção? Caso sim, qual é o impacto do meu processo de ingestão nesse sistema de origem?
Adotar uma estratégia streaming pode parecer uma boa ideia, mas nem sempre é tão simples, naturalmente os custos e as complexidades são maiores. Acredito que o processamento em lotes ou microlotes é uma abordagem ideal para geração de relatórios mensais/semanais e treinamentos de ML. Adotar uma abordagem streaming em tempo real pode ser interessante quando identificar um caso de uso corporativo que justifique as compensações em relação ao modelo de lotes.