Like A Girl

Pushing the conversation on gender equality.

Code Like A Girl

Big Data o futuro é agora

Nos dias atuais ouve-se muito sobre o termo Big Data, um exemplo recente de notícia de Big data foi a aquisição da Whole Foods pela Amazon, onde o objetivo na verdade era adquirir dados melhores e mais robustos para construir a próxima geração de inovações de varejo. Empresas como Nike, Danone, Netflix entre outras usam o Big Data para alavancar seus negócios. Bem próximo da nossa realidade a prefeitura do Rio de Janeiro usa Big Data cruzando extensas bases de dados para identificar regiões e horários em que há uma ocorrência maior de acidentes de trânsito e poder tomar medidas de precações. Até mesmo o plano para reduzir os casos de dengue no município contou com a ajuda do Big Data. Com o avanço da tecnologia, hoje é possível para pequenas e médias empresas utilizar o Big data com facilidade e com baixo custo. O potencial do Big data é enorme, porém muitas dúvidas de conceitos ainda existem. Eu como cientista da computação me interessei pelo assunto, e lá fui eu novamente desbravar novos horizontes .

Começando do básico, de forma simples a tradução de Big Data é “grandes dados”. São o volume e a variedade cada vez maior de dados criado pela sociedade e que vão se multiplicando a cada dia que passa na internet.

Big Data consiste em uma combinação de 5vs: volume, variedade, velocidade, veracidade e valor, conforme abaixo:

· Volume consiste em todos os dados gerados diariamente na internet como por exemplo: redes sociais, transações bancárias, e-mails etc.

· Variedade é a diversidade de tipos de dados como áudio, vídeo e texto.

· Velocidade em que esses dados são gerados diariamente e que precisam ser analisados em real time para obtenção de resultados.

· Veracidade os dados devem fazer sentido, ser autênticos.

· Valor são os insights que surgem para o negócio a partir da análise de dados.

Através da análise do Big Data é possível adquirir insights valiosos acerca das tendências de mercado, comportamento dos consumidores e suas expectativas, entre outros, gerando suporte para tomadas de decisões de negócios. Para isso existe uma metodologia específica para projetos de Mineração de dados que se chama CRISP-DM (O Cross Industry Standard Process for Data Mining). Seguem suas etapas:

1- Entendimento do negócio: Compreensão dos objetivos e requisitos do projeto de uma perspectiva de negócios.

2- Compreensão dos dados: Buscar, coletar e armazenar dados que trazem valor ao negócio, que sejam relevantes para decifrar o problema. O armazenamento é composto de dados relacionais, que são estruturados em linhas e colunas num banco de dados tradicional, somados a uma maioria de dados não relacionais que não são estruturados em linhas e colunas, ou seja, não são gerados de maneira padronizada e organizada para um banco de dados tradicional, são exemplos fotos, vídeos, áudios etc. Isso implica que é necessário uma solução NoSql (Not only SQL) (Não apenas SQL) com um componente de indexação para esses dados não estruturados, como por exemplo o Hadoop que tem vários componentes.

3- Preparação dos dados: As tarefas incluem preparar as tabelas, registro e seleção de atributos, além de transformação dos dados não estruturados em dados estruturados e limpeza de dados para ferramentas de modelagem.

4- Modelagem: construir um modelo, através de algoritmos com modelos estatísticos e/ou Machine learning (aprendizado de máquina com algoritmos e inteligência artificial). Nesta fase, várias técnicas de modelagem são selecionadas e aplicadas, e seus parâmetros são calibrados para valores ótimos. Normalmente, existem várias técnicas para o mesmo tipo de problema de mineração de dados. Algumas técnicas têm requisitos específicos sobre a forma de dados. Portanto, retornar à fase de preparação de dados é muitas vezes necessário. E nessa fase que os especialistas interpretam os resultados e se tem os insights para os negócios.É aqui que entra o trabalho dos cientistas de Dados que são especialistas analíticos com as habilidades técnicas para resolver problemas complexos.

5- Avaliação: Analisar os dados existentes, avaliar melhor o modelo e analisar as etapas executadas para construir o modelo, para ter certeza de que ele atinge adequadamente os objetivos comerciais. Um dos principais objetivos é determinar se há alguma questão comercial importante que não foi suficientemente considerada. Nessa fase é feito o acompanhamento dos resultados objetivos e a avaliação da aplicabilidade confiável dos insights e conhecimentos obtidos.

