Derivando Novos Insights Empresariais com o Big Data

Recursos emergentes para processar grandes quantidades de dados estão provocando mudanças nos panoramas tecnológico e empresarial. Este artigo examina os motivadores, o novo panorama e as oportunidades disponíveis para a analítica com o Apache Hadoop.

Stephen Watt, Certified IT Architect, IBM

Stephen WattStephen Watt é arquiteto de software e trabalha em tecnologias emergentes na organização IBM Software Group Strategy, no laboratório em Austin, Texas, EUA. Antes de trabalhar para IBM, ele atuou vários anos como consultor no Oriente Médio e trabalhando para novas empresas nos Estados Unidos e na África do Sul, onde nasceu. Publicou vários artigos e livros técnicos pela Wrox Press e IBM developerWorks.



30/Ago/2013

Motivadores de mercado

Nos últimos anos, a web e as empresas presenciaram uma explosão de dados. Vários fatores contribuem para esse fenômeno, como a comoditização de hardware de armazenamento barato na escala de terabytes, o fato dos dados corporativos aproximarem-se da massa crítica com o passar do tempo e os padrões que permitem fornecer e trocar informações facilmente.

Do ponto de vista corporativo, é cada vez mais difícil armazenar todas essas informações em bancos de dados relacionais tradicionais e, até mesmo, em armazéns de dados. Esses problemas estão suscitando algumas dúvidas difíceis a respeito de práticas que vêm sendo usadas há anos. Por exemplo, como fazer uma consulta em uma tabela que tem um bilhão de linhas? Como executar uma consulta em todos os logs de todos os servidores de um datacenter? Para complicar ainda mais, uma boa parte das informações que devem ser processadas está na forma de texto não estruturado ou semiestruturado, difícil de consultar.

Quando a quantidade de dados é grande, uma das limitações de processamento é o tempo necessário para mover os dados. O Apache Hadoop surgiu para tratar dessas questões, com sua abordagem exclusiva de mover o trabalho para os dados, e não o contrário. Hadoop é uma tecnologia de cluster formada por dois tempos de execução separados, mas integrados: o Hadoop Distributed File System (HDFS), que fornece armazenamento redundante de dados, e o mapeamento/redução, que permite que as tarefas enviadas pelo usuário executem em paralelo, processando os dados armazenados no HDFS. Embora o Hadoop não seja adequado para todos os cenários, ele fornece benefícios evidentes de desempenho. Ao usar o Hadoop, a comunidade descobriu que ele não só permitia o processamento de dados em escala, mas também abriu a porta para o potencial de todo tipo de analítica interessante.

Com o Hadoop, podemos escalar linearmente os clusters que executam em hardware padrão para incorporar conjuntos de dados maiores e mais ricos. Esses conjuntos de dados estão abrindo novas perspectivas. Primeiramente, executando analítica em fontes de dados heterogêneas que antes não podiam ser incorporadas e, em seguida, executando a analítica nessa mesma fonte de dados em escala. O resultado disso, de certa forma, é uma mudança de paradigma, descrita por Flip Kromer, cofundador da InfoChimps: "A web está evoluindo de um lugar onde era possível encontrar alguma coisa sobre tudo, para um lugar onde se pode encontrar tudo sobre alguma coisa". Kromer cita o cenário em que, ao longo do tempo, os fãs de beisebol capturaram resultados detalhados (detalhes dos jogadores, placar, locais dos estádios) de todos os jogos nos últimos 100 anos. Se alguém juntasse esse conjunto de dados com os valores das localidades compartilhadas de todas as estações meteorológicas durante o mesmo período de tempo, seria possível prever estatisticamente qual seria o desempenho de um lançador de 38 anos em Wrigley Field a uma temperatura superior a 35 °C.


O ecossistema do Big Data

É importante ressaltar que, pelo fato do Big Data ser relativamente novo, existem algumas barreiras tecnológicas para o aproveitamento dessas oportunidades. Como já foi mencionado, no Hadoop os dados são processados na forma de "tarefas", que são escritas na linguagem de programação Java™ usando um paradigma conhecido como mapeamento/redução. Embora haja contribuições ao Hadoop que permitem o uso de outras linguagens, ainda é um processo complicado entender como analisar os problemas empresariais e decompô-los em soluções que executam como tarefas de mapeamento/redução.

