Apache Flink e Spark Streaming: Processamento de Fluxo
Gabarito: letra D. Flink é um motor de processamento de fluxo verdadeiro (evento a evento), com baixa latência, exatamente-uma vez e resultados contínuos; Spark Streaming opera por micro-batches, introduzindo latência mas sendo ideal para ETL e logs. Assim, as características I, III e V pertencem ao Flink; II e IV, ao Spark Streaming.
Análise dos Itens
Item I — "Processa dados em true real-time, lidando com cada evento assim que ele chega." ✅ Flink
O Apache Flink é projetado para processamento de fluxo nativo, tratando cada evento individualmente à medida que chega, sem agrupamento em lotes. Isso caracteriza o verdadeiro tempo real.
Item II — "O modo de micro-batch introduz um pequeno delay (latência) entre a ingestão e o processamento dos dados devido à coleta em lote." ✅ Spark Streaming
O Spark Streaming divide o fluxo contínuo em micro-batches (ex.: a cada 1 segundo), processando cada lote como um pequeno job. Esse agrupamento gera latência adicional, característica central do modelo.
Item III — "Mostra um fluxo mais contínuo de resultados, especialmente se nenhum windowing ou batching estiver envolvido." ✅ Flink
Como o Flink processa eventos um a um sem esperar por lotes, os resultados são emitidos de forma contínua, mesmo sem operações de janela, diferentemente do Spark Streaming que só libera resultados ao final de cada micro-batch.
Item IV — "Mais adequado para pipelines de ETL e análises de logs, nos quais a latência dos micro-batching é aceitável." ✅ Spark Streaming
Spark Streaming é amplamente usado para cargas de trabalho que toleram alguns segundos de latência, como ETL e análise de logs, onde o alto rendimento e a integração com o ecossistema Spark compensam o pequeno delay.
Item V — "O modelo de processamento de fluxo real garante semântica exactly-once para o processamento de eventos, o que é essencial para aplicações críticas." ✅ Flink
O Flink oferece garantia exactly-once de forma nativa graças ao seu checkpointing consistente e ao modelo de processamento orientado a eventos, sendo indicado para aplicações que exigem precisão total.
Conclusão: Flink: I, III, V; Spark: II, IV → alternativa D.