Big Data: uma visão geral

O advento da era digital foi acompanhado pela geração de informações em um nível jamais observado antes. Grandes quantidades de dados são produzidas por pessoas e organizações ao redor do globo em um ritmo alucinante, criando com isto uma série de oportunidades passíveis de exploração. Contudo, a manipulação deste tipo de conteúdo representa um grande desafio, uma vez que boa parte do mesmo se encontra em um formato não-estruturado e que não está adequado à utilização com tecnologias computacionais tradicionais (como SGBDs relacionais, por exemplo).

A estes volumes gigantescos de dados se convencionou chamar Big Data. Gigantes da Internet como Google, Yahoo e Facebook foram os pioneiros na implementação de soluções neste segmento, combinando para isto técnicas como o uso de bancos de dados NoSQL (acrônimo de “Not Only SQL”) e algoritmos para processamento paralelo de quantidades massivas de dados. Redes sociais, companhias de e-commerce, corporações financeiras, institutos de pesquisa avançada e, até mesmo, instituições governamentais constituem ótimos cases nos quais projetos desenvolvidos em torno desta nova ideia vêm ganhando força.

Do ponto de vista de conceitual, o termo Big Data pode ser melhor compreendido levando em conta as seguintes características (conhecidas como “Vs”):

  • Volume: a quantidade de dados considerada para uma solução nesta área vai muito além dos gigabytes (10 ^ 9 bytes) manipulados por aplicações mais convencionais. Soluções típicas de Big Data podem surgir visando o processamento de conteúdos que se iniciam na casa dos terabytes (10 ^ 12 bytes) e petabytes (10 ^ 15 bytes). A noção de volume é bastante relativa, já que aquilo é caracterizado como Big Data hoje pode deixar de sê-lo num futuro próximo;
  • Velocidade: engloba os tempos para processamento de grandes conjuntos de informações (throughput) e da geração de análises a partir destes últimos (latência);
  • Variedade: as informações que servem de base para um projeto de Big Data podem ser originárias das mais variadas fontes. Há tanto a possibilidade de utilização de dados estruturados (embora isto represente na atualidade uma minoria), quanto semi-estruturados (logs, registros de sensores eletrônicos) ou ainda, não-estruturados (e-mails, mídias sociais, documentos eletrônicos, áudio, vídeo, imagens, etc.);
  • Veracidade: nem sempre o trabalho com dados semi ou não-estruturados implica em exatidão absoluta. Levando em consideração tal fato, a implementação de projetos de Big Data deverá estabelecer critérios para se medir a qualidade das informações manipuladas;
  • Valor: em última instância, a justificativa para a construção de uma solução de Big Data deve estar no valor que a mesma é capaz de gerar ao negócio.

A esmagadora maioria das aplicações de Big Data desenvolvidas atualmente é construída a partir de projetos open source, sendo que o principal destes é o Apache Hadoop. Concebido inicialmente por profissionais alocados no Yahoo, o Hadoop é uma plataforma livre para processamento paralelo de grandes volumes de dados. Este framework adota um ainda modelo de programação distribuída conhecido como MapReduce (este último teve por inspiração os esforços da Google na construção de seu mecanismo de busca).

Outras soluções open source também podem ser utilizadas em conjunto com o Hadoop:

  • O Apache Hive seria uma destas alternativas. Este projeto conta com mecanismos para a consulta e manipulação de grandes volumes de dados, fazendo uso para isto do recurso HiveQL (o qual permite a codificação de instruções para o acesso a dados em uma forma simplificada, seguindo para tanto uma sintaxe próxima ao padrão SQL);
  • O Apache Pig, que possibilita a implementação de programas em conformidade com o modelo de MapReduce;
  • O Apache Hbase, banco de dados NoSQL utilizado como default dentro do ecossistema Hadoop.

Grandes empresas da área de cloud computing já oferecem inclusive soluções baseadas no Apache Hadoop, como a Microsoft (através de uma implementação específica dentro do Azure chamada HDInsight) e a Amazon (por meio do serviço Amazon Elastic MapReduce/EMR, um dos componentes que integram a plataforma Amazon Web Services).

No caso específico da Microsoft, a arquitetura utilizada no serviço HDInsight pode causar uma grande estranheza num primeiro instante (Figura 1). Basicamente, a razão para “prováveis sustos” está no fato de que vários módulos que compõem o Hadoop foram construídos em Java; a consequência direta disto está na obrigatoriedade do uso de máquinas virtuais com uma JVM (Java Virtual Machine) instalada. Independentemente de toda a discussão que isto é capaz de gerar, a Microsoft certamente trilhou tal caminho ao enxergar a maturidade e todas as potencialidades oferecidas pelo projeto Hadoop.

bigdata-visaogeral-01
Figura 1: HDInsight – Implementação Hadoop da Microsoft (Fonte: Microsoft)

Conclusão

Procurei com este artigo apresentar uma visão geral a respeito de Big Data. As ideias e tecnologias relacionadas a este conceito ainda estão se consolidando, haja visto a procura recente do mercado por aplicações voltadas a este nicho.

Espero que o conteúdo aqui apresentado tenha sido útil.

Até uma próxima oportunidade!

Renato Groffe – Consultor em TI, MCTS
http://rgroffe.wordpress.com/


Referências

Apache Hadoop
http://hadoop.apache.org/

Apache Hbase
http://hbase.apache.org/

Apache Hive
https://hive.apache.org/

Apache Pig
http://pig.apache.org/

Hadoop and HDInsight: Big Data in Windows Azure
http://msdn.microsoft.com/en-us/magazine/dn385705.aspx

Understanding Microsoft big data solutions
http://msdn.microsoft.com/en-us/library/dn749804.aspx

  • http://marciopmm.blogspot.com Marcio Paulo Mello Martins

    Parabéns, Renato! Ótimo artigo! Uma excelente introdução ao mundo dos “dados colossais”!

    • Renato Groffe

      Obrigado Marcio!

      É assunto que comecei a ter contato agora, na minha pós.

      Embora esteja ainda começando, a área é bastante promissora. Para quem gosta de programação acaba sendo um prato cheio, já que envolve várias tecnologias e uma nova forma de se pensar sobre como armazenar e manipular dados.

      Abs

  • https://wenndersantos.wordpress.com/ Wennder Santos

    Fala Renato, tudo bom?
    Como sempre um ótimo artigo, parabéns!

    Wennder Santos

    • Renato Groffe

      Obrigado pelo feedback Wennder!

  • http://cleytonferrari.com/ Cleyton Ferrari

    Muito bom Renato, esse hadoop e os outros ai, só tinha ouvido falar, eu não tinha noção desse ecossistema todo! Muito bom! E pra brincar com isso? Já viu alguma coisa?

  • Erick Wendell

    Muito bom mano, parabéns !

    • Renato Groffe

      Valeu Erick!