Para realmente aproveitar as oportunidades do Hadoop, é necessário que exista uma ampla variedade de tecnologias que possibilitam a retirada do Hadoop da área dos desenvolvedores, tornando-o mais acessível a um público mais amplo.

Figura 1. Visão geral do ecossistema do Big Data
Visão geral do ecossistema do Big Data

Surgiu um ecossistema que fornece o conjunto de ferramentas e o suporte necessários para o Hadoop. Cada componente trabalha com os outros para fornecer uma variedade de abordagens, como mostrado abaixo, para cobrir a maioria dos cenários dos usuários.

Conjunto de ferramentas de carregamento

Para usar o Hadoop para analisar os dados, é necessário colocar os dados no HDFS. Para fazer isso, é necessário usar o conjunto de ferramentas de carregamento. O Hadoop propriamente dito fornece a capacidade de copiar arquivos do sistema de arquivos para o HDFS e vice-versa. Em cenários mais complexos, é possível aproveitar coisas como o Sqoop (veja Recursos), uma ferramenta de importação de banco de dados de SQL para HDFS. Outra forma de conjunto de ferramentas de carregamento seria um crawler da web, como o Apache Nutch, que faz crawl em websites específicos e armazena as páginas da web no HDFS, para que o conteúdo da web esteja disponível para qualquer analítica que você queira fazer.

Os dados em tempo real são outra possível fonte de informações. É possível usar tecnologias como Twitter4J para conectar-se à API Twitter Streaming e persistir os tweets diretamente no HDFS, no formato JSON.

Os casos de uso típicos da analítica do Big Data normalmente envolvem a consulta de vários conjuntos de dados juntos. Muitas vezes, os conjuntos de dados vêm de fontes diferentes: geralmente, uma mistura de dados já disponíveis na empresa (internos) e dados obtidos da web (externos). Os arquivos de log de um datacenter são um exemplo de informações internas; os websites que passaram pelo processo de crawl ou um conjunto de dados que tenha sido transferido por download a partir de um catálogo de dados são exemplos de informações externas.

Catálogos de dados

Os catálogos de dados oferecem o recurso, muito necessário, de procurar conjuntos de dados. Você só percebe como é difícil localizar conjuntos de dados grandes depois de tentar fazer buscas neles, principalmente os que se enquadram nos cenários analíticos específicos que você está tentando executar. Normalmente, os usuários são obrigados a fazer crawl na web ou minerar sites de mídia social para desenvolver os seus próprios conjuntos. Você poupará muito tempo se puder simplesmente localizar um conjunto de dados estruturado já existente em um tópico do seu interesse e fazer o download. Empresas como InfoChimps fornecem catálogos consolidados nos quais é possível localizar conjuntos de dados específicos por categoria ou pesquisar. O Amazon Public Data Sets é outro exemplo de catálogo de dados.

Conjunto de ferramentas de analítica

Para usar o Hadoop sozinho para executar analítica nos dados armazenados no HDFS, normalmente é necessário ter a aptidão de desenvolvedor para escrever as tarefas na linguagem Java usando a API de mapeamento/redução do Hadoop. Para os que trabalham diretamente com as APIs, é possível usar ferramentas como KarmaSphere Studio in Eclipse (veja Recursos) para obter os ganhos de produtividade de um IDE específico para Hadoop. Há alternativas para usar outras linguagens com Hadoop Streaming e Hadoop Pipes, mas essas também requerem a aptidão de um desenvolvedor. Esse fato gerou a oportunidade da criação de abordagens menos complexas para definir e executar tarefas de mapeamento/redução.

Os que estão familiarizados com shell script e UNIX® Pipes podem considerar a hipótese de usar WuKong (veja Recursos), que permite desenvolver e executar tarefas usando Ruby e shell scripts. Apache Pig e Hive (veja Recursos) são duas tecnologias interessantes para o analista de dados, já que fornecem uma interface de consulta semelhante a SQL, na qual o usuário pode expressar a forma de desenvolver e executar a analítica de uma determinada tarefa por meio de linguagens de ordem mais alta. Outra abordagem mais voltada para o analista de negócios é o IBM® BigSheets (veja Recursos), que fornece uma metáfora visual baseada em navegador, semelhante a uma planilha, para definir, executar e visualizar tarefas analíticas.

