Passada e apresentada a temática da nossa mais nova atividade, o PET-Redação, estamos trazendo a vocês mais uma edição. E o tema abordado será o Big Data. Mas afinal, o que é Big Data? Pode se dizer que o termo é usado para se referir a grandes volumes de dados. E porque abordar este tema? Sabe-se que com o avanço da tecnologia a cada dia entram na rede mais usuários, os quais geram um volume de dados cada vez maior, que se bem lapidado e trabalhado, pode trazer benefícios para quem o faz.
Desde meados dos anos 2000, quando Doug Laney deu uma definição para o Big Data com os três “V”: Volume, Velocidade e Variedade, o conceito ganhou visibilidade. O primeiro destes é literalmente a quantidade de dados, o segundo a velocidade em que são gerados e o terceiro se refere a quantidade de fontes e tipagens destes dados, pois os mesmos podem ser estruturados ou não. Um ponto a se ressaltar aqui, é que diferentes autores podem descrever a definição de Big Data de uma forma diferente, utilizando diferentes números de “V’s”.
Depois dessa breve apresentação do conceito de Big Data, você pode estar se perguntando para quê e no que são utilizadas estas análises deste grande volume de dados. Sabe quando você visita aquele e-commerce de venda de tênis e a partir deste momento aparecem diversas propagandas relacionadas a produtos deste segmento na no seu navegador? Sim, isto é feito através do processamento de dados que o site retira do seu navegador através da utilização de cookies. A seguir, apresentaremos algumas empresas e entidades do setor público que utilizam o processamento de grandes volumes de dados em seu benefício.
Ministério da Justiça – detecção de problemas relacionados principalmente a lavagem de dinheiro.
Nike – se utilizou da criação de um app para monitorar as atividades físicas dos usuários e integrou o mesmo com as redes sociais, com isso gerou um grande volume de dados que quando analisado ajuda a mesma a oferecer produtos que se enquadram ao estilo de vida do usuário.
NetFlix – basicamente monitora as atividades dos usuários e com isso consegue oferecer aos mesmos, títulos dos mesmos gêneros ou similares com os de preferência dos mesmos.
Motores de Busca – os motores de busca se utilizam do processamento de dados em grande escala para obter resultados rápidos para seus usuários.
Depois de mais uma questão respondida, surgem outras, como: “De que maneira processar estes dados?”. Devido às características citadas dos “V’ s”, o uso de banco de dados comuns, ou seja, os relacionais, é praticamente inviável, isto porque, os BD’s relacionais tem como um de suas principais características a homogeneidade dos dados, fato este que muitas vezes não está presente na base de dados que está sendo processada . Então, surge como a ferramenta mais usada para esta finalidade o Apache Hadoop, que é uma plataforma open source mantida pela Apache Foundation e conta com a colaboração de várias empresas, como a Google, Yahoo, Facebook e IBM. O Apache Hadoop abstrai do programador questões de paralelização, distribuição dos dados no cluster (falaremos disso em breve) e a tolerância a falhas. O Hadoop utiliza o modelo de MapReduce que também irá ser abordado a seguir.
Como citado acima, para processar estes dados, são utilizados clusters, que são máquinas ligadas em conjunto para processar a mesma atividade, visando ganho de desempenho. E como já sabemos, as aplicações aqui citadas são sempre acompanhadas de grandes volumes de dados, assim sendo necessário a utilização destes clusters para um processamento mais veloz. Porém, para quem tiver interesse em estudar mais sobre o assunto não se assuste, pois o arcabouço Apache Hadoop oferece um modo de execução que simula um cluster em sua máquina, não sendo necessário a utilização de um cluster real.
Sobre o modelo MapReduce, buscaremos exemplificá-lo para você. Este foi proposto por Jeffrey Dean e Sanjay Ghemawat em 2004. Os algoritmos utilizados no MapReduce permitem o tratamento de dados intensivos em um sistema de arquivos distribuído, a abstração do paralelismo de tarefas e o controle de falhas. A figura a seguir demonstra brevemente como é feito o processamento de dados utilizando utilizando como exemplo a famosa aplicação do Word Count.
Começamos o processamento a partir de uma base de dados armazenados no HDFS (Hadoop Distributed File System). A seguir ocorre um tarefa Map, onde temos como saída tuplas <chave,valor>. Nessa fase, os chaves são todas as palavras existem na base de dados acompanhadas do valor 1. Após isso, ocorre um sort (ordenação) destas tuplas, onde são agrupados as tuplas semelhantes produzidas na fase de Map. Por fim na fase de reduce, temos outra tupla contendo a chave e o valor, que neste caso é a soma dos valores das chaves semelhantes, gerando assim um valor final que é a quantidade de vezes que cada palavra apareceu.
É claro que esta é uma visão muito superficial e se você tem interesse em saber mais sobre o assunto, será deixado uma série de links relacionados. Além disso, todos os interessados no assunto podem entrar em contato com o grupo Pet-SI através do facebook se desejarem conhecer mais sobre o assunto.
Referências e Links úteis
1 – Conceitos – https://goo.gl/x9d7Va – https://goo.gl/c3PXsB
2- Cases de Sucesso – https://goo.gl/oPLazC
3 – Apache Hadoop – https://goo.gl/tnkf
4 – Portal de Big Data – https://goo.gl/VjVSxA
Avaliação
Antes de você partir gostaria de pedir sua ajuda para avaliar nossa atividade, é com sua colaboração que o grupo PET-SI vai melhorar ainda mais os conteúdos aqui abordados. Por favor, preencha o formulário neste LINK e nos ajude <3