Big Data: manipulando montanhas de dados

Um dos temas que venho trabalhando é como analisar “montanhas” de dados para definir padrões de comportamento, os chamados “big data”. O processo consiste na aquisição, organização e análise. Uma tecnologia que permite trabalhar com milhares de nós e petabytes de dados é o Apache Hadoop. O Hadoop é um projeto de alto nível da Apache sendo construído e usado pela comunidade internacional de colaboradores, escrito em linguagem Java e sob licença livre. O software foi inspirado no MapReduce e File System do (GFS) do Google.

O processo de aquisição envolve a extração de dados de várias fontes de informação. Como estamos trabalhando com grandes volumes de dados e variedade, a infraestrutura deve oferece possibilidade de mostrar dados consolidados, ter latência previsível, capacidade para executar pesquisas simples e manipular grandes volumes de transações em um ambiente distribuído.

A organização dos dados dentro do conceito de data warehousing é chamada integração de dados (data integration). A infraestrutura necessária para organizar grandes volumes de dados deve processar e manipular os dados originais no sistema de armazenamento local (storage). A infraestrutura deve ter um altíssimo throughput (vazão de dados) para processar as várias fases de processamento; e deve manipular uma grande variedade de formatos de dados estruturados ou de formato livre (não estruturados). A tecnologia Hadoop permite organizar e processar de forma paralela grandes volumes de dados no cluster de armazenamento original. O Hadoop Distributed file System (HDFS) é o sistema de armazenamento de longo prazo para web logs, por exemplo. Esses logs são transformados em sessões que são executadas pelos programas MapReduce no cluster e os resultados carregados no data warehouse (banco de dados relacional).

Para a análise dos dados, onde nem sempre os todos os dados foram movidos para o data warehouse à análise pode ser feita em um ambiente distribuído, onde alguns dados foram originalmente armazenados e possam ser acessados de forma transparente. A infraestrutura necessária deve suportar análises estatísticas e mineração de dados (data mining) para uma ampla variedade de dados armazenados em diversos sistemas, deve ser escalável, permitir rápido processamento e automatizar decisões com base em análise de modelos.

A Oracle tem um produto que consolidada todas as funcionalidades de aquisição, organização e análise, chamado Oracle Big Data Appliance. O produto vem com uma configuração de 18 servidores Sun e uma capacidade de armazenamento de 432TB. Cada servidor no rack tem 2 CPUs, cada uma com 6 núcleos, somando 216 núcleos no rack. Cada servidor tem 48GB de memória com um total de 864GB de memória.

Uma aplicação é a análise de comportamento de consumidores baseado nas redes sociais. Outra aplicação é a análise do padrão de consumo dos consumidores de energia elétrica por períodos em redes de distribuição inteligentes (smart-grid).