Normalmente, todas as abordagens usam extensões, também conhecidas como funções definidas pelo usuário ou macros, que pegam os dados de entrada e injetam um pouco de estrutura neles (de forma semântica ou explícita), para que seja possível tratar as informações e consultá-las em uma forma semelhante aos métodos analíticos tradicionais. O conjunto de ferramentas de analítica está estreitamente relacionado ao conjunto de ferramentas de exportação, já que este é absolutamente necessário para realmente poder fazer alguma coisa útil com os dados depois de executar a analítica.

Conjunto de ferramentas de exportação

Ao fazer uma pergunta para o Big Data (a sua analítica), você tende a obter uma resposta do Big Data (o conjunto de dados resultante). Frequentemente, a resposta é tão grande que não é compreensível nem legível para pessoas. Nesse caso, fornecer os resultados como uma visualização pode ser uma solução. Por exemplo, uma nuvem de tag pode filtrar um grande conjunto de resultados para permitir que uma pessoa reconheça instantaneamente certas áreas de valor nos dados. Outra abordagem possível é exportar o conjunto de dados em um formato específico, como JSON, CSV, TSV ou ATOM, para que possa ser consumido por um aplicativo para uso. Visualizações interessantes são razoavelmente comuns, mas geralmente não é possível conectá-las ao conjunto de ferramentas existente no Hadoop. Trata-se de um espaço emergente no qual provavelmente haverá inovações nos próximos meses.

Apache Hadoop

Apache Hadoop é o núcleo do ecossistema. É onde todos os dados residem. Uma das restrições específicas desse ecossistema é o fato de que o Big Data gosta de estar em repouso. Esse fato pode adicionar uma grande latência aos esforços de computação para mover grandes quantidades de dados; é por isso que o mapeamento/redução é tão eficiente, pois passa o trabalho para os dados. Devido à sua capacidade de ser escalável horizontal e linearmente, o Hadoop também é uma opção viável na nuvem, já que é possível fornecer um cluster de Hadoop, copiar os dados, executar a tarefa, recuperar a saída e desatribuir o cluster assim que o trabalho estiver concluído. Isso representa uma economia de custos significativa, comparada à compra e manutenção do hardware para tarefas que são executadas intermitentemente.


BigSheets

Para quem está interessado em analítica, mas não é programador, o InfoSphere BigInsights é um novo portfólio de produtos IBM que contém uma visualização tecnológica chamada BigSheets (veja Recursos). O BigSheets fornece uma interface visual interessante para reunir, analisar e explorar dados em grande escala. O BigSheets é uma ferramenta bastante abrangente, pois fornece um conjunto de ferramentas de carregamento, analítica e exportação fácil de configurar e baseado em Apache Hadoop.


Conclusão

Analisamos o dilúvio de dados na atualidade e como a comunidade de software livre está tratando desses problemas com o projeto Apache Hadoop. Também analisamos as oportunidades interessantes de derivar novos insights com o Big Data e alguns conjuntos de ferramentas patenteados e de software livre no ecossistema que surgiu devido ao Apache Hadoop.

As pessoas que querem ter um entendimento mais detalhado do Hadoop não podem perder "Computação Distribuída com Linux e Hadoop" (veja Recursos) e devem experimentar o exemplo de WordCount (o equivalente do Hello World para o mapeamento/redução) descrito em detalhes no wiki do projeto Apache Hadoop.

As pessoas que querem uma introdução mais simples à analítica devem experimentar o Apache Pig (veja Recursos) e usar os tutoriais no wiki do projeto.

Recursos

Aprender

Obter produtos e tecnologias

  • Obtenha a distribuição padrão do Apache Hadoop.
  • Faça download do IBM InfoSphere BigInsights Basic Edition sem nenhum custo e desenvolva uma solução que transforme volumes grandes e complexos de dados em insight pela combinação do Apache Hadoop com tecnologias e recursos exclusivos da IBM.
  • Obtenha o Sqoop, a ferramenta de importação de banco de dados de SQL para Hadoop.
  • Faça download do Hive.
  • Confira o Wukong.
  • Inove em seu próximo projeto de desenvolvimento de software livre com o software de avaliação da IBM, disponível para download ou em DVD.
  • Faça download das versões de avaliação de produto IBM ou explore as avaliações online no IBM SOA Sandbox e use as ferramentas de desenvolvimento de aplicativos e produtos de middleware do DB2®, Lotus®, Rational®, Tivoli® e WebSphere®.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre
ArticleID=942115
ArticleTitle=Derivando Novos Insights Empresariais com o Big Data
publish-date=08302013