O que é Big Data e como funciona?

folder_openBig Data (BR)
access_time

4 min

Update 2020: melhorias para leitura do artigo

Muito tem se falado de Big Data e começam a aparecer algumas soluções interessantes no mercado, principalmente open source, mas poucas são as definições do que é Big Data e qual sua importância para o mundo dos negócios.

O termo tem sido usado para definir grandes quantidades de dados armazenados pelas empresas, mas principalmente dados não estruturados, como logs de acesso, dados de sensores, frases escritas por funcionários e clientes, respostas de pesquisas, dados de redes sociais, posições geográficas, e-mails, arquivos no servidor de arquivos, entre outros.

Todos sabem que a evolução da tecnologia tem seguido a Lei de Moore, que prevê que a capacidade de processamento e armazenamento dobra a cada 18 meses, isso tem nos proporcionado cada vez mais capacidade de armazenamento.

Por outro lado, a Lei de Parkinson quando aplicada a computação, determina que toda a capacidade disponível tende a ser ocupada, isso nos dá mais dados para armazenar e principalmente analisar, o que tem se tornado inviável com ferramentas convencionais.

Aí que entram as ferramentas de análise de Big Data, que permitem o tratamento de grandes quantidades de informações, estruturadas ou não, para gerar novas análises e entendimento sobre as informações existentes.

Arquiteturas de Big Data

O grande diferencial das ferramentas é a capacidade de processamento distribuído, o que permite criar um cluster dedicado com vários servidores, com grande capacidade de processamento, armazenamento e tolerância a falhas, sem a necessidade de equipamentos especializados e caros.

Em termos de arquitetura, as ferramentas de Big Data utilizam a capacidade de processamento e armazenamento em paralelo, ao invés de utilizar um computador único cada vez maior.

Esse conceito já era defendido por Grace Hopper:
In pioneer days they used oxen for heavy pulling, and when one ox couldn’t budge a log, we didn’t try to grow a larger ox. We shouldn’t be trying for bigger computers, but for more (systems of computers).

Casos de Uso

Estima-se que apenas 20% dos dados de uma empresa são dados estruturados, usados para a tomada de decisões e é aí que entra a capacidade das novas ferramentas, que vão além do banco de dados relacional, permitindo correlacionar dados de diversas fontes e nos mais variados formatos, como documentos, planilhas, emails, imagens e até vídeos.

Um caso de uso bem comum é utilizar o cluster de Big Data para Business Analytics ou Business Intelligence.

Em empresas maiores, a quantidade de dados estruturados pode chegar a números bem expressivos, o que pode inviabilizar ou encarecer demais a consulta em um banco de dados relacional comum.

Nesses casos, exportar o conteúdo desses bancos para um ambiente de Big Data pode viabilizar a execução, pois o SGBD em Big Data é focado apenas no dado e não na indexação, relacionamento e validação dos dados como num SGBD comum.

O uso de um SGBD em Big Data permite executar consultas que seriam inviáveis em termos de tempo de execução e recursos computacionais das soluções convencionais.

Desafios

O primeiro desafio do Big Data é a coleta de dados para dentro do cluster, normalmente tratam-se de enormes quantidades de dados sendo gerados em um taxa maior do que um servidor único seria capaz de processar e armazenar; aí entram os clusters, com vários nós capturando essas informações e distribuindo entre os outros nós do cluster para manter a tolerância a falha.

O segundo desafio é processar essas informações, como elas estão distribuídas, a aplicação deve ser capaz de consumir pequenas partes das informações e gerar pequenas partes de dados processados, que depois serão calculados em conjunto para criar o resultado final.

Isso normalmente requer um desenvolvimento específico para o processamento desses dados.

A parte mais simples é a exibição dos resultados. Os arquivos gerados normalmente são resumo das informações, agrupando conforme necessário, de forma que alguém possa entender e tomar uma decisão sobre aqueles dados.

Existe SQL em Big Data?

Uma das formas criadas para aproveitar o conhecimento já existente no mercado sobre a linguagem SQL foi desenvolver ferramentas que suportassem SQL (Structured Query Language), comumente utilizada em SGBD.

Assim nasceram aplicações como que rodam sobre Cassandra, MongoDB, Hive e Impala (essas duas últimas rodam sobre Hadoop), capazes de executar comandos comuns de SQL em clusters de Big Data.

Isso torna um pouco mais fácil o desenvolvimento para Big Data, pois aproveita um conhecimento já existente.

Por outro lado, utilizar linguagens mais nativas dos SGBD de Big Data como a linguagem de Query do MongoDB, permite o tratamento em camadas e maior flexibilidade do que o SQL.

Mas Big Data ainda não é um conceito tão simples quanto Plug and Play.

Também o uso dessas ferramentas pode gerar uma expectativa irreal quanto a performance e o funcionamento.

Todas essas ferramentas são muito novas, com comandos limitados e o fato de executar distribuído faz consultas pequenas demorarem muito mais do que em um SGBD comum.

A vantagem delas está realmente na hora de trabalhar grandes quantidades de dados, onde o overhead da computação distribuída é insignificante frente a quantidade de dados a ser processada.

Conclusão

Big Data é uma tecnologia que já é realidade alcançável para grandes empresas.

Tem tido rápida adoção para pesquisas, análise de negócios, detecção de fraudes, entendimento de comportamento dos consumidores, entre outros; mas os requisitos iniciais estão longe da realidade da maioria das pequenas e médias empresas, principalmente no Brasil.

Também as aplicações ainda são muito específicas e normalmente desenvolvidas sob demanda, o que aumenta ainda mais os custos iniciais de implantação e desenvolvimento.

Mas a predominância principalmente de ferramentas opensource, a capacidade de executar sobre hardware comum e a tendência de aparecerem novos fornecedores nesse mundo deve trazer essa realidade em breve para pequenas e médias empresas.

Também deve ser comum a adoção de Big Data em Cloud Computing, principalmente para processar dados obtidos na própria Internet.

Related Posts

Menu