Nas últimas décadas, as análises avançadas de dados, conhecidas como Data Analytics, passaram por uma evolução significativa. O aumento exponencial na geração de dados demandou o desenvolvimento de novas abordagens e tecnologias para armazenar, processar e analisar grandes volumes de dados, dando origem ao conceito de Big Data. Este artigo oferece uma visão abrangente das principais tecnologias relacionadas ao universo do Big Data, desde o revolucionário MapReduce até o impacto do ecossistema Hadoop e outras ferramentas especializadas.
Linha do tempo das análises avançadas de dados
As análises avançadas de dados, também conhecidas como Data Analytics, têm evoluído muito nas últimas décadas. Com o aumento exponencial na geração de dados, surgiu a necessidade de novas abordagens e tecnologias para armazenar, processar e analisar grandes volumes de dados, o que caracteriza o conceito de Big Data.
- Década de 1980: Desenvolvimento dos primeiros sistemas de data warehouses para agregar e organizar dados corporativos para análise.
- Década de 1990: Crescimento da capacidade de armazenamento e processamento de dados com o barateamento de hardwares. Início da utilização de data mining para descoberta de padrões em grandes bases de dados.
- 2003: Lançamento do MapReduce pelo Google para processar grandes conjuntos de dados em clusters de computadores. Este foi um marco importante que deu origem a muitas tecnologias modernas de Big Data.
- 2004: Fundação da MongoDB, um dos principais bancos de dados NoSQL para armazenamento de dados não estruturados em grande escala.
- 2005: Criação do Hadoop open source baseado nos conceitos do MapReduce do Google. O Hadoop se tornaria a base para o ecossistema de Big Data.
- 2006: Amazon lança o Amazon S3 para armazenamento de objetos na nuvem, permitindo o rápido crescimento no volume de dados armazenados.
- 2007: Desenvolvimento da linguagem R especificamente voltada para análise estatística, mineração e visualização de dados.
- 2009: Lançamento do Apache Hadoop 1.0, primeira versão estável do framework open source de Big Data.
- 2010: Rapidamente o Hadoop se torna o padrão de fato para projetos de Big Data, com grande adoção por empresas como Yahoo, Facebook, Twitter e outras.
- 2015: O Apache Spark se torna a tecnologia líder para processamento e análise de Big Data em memória, ultrapassando em popularidade frameworks mais antigos como o MapReduce.
MapReduce
O MapReduce é um modelo de programação introduzido pelo Google em 2003 para processar grandes volumes de dados de maneira paralela e distribuída em clusters de computadores.
- A lógica por trás do MapReduce é dividir o processamento em duas etapas principais: Map e Reduce.
- Map: Nesta etapa os dados são divididos em partes menores e processados em paralelo, gerando pares de chave-valor intermediários como saída.
- Reduce: Recebe os pares de chave-valor gerados na etapa Map e agrega os dados associados à mesma chave, reduzindo-os a um conjunto menor de pares chave-valor que representa o resultado final.
- O MapReduce permite o processamento distribuído de grandes conjuntos de dados através da divisão em subtarefas, aproveitando o paralelismo em milhares de nós de um cluster para acelerar o processamento.
- Por ser um modelo simples baseado em funções Map e Reduce, fica mais fácil de ser implementado em ambientes distribuídos.
Massively Parallel Processing (MPP)
O Massively Parallel Processing (MPP), ou Processamento Paralelo Massivo, é uma abordagem que consiste na divisão de tarefas complexas em subtarefas menores que podem ser processadas em paralelo por centenas ou milhares de nós computacionais. Dessa forma, é possível aproveitar o poder computacional agregado de vários servidores para acelerar o processamento e análise de grandes volumes de dados, obtendo muito mais performance do que seria possível com uma única máquina. O MPP é utilizado por muitos bancos de dados analíticos modernos, como o Google BigQuery, Amazon Redshift, Snowflake, Azure sql Data Warehouse, entre outros. Ao executar uma query sql nessas plataformas, o trabalho é dividido em partes menores e processado em paralelo utilizando todos os recursos disponíveis.
- Divisão de tarefas complexas em subtarefas menores para processamento paralelo
- Aproveitamento do poder computacional de vários servidores
- Utilização em bancos de dados analíticos modernos
- Execução de queries sql em plataformas como Google BigQuery, Amazon Redshift, Snowflake, Azure sql Data Warehouse
Comparação com MapReduce
O MapReduce, mencionado anteriormente, também se baseia no conceito de divisão do trabalho em partes menores para aproveitar o processamento paralelo. Porém, o MapReduce é voltado para cargas de trabalho mais genéricas e flexíveis, enquanto o MPP é otimizado especificamente para workloads transacionais e analíticos de bancos de dados sql. Além disso, o MPP lida melhor com dados estruturados, enquanto o MapReduce (especialmente via Hadoop) é mais adequado para dados semiestruturados e não estruturados. Portanto, podemos dizer que o MapReduce e o MPP são abordagens complementares para lidar com diferentes requisitos de processamento de Big Data.
- MapReduce voltado para cargas de trabalho genéricas e flexíveis
- MPP otimizado para workloads transacionais e analíticos de bancos de dados sql
- MPP lida melhor com dados estruturados
- MapReduce mais adequado para dados semiestruturados e não estruturados
Hive
O Apache Hive é um data warehouse open source desenvolvido para permitir análises de grandes conjuntos de dados usando sql. Ele foi criado para ser executado sobre o Hadoop, permitindo que usuários com conhecimento em sql possam interagir com dados armazenados no HDFS e derivar insights sem precisar aprender linguagens complexas como Java ou python. O Hive provê uma camada sql para abstrair e simplificar o MapReduce. Dessa forma, ao invés de escrever códigos complexos em MapReduce, os usuários podem simplesmente escrever queries sql para realizar filtros, agregações e junções nos dados, enquanto o Hive se encarrega de traduzir essas operações para jobs MapReduce, executando-os no cluster Hadoop. Isso tornou o processamento de Big Data muito mais acessível para analistas de negócio, cientistas de dados e outros usuários familiarizados com sql tradicional. Porém, com o passar dos anos, tecnologias mais avançadas e performáticas como o Spark acabaram tomando o lugar do Hive para a maioria dos casos de uso.
- Permite análises de grandes conjuntos de dados usando sql
- Facilita a interação com dados armazenados no HDFS
- Abstrai e simplifica o MapReduce
- Tecnologias mais avançadas como o Spark substituindo o Hive para a maioria dos casos de uso
Presto
O Presto é um mecanismo open source de queries distribuídas desenvolvido pelo Facebook para realizar análises interativas em tempo real contra diferentes fontes de dados, tanto em armazenamento persistente (HDFS, Cassandra, etc) quanto em processamento em memória (Hive, Pig, etc). Ele permite que usuários executem queries sql para analisar dados onde quer que eles estejam, sem precisar mover os dados para um repositório centralizado. Isso é possível através de um modelo de process
- Realiza análises interativas em tempo real
- Permite execução de queries sql para analisar dados em diferentes fontes de dados
- Não requer mover os dados para um repositório centralizado
Presto: Uma Solução para Analytics em Big Data
O Presto é uma ferramenta de query engine distribuída, que divide as queries em tarefas executadas em paralelo nos nós onde os dados residem. Dessa forma, o Presto tira proveito do conceito de Massively Parallel Processing para executar analytics em Big Data de forma interativa com latências muito baixas. Por ter uma arquitetura modular, o Presto também permite fácil integração com novos tipos de sistemas de armazenamento e processamento de dados. Hoje o Presto é amplamente utilizado em pipelines de Big Data na nuvem, como o Amazon Athena, EMR, AWS Glue e muitos outros serviços. Sua capacidade de analisar dados em diferentes fontes de forma unificada através de sql o torna uma excelente opção para analytics modernos.
- Presto é uma ferramenta de query engine distribuída, que divide as queries em tarefas executadas em paralelo nos nós onde os dados residem.
- Tira proveito do conceito de Massively Parallel Processing para executar analytics em Big Data de forma interativa com latências muito baixas.
- Possui uma arquitetura modular, permitindo fácil integração com novos tipos de sistemas de armazenamento e processamento de dados.
- Amplamente utilizado em pipelines de Big Data na nuvem, como o Amazon Athena, EMR, AWS Glue e muitos outros serviços.
- Capacidade de analisar dados em diferentes fontes de forma unificada através de sql, tornando-se uma excelente opção para analytics modernos.
Outras Tecnologias do Ecossistema Hadoop
Além das tecnologias centrais como o MapReduce, Hive e Spark, existem diversos outros projetos open source no ecossistema Hadoop que são muito utilizados em soluções de Big Data. Entre eles, destacam-se o HBase, Kafka, Flink, Cassandra, Druid e Airflow. Cada uma dessas ferramentas traz recursos especializados para diferentes casos de uso em Big Data, desde ingestão, armazenamento, processamento, análise e visualização de dados.
- Existem diversos outros projetos open source no ecossistema Hadoop que são muito utilizados em soluções de Big Data.
- HBase, Kafka, Flink, Cassandra, Druid e Airflow são algumas das ferramentas do ecossistema Hadoop que trazem recursos especializados para diferentes casos de uso em Big Data.
- Cada uma dessas ferramentas traz recursos especializados para diferentes casos de uso em Big Data, desde ingestão, armazenamento, processamento, análise e visualização de dados.
Conclusão
A evolução do Big Data foi impulsionada por marcos importantes, como o desenvolvimento do MapReduce, a fundação do Hadoop e o surgimento de tecnologias complementares, como o Presto e o Hive. A abordagem de processamento paralelo massivo tornou-se crucial, sendo amplamente adotada nos bancos de dados analíticos modernos na nuvem. O ecossistema Hadoop catalisou a inovação no espaço de Big Data, dando origem a uma ampla gama de tecnologias específicas para todos os tipos de uso, desde streaming e armazenamento até análise e visualização de dados.