6- Desenvolvimento: Todo o conhecimento que for obtido por meio do trabalho de mineração e modelagem agora poderá ser aplicado de forma prática. O ideal aqui é dar uma entrega mais palpável e aplicável ao cliente a partir das análises dos dados feitas pela equipe. Algumas das expectativas que se pode ter a partir deste passo é a mudança de processos da empresa ou criação de novos produtos. Aqui é preciso pensar em softwares de visualização e comunicação para reportar os achados. Essa etapa muitas vezes envolve a aplicação de modelos “ao vivo” dentro de um processo decisório de uma organização, por exemplo, em tempo real de personalização da página Web. Dependendo dos requisitos, a fase de desenvolvimento pode ser tão simples como gerar um relatório ou tão complexo como fazer um processo de cruzamento repetido de mineração da empresa.

Para realizar a mineração de dados através da metodologia CRISP-DM é necessário utilizar de tecnologia, e a mais revolucionário hoje se chama Hadoop, que é usada na maioria das grandes arquiteturas de dados. Hadoop é um ecossistema, ou conjunto de softwares livres da Apache para armazenamento e processamento em lote distribuído na nuvem, através de um cluster de computadores, e ele utiliza hardware comum para tudo isso. Ele realiza análise de dados dentro de um Data Warehouse (DW) além de se integrar com Business Intelligence. Ele tem uma infraestrutura confiável capaz de lidar com falhas (hardware, software e rede). A eficácia obtida pelo Hadoop pode ser constatada ao verificar a quantidade de importantes empresas de diferentes ramos que estão usando.

Para implantar um projeto Big Data utilizando o Hadoop 1.0 era complexo pois não era indicado para pessoas leigas em conhecimento sobre: a linguagem Java; projeto, implantação e manutenção de redes de computadores e administração de sistemas, isso por que o ecossistema do Hadoop 1.0 rodam in. Já o ecossistema do Hadoop 2.0 rodam on, isso quer dizer que as camadas do Hadoop 2.0 estão todas integradas e existem diversas empresas que fazem essa integração e oferecem como um serviço, elas vendem o pacote completo, vou falar mais detalhes sobre isso nesse artigo.

Os primeiros usuários do Hadoop foram limitados aos modelos de processamento baseados em MapReduce. Já o Hadoop 2.0 introduziu um novo modelo de processamento que se presta a grandes casos comuns de uso de dados, incluindo SQL interativo sobre grandes dados, aprendizado de máquina em escala e a capacidade de analisar grandes gráficos de escala de dado. Abaixo criei uma imagem mostrando cada etapa método CRISP-DM e o fluxo de realização na base Hadoop 2.0 com alguns dos principais aplicativos do seu ecossistema:

Figura 1 — CRISP-DM e Hadoop

A seguir a descrição de cada software do Hadoop para entendimento do fluxo apresentado:

2- Compreensão dos dados: buscar, coletar e armazenar

2.1 Coletar dados:

§ Sqoop: para importar e exportar para o Hadoopi dados estruturados de Oracle, Sql Server, Informix, entre outros.

§ Flume: é um serviço que basicamente permite enviar dados não estruturados diretamente para o HDFS.

§ Kafta: coleta dados de alto volume como por exemplo clicks em um web site, logs, cotações de ações etc, e torna estes dados disponíveis como um fluxo em tempo real para o consumo por outras aplicações.

§ Chukwa: Coletar, processar e analisar grande volume de logs.

2.1 Armazenar dados

§ HDFS: Sistema de arquivos replicador de dados, tolerante a falhas projetado para hardware padrão, foco em ser um armazenamento redundante e confiável.

§ Zookeeper: é um serviço que é executado em uma estrutura distribuída de nós que formam racks e clusters. Quando você coleciona, digamos 50 nós e trabalhe neles para formar um cluster e escrever algum programa para executá-los, você precisa estabelecer uma topologia, uma rede entre esses nós para que eles possam se comunicar. Com esta configuração de topologia, você precisa definir as configurações básicas para estabelecer esta topologia. Por exemplo, sincronização, serviços de grupo, nomeação, etc. Para o cluster de 50 nós, você não gostaria de redefinir cada configuração caso houvesse um problema com a configuração. Zookeeper vem ao resgate do tratamento de tais situações em grande escala. O Zookeeper também monitora as condições de corrida, problemas de correção de erros, etc., se surgir para configurações tão altas de nó.

§ Oozie: é um sistema de fluxo de trabalho/coordenação que gerencia trabalhos do Hadoop. Ele é integrado com a pilha do Hadoop e oferece suporte a trabalhos do Hadoop para o MapReduce, Pig, Hive e Sqoop. Também pode ser usado para agendar trabalhos específicos para um sistema, como programas Java ou scripts de shell.

