Concrete Logo
Hamburger button

Uma pequena introdução a Big Data

  • Blog
  • 2 de Junho de 2017
Share

Há algum tempo, conversei com o Wesley Silva, nosso gerente do Capítulo de DevOps em São Paulo, sobre Big Data. A conversa para o ProdCast (que você pode ouvir aqui) foi tão legal que eu decidi colocar também um post aqui no Blog sobre o assunto. Já adianto que a resposta sobre “o que é” Big Data você não vai achar aqui, porque não existe uma resposta exata para isso, mas vou tentar explicar algumas coisas para você que quer começar a entender melhor esse “big” mundo.

Para começar, você sabe o que são dados, certo? Informações diversas que podem ser organizadas de muitas maneiras diferentes. Há muito tempo existe uma ciência chamada de “Data Science” ou “Ciência dos Dados” para tratar de como lidar com esses dados, envolvendo estatística, matemática e mais uma porção de disciplinas. Recentemente, porém, surgem cada vez mais dados. Da internet, principalmente, mas de muitos lugares. Hoje, por exemplo, estima-se que temos aproximadamente quatro devices por pessoa no mundo conectados à internet (e enviando dados). Em apenas um minuto, 4 milhões de vídeos são vistos no Youtube, 29 milhões de mensagens são trocadas via Whatsapp, mais que 80 horas de Netflix são assistidas. É muito dado!

E olha que nem falei de IoT e fazendas inteligentes com sensores que capturam temperatura da terra, tempo de crescimento de determinada planta, umidade… Enfim. É muito dado.

E aí, quando você tem um problema que envolve Volume, Velocidade, Variedade, Veracidade e Valor de dados, você precisa trabalhar com Big Data. Esses são os 5 V’s, que podem ser também três ou sete ou nove dependendo da sua referência, mas que são todas variáveis que envolvem a análise e o tratamento de dados.

Ou seja, se você tem muito volume de dados, você tem um problema de Big Data. Dados que precisam ser transmitidos em velocidade muito rápida, Big Data. Dados com muita variedade? Big Data. Em resumo, você tem um problema de Big Data quando não consegue resolver uma certa demanda relacionada a grandes quantidades de dados usando as mesmas ferramentas e processos usados para problemas tradicionais.

Ok, agora que você já entendeu para que serve o Big Data, como é a gente lida com tudo isso? Você precisa ingerir, transferir, armazenar e processar esses dados. Então não dá para usar uma tabelinha no excel, como se fosse um problema simples. A primeira coisa que você precisa saber é que neste contexto, cloud computing não é mais uma opção, é uma obrigação. A não ser que você tenha muito (e muito) dinheiro para ter Data Centers gigantescos (e mesmo assim, isso seria um desperdício de dinheiro dependendo da forma como ele fosse utilizado), você precisa trabalhar com cloud para conseguir paralelizar as demandas, distribuindo a carga entre dezenas, centenas ou até mesmo milhares de computadores.

Dito isso, você precisa trabalhar também com plataformas de Processamento Massivo Paralelo (PMP), como por exemplo o Hadoop. Essas ferramentas transformam um bloco gigante de dados em arquivos menores e distribui em máquinas diferentes que processam esses dados ao mesmo tempo, ou seja, em paralelo. No final, sai tudo consolidado de alguma forma para dizer como foi esse processamento.

Dentro desses PMPs, você também pode classificar as ferramentas de acordo com o tipo de resposta que você precisa, e aí existem o Batch e o Streaming.

Se você precisa de uma resposta imediata, você usa o Streaming. Um exemplo é o Waze, que recebe informações de usuários e tem que repassar imediatamente para outro usuário que está na mesma rua que ele. Esse tipo de processamento é mais caro, porque você tem que dar uma resposta rápida. E existem diversas ferramentas para trabalhar dessa forma, como as soluções da Cloudera, Spark Streaming, Kinesis da Amazon, e muitas outras.

O Batch, por sua vez, é mais barato, pois é feito em lotes. Um exemplo é o imposto de renda. A Receita Federal recebe uma declaração de cada pessoa e tem que relacionar com informações de diversas outras pessoas e/ou empresas, mas não precisa dar uma resposta imediata, isso pode ser feito aos poucos, em lotes. Além do Hadoop, que usa o HDFS com jobs Mapreduce, há ferramentas como Sqoop, muito eficientes para demandas batch.

Quando falamos de Big Data, as ferramentas de bancos de dados também precisam ser adequadas. É aí que entram os bancos de dados distribuídos, em substituição aos bancos de dados relacionais, ou tradicionais. Enquanto estes últimos não permitem escalar horizontalmente, ou seja, que vários grupos de dados sejam tratados em diversas máquinas em diversos lugares, os bancos de dados NoSQL facilitam essa questão pra você. Como exemplo temos o Cassandra ou o MongoDB, e isso é possível graças ao Teorema CAP. Não existe almoço grátis. Estes bancos sacrificam algumas características para garantir a escalabilidade e velocidade.

Ufa! E o que as empresas ganham com esse monte de ferramentas? Você! Eu, e todo mundo. É com esse tipo de tecnologia que as empresas sabem os lugares que você visitou, o tipo de música ou filme que você gosta e o que você comprou no último mês. Com isso, suas ofertas são personalizadas, e elas conseguem muito mais conversões. E não é só de e-commerce que eu falo. O Netflix, por exemplo, tem baseado as suas últimas produções nas estrelinhas que você dá aos filmes e séries. Legal, não? As máquinas aprendem com esses dados, e oferecem soluções cada vez mais organizadas. É o que chamamos de “machine learning”, mas isso é assunto para outro post. =)

Ficou alguma dúvida ou tem algo a dizer? Aproveite os campos abaixo! Até a próxima.