Conteúdo


Derivando Novos Insights Empresariais com o Big Data

Comments

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
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 para download


Temas relacionados


Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

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