§ YARN (Yet Another Resource Negotiator): faz gerenciamento de recursos em cluster e o processamento, ou seja, rotinas de ETL são feitos usando diferentes modelos como: Pig, Hive e MapReduce e também fornece a capacidade de executar trabalhos não MapReduce como o Spark, Hama, Giraph, Interface dos coprocessadores MPI e HBase.

§ Ambari: destina-se a tornar o gerenciamento Hadoop mais simples desenvolvendo software para provisionamento, gerenciamento e monitoramento de clusters Apache Hadoop. O Ambari fornece uma interface de usuário de gerenciamento de Hadoop intuitiva e fácil de usar.

§ SPARK — oferece um framework unificado e de fácil compreensão para gerenciar e processar Big Data com uma variedade de conjuntos de dados de diversas naturezas (por exemplo: texto, grafos, etc.), bem como de diferentes origens (batch ou streaming de dados em tempo real). Processamento de Big Data construído com foco em velocidade, facilidade de uso e análises sofisticadas. Oferece APIs de alto nível em Java, Scala e Python, bem como um conjunto de bibliotecas que o tornam capaz de trabalhar de forma integrada, em uma mesma aplicação, com SQL, streaming e análises complexas, para lidar com uma grande variedade de situações de processamento de dados. Tem a característica de usar muita memória RAM para o processamento e armazenamento. Caso não exista memória suficiente disponível, o Spark começará a utilizar o disco para armazenamento e funcionará de maneira similar ao Hadoop. O Spark usa a infraestrutura do Hadoop HDFS, mas melhora suas funcionalidades e fornece ferramentas adicionais. Por exemplo, permite a implantação de aplicativos em cluster em Hadoop v2 com YARN.

§ Storm não funciona de forma nativa sobre os aglomerados típicos de Hadoop, ele usa o Apache ZooKeeper e seus próprios processos de trabalhador para coordenar topologias. Dito isto, ambos o Yahoo! E a Hortonworks está trabalhando no fornecimento de bibliotecas para executar topologias da Tempestade em cima dos clusters Hadoop 2.x YARN.

3-Preparação dos dados

3.1 Processamento e ETL

§ MAP Reduce: Muitas vezes a fonte de informações não tem metadados explícitos, então essa análise inicial pode revelar padrões, eliminar dados desnecessários e identificar os que são relevantes para o contexto do trabalho, sendo capaz de entender se ajudará a resolver o problema que foi abordado. Foi eliminado do uso de análise de usuários finais na maior parte. Eles ainda desempenham grandes partes na transformação de dados, na aprendizagem de máquinas e em outros trabalhos de infraestrutura de dados e engenharia. Os trabalhos de ETL que fazem agregações simples, somações e valores calculados (mas em escala maciça contra milhões de registros) são adequados aqui. Deverá ter um desenvolvedor para codificar, compilar, empacotar, submeter e recuperar os resultados.

§ Pig: fornece uma linguagem de alto nível que compila em aplicativos map e reduce, torna o hadoop acessível e usável por não desenvolvedores. O PIG cria um conjunto de tarefas MAP e Reduce. É possível descrever como os dados de uma ou mais entradas devem ser lidos, processados e armazenados em uma ou mais saídas de modo paralelo. A linguagem toma uma posição intermediária entre a expressão de tarefas usando um modelo de consultas declarativo de alto nível similar à SQL e a programação procedural/de baixo nível que usa o MapReduce.

§ Hive: faz a ordenação e tradução de dados estruturados para dados não estruturados com uma interface semelhante a SQL, consulta dados armazenados em vários bancos de dados e sistemas de arquivos que se integram ao Hadoop, faz as tabelas, sem a necessidade de implementar consultas na API Java de baixo nível. Consultas tipo SQL (HiveQL), que são implicitamente convertidas em tarefas MapReduce ou Tez, ou Spark.

§ Avro: Sistema de serialização de dados para o ambiente Microsoft .NET. Serialização é o processo de tradução de estruturas de dados ou estado de objeto em um formato que possa ser armazenado por exemplo em um arquivo ou buffer de memória, ou transmitido por meio de um enlace de conexão de rede e reconstruído posteriormente no mesmo ou em outro ambiente computacional.

§ Tez — Hive e Pig usam o Tez, assim como um número crescente de aplicativos de acesso a dados de terceiros desenvolvidos para o ecossistema Hadoop mais amplo. O Tez fornece uma API e estrutura de desenvolvedores para escrever aplicativos nativos do YARN, por que o mapreduce nem sempre é o melhor algoritmo de análise.

3.2 — Armazenar Resultados

