Concrete Logo
Hamburger button

Big Data, Big Hype

  • Blog
  • 3 de Dezembro de 2012
Share

Este post pode não parecer mas é uma sequência da série começada com os artigos sobre MapReduce:

Big Data, Big Hype, só se fala nisto. E nós tínhamos prometido falar também.

Só que é preciso colocar os pés no chão antes de seguir feito carneirinho manchetes e artigos como estes abaixo. Foram todos retirados de uma pesquisa rápida no Google (não leiam os artigos, bastam as manchetes):

Introdução

O que é mesmo Big Data? Quando o volume de dados pode realmente ser considerado grande?

Há duas definições às quais vou me restringir:

    1. Estamos diante de um problema de Big Data quando o tamanho dos dados faz parte do problema.

    2. Quando vamos fazer alguma coisa com os dados e eles não cabem na memória, pode ser que para os nossos algoritmos, os nossos dados já possam ser chamados de Big Data.

Fiz questão de incluir o que está em 2. porque é importante ter em mente que dados só fazem sentido se os entendermos e soubermos o que fazer com eles.

Vou repetir abaixo bem grande para não ficar nenhuma dúvida:

    Seus dados não servem para nada até que você saiba como tirar informações deles

Como sempre e isto vale para tudo na nossa área, é preciso concentrar os pensamentos em cima do problema, ao invés de logo achar que existe um framework específico, algum produto caríssimo ou alguma mandinga que resolverá tudo para você.

Este sempre foi um dos males da nossa área e motivo porque muitas empresas enriqueceram. Alguém criava um hype, um outro o descrevia como muito complexo, alguma empresa criava um servidor miraculoso, vendia por milhões, obviamente não resolvia todos os problemas e nós desenvolvedores ficávamos com fama de incompetentes.

    Historinha antiga

    Nunca vou me esquecer de um almoço que participei, lá pelos idos de 2003, ainda nos tempos em que a Sun empurrrava EJBs 2.x como a última bolacha do pacote.

    Estava com um diretor da empresa em que trabalhava e mais dois diretores de um banco. Estes últimos passaram o almoço inteiro rindo às gargalhadas dos bancos concorrentes que tinham gasto milhões de dólares comprando servidores de nomes webpomposos de empresas famosas, que depois de um ano e muita grana investida, nenhum sistema estava resolvendo coisa nenhuma.

    Eles diziam: Java? Isto é uma piada, puro 171. E riam. Eu, programador java apaixonado, não me lembro de outra oportunidade de ter passado um almoço inteiro sem dizer uma única palavra.

Então, sempre que vejo um hype novo, mesmo acreditando que realmente se trata de coisa importante, fico logo com medo do momento de lançamento dos pacotões “cura gripe, lumbago e espinhela caída” com toneladas de XML.

Bom, passado meu momento de introspeção pessoal, bora voltar ao BigData.

Como tirar informações de BigData

Neste blog já sairam vários textos sobre Machine Learning. Neste post com intuito de desmistificar um pouco o hype BigData, vou justamente dizer que muitas e muitas vezes não precisamos de um cientista de dados pós graduado em estatística para extrair informações importantes.

Uma das fontes que uso para aprender Machine Learning é a Hilary Mason, cientista chefe no bit.ly.

Ela diz que muitas vezes ninguém precisa usar nenhum tipo de armazenamento sofisticado para tratar casos de Machine Learning sobre arquivos grandes de dados. Muitas vezes basta um arquivo .txt ou .csv.

E vai além. Diz que as primeiras ferramentas que devemos experimentar são as de linha de comando do Linux:

    cat, grep, head, tail, awk, find, xargs, sort e wc.

    E não esquecer recursos gráficos do gnuplot.

Vocês sabem que sou fã de Machine Learning. Já até dei palestra sobre isto. Mas vou contar o caso do Linkedin justamente para mostrar que nem sempre se necessita de muita matemática para fazer um sistema de recomendação:

    O Linkedin pensou em contratar uma equipe de cientistas de dados para fazer seu sistema de recomendação. Provavelmente gastaria uma boa grana e depois de um certo tempo alcançaria bons resultados.

    Ocorre que eles já tinham no sistema a faculdade onde estudaram uma grande parte dos cadastrados. Então simplesmente agregaram os que estudaram na mesma escola para fazer as recomendações de contato.

O Gmail também não precisa de nenhum recurso sofisticado quando monta sua priority box. Simplesmente pergunta ao usuário o que é importante para ele.

Então que não vale a pena estudar estatística?

Não é porque o Linkedin resolveu seus problemas sem ajuda dos chamados cientistas de dados que todo mundo vai conseguir o mesmo.

Como enfatizamos no parágrafo final de MapReduce – parte III, estatística pode fazer parte das habilidades requeridas pelos próximos “sexy jobs”.

Segundo a figura abaixo tirada do site indeed.com, há uma procura crescente por gente que conheça Machine Learning e Data Analytics:

jobgraph-ML-DA

O mesmo site aponta um crescimento nos salários (que já são superiores a um programador comum) (*):

trends

    Um detalhe que me chamou a atenção é que os maiores salários são para a área de Text Mining Machine Learning.

Então, não desanimem. Conhecer estatística é mais uma oportunidade de crescimento profissional.

Mas atentem para o que diz a Hilary Mason em bitly’s Hilary Mason on “What is A Data Scientist? (este sim um artigo que vale dar uma olhada).

Para ela o perfil ideal é a junção de engineering (saber fazer as perguntas) + math and statistics (saber onde como pode responder) + comp sci (saber como automatizar via computador) + hacking (get things done).

A figura abaixo veio do artigo dela:

Hilary Mason Awesome Nerds

Voltando ao BigData. E se os dados não couberem em um só computador?

Aí, então… e somente neste caso… você precisa procurar outras alternativas mais estapafúrdias e heterodoxas.

Neste caso o Hadoop pode servir para alguma coisa. Só que é preciso lembrar que o Hadoop é um framework de MapReduce e não é fácil usar os algoritmos tradicionais de Machine Learning sob o modelo de programação MapReduce.

Então, se você tem um problema grande em que é viável usar MapReduce, valerá a pena continuar seguindo esta série porque os próximos posts tratarão justamente do Hadoop e do seu ecosistema.

Mas se você quer saber mais e apenas experimentar o Hadoop, será muito bem-vindo.