2.3 Velocidade
2.3 Velocidade#
A evolução do uso de dispositivos móveis, IoT, redes sociais etc. gerou um grande desafio para coletar e processar esse enorme volume de dados com a velocidade necessária. A coleta e o processamento de dados é parte da área de processamento de dados, que também vem sendo objeto de grandes inovações de processos e ferramentas nos últimos anos.
Um dos grandes problemas na área de processamento de dados é entender qual ferramenta é indicada para cada problema para evitar uma arquitetura que, depois, não atenda às necessidades do projeto ou que seja demasiadamente complexa, gerando gastos de desenvolvimento desnecessários.
Para facilitar o entendimento do problema, as tarefas de processamento de dados são geralmente divididas em duas grandes categorias:
em lotes (batch): processamento de grandes lotes de dados em intervalos programados (ex. uma vez por dia) ou periódicos (sem hora definida); ideal para dados que não se alteram muito ou em que as fontes de dados não permitem consultas em tempo real.
em tempo-real(streaming): atualização de pequenos pacotes de dados conforme o evento ocorreu (real time) ou em curtos intervalos de tempo (near real time), como uma ativação de uma tag de acompanhamento em um website ou uma nova venda realizada em e-commerce.
Processamento em lotes |
Processamento streaming |
|
---|---|---|
Características |
Grande volume de dados Implementação mais fácil Programado ou periódico Ideal para análises complexas |
Pequenos pacotes de dados Implementação complexa Tempo real ou quase Ideal para métricas simples |
Tipo de dados |
Banco de dados, arquivos |
Eventos, IoT, vídeo |
Aplicações |
Apache Spark, AWS Batch, AWS Glue, Apache Hadoop, dbt |
Apache Kafka, Apache Flink, Apache Spark Streaming, Amazon Kinesis |