§Hbase: framework distribuído, Banco de dados NoSQL(Not only SQL) que utiliza o HDFS para seu armazenamento permitindo que o map reduce opere. Ele é o armazenamento dos dados brutos indexados.

§ Hive: armazenamento de tabelas, gerencia os dados armazenados no HDFS

§ Hcatalog: é uma camada de gerenciamento de armazenamento e de tabela para Hadoop que apresenta a você uma exibição de dados relacional. No HCatalog, você pode ler e gravar arquivos em qualquer formato para o qual um SerDe (serializador desserializador) Hive possa ser gravado.

4-Etapa de Modelagem

§ Mahout: é uma biblioteca de algoritmos de aprendizado de máquina que são executados no Hadoop. Usando princípios de estatísticas, os aplicativos de aprendizado de máquina ensinam aos sistemas a aprender com os dados e a usar os resultados passados para determinar um comportamento futuro.

§ R Connector: R é muitas vezes chamada de “uma linguagem para estatísticos”. Caso você precise de um modelo estatístico para seus cálculos. Contudo, caso não seja um cientista de dados e não tenha experiência com Matlab, SAS ou OCTAVE, pode ser necessário um pouco de ajuste até ser produtivo no R. É uma linguagem muito boa para análise de dados. É uma coleção de pacotes R que fornecem Interfaces para trabalhar com as tabelas, a infraestrutura de computação Hadoop, o ambiente R local e as tabelas de banco de dados Oracle. Técnicas analíticas preditivas, escritas em R ou Java como trabalhos MapReduce, que podem ser aplicadas a dados em arquivos HDFS. Vários algoritmos analíticos estão disponíveis: regressão linear, redes neurais para predição, conclusão da matriz usando factorização de matriz de baixa classificação, clusterização e fatoração de matriz não-negativa. Para usar o Oracle R Connector para Hadoop, você deve estar familiarizado com a programação MapReduce, a programação R e os métodos estatísticos.

§ Python: Caso seus cientistas de dados não gostem de R, eles provavelmente saberão Python de cor. Python tem sido muito popular no meio acadêmico por mais de uma década, especialmente em áreas como Processamento Natural de Linguagem (Natural Language Processing — NLP). Em comparação com o R, o Python é uma linguagem tradicional orientada a objeto, então, a maior parte dos desenvolvedores ficará bastante confortável em trabalhar com ele, onde a primeira exposição ao R ou Scala pode ser bem intimidadora. Um pequeno problema é a exigência de indentação correta em seu código

§ Spark MLib: é a biblioteca de aprendizagem de máquinas escalável do Apache Spark. Se encaixa nas API da Spark e interage com o no Python (a partir do Spark 0.9) e as bibliotecas R (a partir do Spark 1.5). Você pode usar qualquer fonte de dados Hadoop (por exemplo, HDFS, HBase ou arquivos locais), facilitando a conexão com os fluxos de trabalho Hadoop.

6-Relatórios e visualizações:

§ Pentaho: permite um ambiente gráfico fácil de usar para gerenciar o movimento de dados dentro e fora do Hadoop e as vantagens de custo de código aberto comercial. Ajuda a diminuir as barreiras técnicas para a adoção do Hadoop, fornecendo ferramentas fáceis de usar para: Gerenciando o movimento de dados para dentro e para fora do Hadoop, Orquestrando a execução de trabalhos Hadoop em relação a outras tarefas em fluxos de ETL e / ou BI, Capacidade de graficamente conceba trabalhos MapReduce, relatórios em lote contra dados em Hadoop.

§ Tableau: é uma ferramenta de visualização baseada em tecnologia revolucionária que fornece recursos de arrastar e soltar para analisar dados em grandes quantidades de dados de forma muito fácil e rápida.

Um processo de mineração de dados continua após uma solução ter sido implantada, então é necessário se planejar para: gerenciar arquitetura de dados (bancos de dados), se foram feitos modelos manual, gerenciar modelagem e projetos de dados (versão e integração de modelos, além de testes e colocar em produção), políticas de armazenamento e operações de dados (back up, performance, gerencia da tecnologia e evolução das versões), gerencia de segurança de dados (requisitos de segurança, políticas, padrões, procedimentos, auditorias pois é necessário avaliar nível de privacidade, normas e regulações dos dados disponíveis na internet), gerenciar conteúdos e documentos e gerenciar a qualidade dos dados.

