Você já parou para pensar na quantidade e variedade de
dados que geramos e armazenamos a cada dia? Bancos, companhias
aéreas, operadoras de telefonia, serviço de busca on-line
e redes de varejistas são apenas alguns dos inúmeros
exemplos de empresas que convivem diariamente com grandes volumes de
informação. A questão é que apenas ter
dados não basta: é importante conseguir e saber
usá-los. É aí que o conceito de Big Data
entra em cena.
Neste texto, você verá o que é Big Data,
entenderá o porquê de este nome estar cada vez mais
presente no vocabulário dos ambientes de Tecnologia
da Informação e compreenderá os motivos que
levam o conceito a contribuir para o cotidiano de empresas, governos e demais
instituições.
O conceito de Big Data
A princípio, podemos definir o conceito de Big Data como sendo
conjuntos de dados extremamente grandes e que, por este motivo,
necessitam de ferramentas especialmente preparadas para lidar com
grandes volumes, de forma que toda e qualquer informação
nestes meios possa ser encontrada, analisada e aproveitada em tempo
hábil.
Não é difícil entender este cenário: trocamos milhões de e-mails por dia; milhares de transações bancárias acontecem no mundo a cada segundo; soluções sofisticadas gerenciam a cadeia de suprimentos de várias fábricas neste exato momento; operadoras registram a todo instante chamadas e tráfego de dados do crescente número de linhas celulares no mundo todo; sistemas de ERP coordenam os setores de inúmeras companhias; enfim, exemplos não faltam - se te perguntarem, você certamente será capaz de apontar outros sem fazer esforço.
Informação é poder, logo, se uma empresa souber
como utilizar os dados que tem em mãos, poderá saber como
melhorar um produto, como criar uma estratégia de marketing mais
eficiente, como cortar gastos, como produzir mais, como evitar o
desperdício de recursos, como superar um concorrente, como
disponibilizar um serviço a um cliente de maneira
satisfatória e assim por diante.
Perceba, estamos falando de fatores que podem inclusive ser decisivos
para o futuro de uma companhia. Mas, Big Data é um nome
relativamente recente (ou, ao menos, começou a aparecer na
mídia recentemente). Isso significa que somente nos
últimos anos é que as empresas descobriram a necessidade
de fazer melhor uso de seus grandes bancos de dados?
Pode ter certeza que não. Há tempos que os departamentos
de TI contemplam aplicações de Data Mining, Business
Intelligence e CRM (Customer Relationship Management),
por exemplo, para tratar justamente de análise de dados, tomadas de
decisões e outros aspectos relacionados ao negócio.
A proposta de uma solução de Big Data é a de
oferecer uma abordagem ampla no tratamento do aspecto cada vez mais "caótico"
dos dados para tornar as referidas aplicações e todas
as outras mais eficientes e precisas. Para tanto, o conceito considera
não somente grandes quantidades de dados, a velocidade de
análise e a disponibilização destes, como
também a relação com e entre os volumes.
O Facebook é um exemplo de empresa que se beneficia de Big Data: as bases de dados do serviço aumentam todo dia
e são utilizadas para determinar relações, preferências e comportamentos dos usuários
Por que Big Data é tão importante?
Lidamos com dados desde os primórdios da humanidade. Acontece
que, nos tempos atuais, os avanços computacionais nos permitem
guardar, organizar e analisar dados muito mais facilmente e com
frequência muito maior.
Este cenário está longe de deixar de ser crescente. Basta
imaginar, por exemplo, que vários dispositivos em nossas casas -
geladeiras, TVs, lavadoras de roupa, cafeteiras, entre outros -
deverão estar conectados à internet em um futuro
não muito distante. Esta previsão está dentro do
que se conhece como Internet das Coisas.
Se olharmos para o que temos agora, já veremos uma grande
mudança em relação às décadas
anteriores: tomando como base apenas a internet, pense na quantidade de
dados que são gerados diariamente somente nas redes sociais;
repare na imensa quantidade de sites na Web; perceba que você
é capaz de fazer compras on-line por meio até do seu
celular, quando o máximo de informatização que as
lojas tinham em um passado não muito distante eram sistemas
isolados para gerenciar os seus estabelecimentos físicos.
As tecnologias atuais nos permitiram - e permitem - aumentar
exponencialmente a quantidade de informações no mundo e,
agora, empresas, governos e outras instituições precisam
saber lidar com esta "explosão" de dados. O Big Data se
propõe a ajudar nesta tarefa, uma vez que as ferramentas
computacionais usadas até então para gestão de
dados, por si só, já não podem fazê-lo
satisfatoriamente.
A quantidade de dados gerada e armazenada diariamente chegou a tal
ponto que, hoje, uma estrutura centralizada de processamento de dados
já não faz mais sentido para a maioria absoluta das
grandes entidades. O Google, por exemplo, possui vários data
centers para dar conta de suas operações, mas trata todos
de maneira integrada. Este "particionamento estrutural", é bom destacar,
não é uma barreira para o Big Data - em tempos
de computação nas nuvens,
nada mas trivial.
Os 'Vs' do Big Data: volume, velocidade, variedade, veracidade e valor
No intuito de deixar a ideia de Big Data mais clara, alguns
especialistas passaram a resumir o assunto em aspectos que conseguem
descrever satisfatoriamente a base do conceito: os cincos 'Vs' -
volume, velocidade e variedade, com os fatores veracidade e valor
aparecendo posteriormente.
O aspecto do volume (volume) você já conhece.
Estamos falando de quantidades de dados realmente grandes, que crescem
exponencialmente e que, não raramente, são subutilizados
justamente por estarem nestas condições.
Velocidade (velocity) é outro ponto que você
já assimilou. Para dar conta de determinados problemas, o tratamento dos
dados (obtenção, gravação,
atualização, enfim) deve ser feito em tempo hábil
- muitas vezes em tempo real. Se o tamanho do banco de dados for um
fator limitante, o negócio pode ser prejudicado: imagine, por
exemplo, o transtorno que uma operadora de cartão de
crédito teria - e causaria - se demorasse horas para aprovar um
transação de um cliente pelo fato de o seu sistema de
segurança não conseguir analisar rapidamente todos os
dados que podem indicar uma fraude.
Variedade (variety) é outro aspecto importante. Os
volume de dados que temos hoje são consequência também da
diversidade de informações. Temos dados em formato
estruturados, isto é, armazenados em bancos como PostgreSQL e
Oracle, e dados não estruturados oriundos de inúmeras
fontes, como documentos, imagens, áudios, vídeos e assim
por diante. É necessário saber tratar a variedade como
parte de um todo - um tipo de dado pode ser inútil se não
for associado a outros.
O ponto de vista da veracidade (veracity) também
pode ser considerado, pois não adianta muita coisa lidar com a
combinação "volume + velocidade + variedade" se houver
dados não confiáveis. É necessário que haja
processos que garantam o máximo possível a
consistência dos dados. Voltando ao exemplo da operadora de
cartão de crédito, imagine o problema que a empresa teria
se o seu sistema bloqueasse uma transação genuína
por analisar dados não condizentes com a realidade.
Informação é poder, informação
é patrimônio. A combinação "volume +
velocidade + variedade + veracidade", além de todo e qualquer
outro aspecto que caracteriza uma solução de Big Data, se
mostrará inviável se o resultado não trouxer
benefícios significativos e que compensem o investimento. Este
é o aspecto do valor (value).
É claro que estes cinco aspectos não precisam ser tomados
como a definição perfeita. Há quem acredite, por
exemplo, que a combinação "volume + velocidade +
variedade" seja suficiente para transmitir uma noção
aceitável do Big Data. Sob esta óptica, os aspectos da
veracidade e do valor seriam desnecessários, porque já
estão implícitos no negócio - qualquer entidade
séria sabe que precisa de dados consistentes; nenhuma entidade
toma decisões e investe se não houver expectativa de
retorno.
O destaque para estes dois pontos talvez seja mesmo
desnecessário por fazer referência ao que parece
óbvio. Por outro lado, a sua consideração pode ser
relevante porque reforça os cuidados necessários a estes
aspectos: uma empresa pode estar analisando redes sociais para obter
uma avaliação da imagem que os clientes têm de seus
produtos, mas será que estas informações
são confiáveis ao ponto de não ser
necessário a adoção de procedimentos mais
criteriosos? Será que não se faz necessário um
estudo mais profundo para diminuir os riscos de um investimento antes
de efetuá-lo?
De qualquer forma, os três primeiros 'Vs' - volume, velocidade e
variedade - podem até não oferecer a melhor
definição do conceito, mas não estão longe
de fazê-lo. Entende-se que Big Data trata apenas de enormes
quantidades de dados, todavia, você pode ter um volume não
muito grande, mas que ainda se encaixa no contexto por causa dos
fatores velocidade e variedade.
Soluções de Big Data
Além de lidar com volumes extremamente grandes de dados dos mais
variados tipos, soluções de Big Data também
precisam trabalhar com distribuição de processamento e
elasticidade, isto é, suportar aplicações com
volumes de dados que crescem substancialmente em pouco tempo.
O problema é que os bancos de dados "tradicionais",
especialmente aqueles que exploram o modelo relacional, como o MySQL, o
PostgreSQL e o Oracle, não se mostram adequados a estes
requisitos, já que são menos flexíveis.
Isso acontece porque bancos de dados relacionais normalmente se baseiam
em quatro propriedades que tornam a sua adoção segura e
eficiente, razão pela qual soluções do tipo
são tão populares: Atomicidade, Consistência,
Isolamento e Durabilidade. Esta combinação é
conhecida como ACID, sigla para o uso destes termos em inglês:
Atomicity, Consistency, Isolation e Durability.
Vejamos uma breve descrição de cada uma:
- Atomicidade: toda transação deve ser atômica, isto é, só pode ser considerada efetivada se executada completamente;
- Consistência: todas as regras aplicadas ao banco de dados devem ser seguidas;
- Isolamento: nenhuma transação pode interferir em outra que esteja em andamento ao mesmo tempo;
- Durabilidade: uma vez que a transação esteja concluída, os dados consequentes não podem ser perdidos.
O problema é que este conjunto de propriedades é por
demais restritivo para uma solução de Big Data. A
elasticidade, por exemplo, pode ser inviabilizada pela atomicidade e
pela consistência. É neste ponto que entra em cena o
conceito de NoSQL, denominação que muitos atribuem
à expressão em inglês "Not only SQL", que em
tradução livre significa "Não apenas SQL" (SQL -
Structured Query Language - é, em poucas palavras, uma linguagem
própria para se trabalhar com bancos de dados relacionais).
O NoSQL faz referência às soluções de bancos
de dados que possibilitam armazenamento de diversas formas, não
se limitando ao modelo relacional tradicional. Bancos do tipo
são mais flexíveis, sendo inclusive compatíveis
com um grupo de premissas que "compete" com as propriedades ACID: a
BASE (Basically Available, Soft state, Eventually consistency -
Basicamente disponível, Estado Leve, Eventualmente consistente).
Não é que bancos de dados relacionais tenham ficado
ultrapassados - eles são e continuarão por muito tempo
sendo úteis a uma série de aplicações. O
que acontece é que, geralmente, quanto maior um banco de dados
se torna, mais custoso e trabalhoso ele fica: é preciso
otimizar, acrescentar novos servidores, empregar mais especialistas em
sua manutenção, enfim.
Via de regra, escalar (torná-lo maior) um bancos de dados NoSQL
é mais fácil e menos custoso. Isso é
possível porque, além de contar com propriedades mais
flexíveis, bancos do tipo já são otimizados para
trabalhar com processamento paralelo, distribuição global
(vários data centers), aumento imediato de sua capacidade e outros.
Além disso, há mais de uma categoria de banco de dados NoSQL,
fazendo com que soluções do tipo possam atender à
grande variedade de dados que existe, tanto estrurados, quanto
não estruturados: bancos de dados orientados a documentos, bancos
de dados chave/valor, bancos de dados de grafos, enfim.
Exemplos de bancos de dado NoSQL são o Cassandra, o MongoDB, o HBase, o CouchDB e o Redis. Mas, quando o assunto é Big
Data, apenas um banco de dados do tipo não basta. É
necessário também contar com ferramentas que permitam o
tratamento dos volumes. Neste ponto, o Hadoop é, de longe, a
principal referência.
Exemplos de bancos de dados noSQL: Cassandra, MongoDB, HBase, CouchDB e Redis
O que é Hadoop?
O Hadoop é uma
plataforma open source desenvolvida
especialmente para processamento e análise de grandes volumes de
dados, sejam eles estruturados ou não estruturados. O projeto
é mantido pela Apache Foundation, mas conta com a
colaboração de várias empresas, como
Yahoo!, Facebook, Google e IBM.
Pode-se dizer que o projeto teve início em meados de 2003,
quando o Google criou um modelo de programação que
distribui o processamento a ser realizado entre vários
computadores para ajudar o seu mecanismo de busca a ficar mais
rápido e livre da necessidades de servidores poderosos (e caros).
Esta tecnologia recebeu o nome de MapReduce.
Alguns meses depois, o Google apresentou o Google File System
(GFS), um *sistema de arquivos especialmente preparado para lidar com
processamento distribuído e, como não poderia deixar de
ser no caso de uma empresa como esta, grandes volumes de dados (em
grandezas de terabytes ou mesmo petabytes).
*Em poucas palavras, o sistema de arquivos é um conjunto de instruções
que determina como os dados devem ser guardados, acessados, copiados, alterados, nomeados,
eliminados e assim por diante.
Em 2004, uma implementação open source do GFS foi
incorporada ao Nutch, um
projeto de motor de busca para a Web. O Nutch enfrentava problemas de
escala - não conseguia lidar com um volume grande de
páginas - e a variação do GFS, que recebeu o nome
Nutch Distributed Filesystem (NDFS), se mostrou como uma
solução. No ano seguinte, o Nutch já contava
também com uma implementação do MapReduce.
Na verdade, o Nutch fazia parte de um projeto maior: uma biblioteca
para indexação de páginas chamada Lucene. Os responsáveis
por estes trabalhos logo viram que o que tinham em mãos
também poderia ser usado em aplicações diferentes
das buscas na Web. Esta percepção motivou a
criação de outro projeto que engloba
características do Nutch e do Lucene: o Hadoop, cuja
implementação do sistema de arquivos recebeu o nome de
Hadoop Distributed File System (HDFS).
O Hadoop é tido como uma solução adequada para Big
Data por vários motivos:
- É um projeto open source, como já informado, fato que
permite a sua modificação para fins de
customização e o torna suscetível a melhorias
constantes graças à sua rede de
colaboração. Por causa carcterística,
vários projetos derivados ou complementares foram - e ainda
são - criados;
- Proporciona economia, já que não exige o pagamento de
licenças e suporta hardware convencional, permitindo a
criação de projetos com máquinas consideravelmente
mais baratas;
- O Hadoop conta, por padrão, com recursos de tolerância a
falhas, como replicação de dados;
- O Hadoop é escalável: havendo a necessidade de
processamento para suportar uma quantidade maior de dados, é
possível acrescentar computadores sem necessidade de realizar
reconfigurações complexas no sistema.
É claro que o Hadoop pode ser usado em conjunto com bancos de
dados NoSQL. A própria Apache Foundation mantém uma
solução do tipo que é uma espécie de
subprojeto do Hadoop: o já mencionado banco de dados HBase, que funciona atrelado ao HDFS.
A denominação Hadoop tem uma origem inusitada: este é o nome que o filho de Doug Cutting, principal nome por
trás do projeto, deu ao seu elefante de pelúcia amarelo
O Hadoop, é bom frisar, é a opção de maior
destaque, mas não é a única. É
possível encontrar outras soluções
compatíveis com NoSQL ou que são baseadas em Massively
Parallel Processing (MPP), por exemplo.
Finalizando
Não podemos considerar as soluções de Big Data
como um arsenal computacional perfeito: sistemas do tipo são
complexos, ainda desconhecidos por muitos gestores e profissionais de
TI e a sua própria definição ainda é
passível de discussão.
O fato é que a ideia de Big Data reflete um cenário real:
há, cada vez mais, volumes de dados gigantescos e que, portanto,
exigem uma abordagem capaz de aproveitá-los ao máximo.
Apenas para dar uma noção deste desafio, a IBM divulgou
no final de 2012 que, de acordo com as suas estimativas, 90% dos dados
disponíveis no mundo foram gerados apenas nos dois anos anteriores.
Diante deste ponto de vista, é um tanto quanto precipitado
encarar a expressão "Big Data" como uma mero "termo da moda".
Nenhum comentário:
Postar um comentário