O que é Big Data e como funciona?
Muito tem se falado de Big Data, e começam a
aparecer algumas soluções interessantes no mercado, inclusive
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, 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
"http://pt.wikipedia.org/wiki/Lei_de_Moore" target="_blank">Lei
de Moore, que prevê que a capacidade de processamento e
armazenamento dobra a cada 18 meses, e isso tem nos
proporcionado cada vez mais capacidade de armazenamento.
Por outro lado, a
"http://pt.wikipedia.org/wiki/Lei_de_Parkinson">Lei de
Parkinson, quando aplicada a computação, determina que toda
a capacidade disponível tende a ser ocupada, e 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 dessas ferramentas é a capacidade de
processamento distribuído, o que permite criar um
cluster dedicado com vários servidores, com grande
capacidade de processamento e armazenamento, sem a necessidade
de equipamentos especializados e normalmente tolerantes a
falha.
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
"http://pt.wikipedia.org/wiki/Grace_Hopper" target=
"_blank">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
Inteligence. Em empresas maiores, a quantidade de dados
estruturados pode chegar a números bem expressivos, o que pode
inviabilizar 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,
permitindo 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 fala-se de enormes
quantidades de dados sendo gerados em uma taxa maior do que um
servidor seria capaz de processar e armazenar, e é aí que
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 resumos 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
"http://cassandra.apache.org/" target="_blank">Cassandra,
MongoDB,
Hive e
Impala (essas
duas últimas rodam sobre
target="_blank">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, 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 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 serem
processados.
Conclusão
Big Data é uma tecnologia que é realidade 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 open
source, 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
"http://www.profissionaisti.com.br/2014/07/o-que-e-computacao-em-nuvem-e-quais-os-principais-tipos/">
Cloud Computing, principalmente para processar dados
obtidos na própria Internet.
0 comments:
Post a Comment