Ao longo desse artigo descrevi de forma resumida a essência dos grandes projetos Big Data, onde precisamos conhecer diversas tecnologias. Pela complexidade e termos difíceis, a tendência atual é pensar que somente grandes empresas são capazes de implementar tais tecnologias, mas não é verdade. Hoje, em 2017, existem grandes provedores de serviço de internet que oferecem plataformas prontas para se trabalhar com Big Data, cada um deles tem recursos e preços diferentes, basta fazer uma pesquisa de mercado. Google, Yahoo, IBM, Microsoft entre outros tem ferramentas que eles tiveram que construir do zero, e suas políticas de código aberto levaram a criação de produtos acessíveis e refinados, criando oportunidades para pequenas empresas. Não é mais preciso construir soluções próprias para analisar informações, então busque uma solução que que possa transformar qualquer pessoa em um analista de dados, encontre uma solução que torne as visualizações simples e que incorpore as melhores práticas de design para que você possa se concentrar em seus dados, e não em formatar um gráfico ou linha de tendência. Aposte numa solução flexível permitindo trabalhar na nuvem, ou com dados localmente ou com uma combinação dos dois. Trabalhar na nuvem traz grandes benefícios para pequenas empresas: há menos infraestrutura para ser implantada, a acessibilidade é quase universal e a segurança é de primeira linha. Porém, avalie se uma solução local faça mais sentido.

Com tudo que foi apresentado vamos entender como ficam as etapas de Mineração de dados utilizando as plataformas prontas que são acessíveis para trabalhar com Big Data:

1 — Entendimento do negócio:

Pesquise bastante sobre o conceito, para ter certeza absoluta se sua empresa realmente precisa desse investimento e também como o seu negócio poderá ser efetivamente beneficiado com as respostas e resultados do Big Data.

2- Compreensão dos dados

Muitas ferramentas vêm com processos integrados de coleta de dados, o que significa que os dados vão da fonte bruta para as análises prontas com uma interface de arrastar e soltar, eliminando a necessidade de recursos de TI.

3- Preparação dos dados

Ele pode ser coletado, agregado e armazenado em um data warehouse para uso posterior sendo feito de maneiras muito flexíveis e dinâmicas que permitem a introdução posterior de novas informações, sem exigir a abordagem “de volta ao plano de desenho” que foi exigida por muitos sistemas de dados legados.

4- Modelagem

Analítica: O conjunto de ferramentas analíticas foi expandido para gerenciar rapidamente todos os tipos de dados. As ferramentas de aprendizagem mecânica (estatística avançada) estão disponíveis no mesmo ambiente amigável e as ferramentas de análise exploratória de dados oferecem uma chance de interagir mais livremente com seus dados.

Predição: A análise preditiva permite que os usuários empresariais compreendam os fatores que estão por trás de seus negócios. Essas técnicas utilizam resultados históricos para prever tendências no futuro. A acessibilidade de várias ferramentas de aprendizagem de máquinas com o clique de alguns botões dá ao usuário a oportunidade de realizar comparações e análises de sensibilidade e calcular todas as modelagens necessárias dentro de algumas horas.

5- Avaliação

Nessa fase é feito o acompanhamento dos resultados objetivos e a avaliação da aplicabilidade confiável dos insights e conhecimentos obtidos. Embora essas ferramentas tornem a análise mais fácil, elas são tão valiosas quanto as análises que você realiza.

6- Desenvolvimento

Visualização: Uma vez que a análise e a previsão estão completas, novas ferramentas de visualização fornecem a capacidade de expressar sucintamente suas conclusões. Isso é muito mais do que os gráficos de barras e gráficos de linha do passado. Você tem acesso as ferramentas de painel avançadas — tudo com alguns cliques no mouse. A capacidade de interagir com os dados permite que você descubra informações e compartilhe-as com outras pessoas.

Cheguei ao fim desse artigo e espero que eu tenha contribuído de várias formas, para vários públicos, desde quem tem a simples curiosidade sobre Big data, a quem tem interesses referentes ao um futuro mercado de trabalho e para pequenas e médias empresas que achavam que Big data é uma realidade complicada e cara. Estou em constante aprendizagem, então críticas construtivas serão bem vindas.

Fontes da pesquisa:

http://revistapegn.globo.com/Dia-a-dia/noticia/2015/05/saiba-como-usar-o-big-data-em-seu-negocio.html

https://www.ibm.com/developerworks/br/data/library/techarticle/dm-1209hadoopbigdata/index.html

https://pt.slideshare.net/flaviofonte/o-que-o-hadoop-map-reduce-hdfs-e-hive

https://www.gta.ufrj.br/grad/15_1/bigdata/vs.html

http://www.bigdatabusiness.com.br/se-voce-se-interessa-por-big-data-precisa-entender-o-crisp-dm/