Baixe o app para aproveitar ainda mais
Prévia do material em texto
Brasília-DF. ArquiteturA de ColetA e ArmAzenAmento de dAdos: HAdoop e spArk Elaboração Roberto de Medeiros Produção Equipe Técnica de Avaliação, Revisão Linguística e Editoração Sumário APrESEntAção ................................................................................................................................. 4 orgAnizAção do CAdErno dE EStudoS E PESquiSA .................................................................... 5 introdução.................................................................................................................................... 7 unidAdE i ArquiteturA e OrgAnizAçãO de dAdOs ........................................................................................... 9 CAPítulo 1 Big dAtA ............................................................................................................................... 13 unidAdE ii ArquiteturA de COletA e ArmAzenAmentO de dAdOs ................................................................... 34 CAPítulo 1 FerrAmentAs ........................................................................................................................ 37 unidAdE iii eCOssistemA HAdOOp....................................................................................................................... 58 CAPítulo 1 Os serviçOs integrAdOs AO HAdOOp ............................................................................... 60 unidAdE iV O mOdelO mApreduCe e suAs implementAções ............................................................................ 96 CAPítulo 1 deFiniçãO e ArquiteturA .................................................................................................... 96 unidAdE V FerrAmentAs (Open SOurce e COmerCiAis) ................................................................................. 106 CAPítulo 1 FerrAmentAs HAdOOp ....................................................................................................... 106 CAPítulo 2 FerrAmentAs spArk ........................................................................................................... 111 unidAdE Vi estudO de CAsO prátiCO ............................................................................................................... 122 CAPítulo 1 Análise de dAdOs dO twitter usAndO O Flume & Hive nO HAdOOp FrAmewOrk ......... 122 rEfErênCiAS ................................................................................................................................ 126 4 Apresentação Caro aluno A proposta editorial deste Caderno de Estudos e Pesquisa reúne elementos que se entendem necessários para o desenvolvimento do estudo com segurança e qualidade. Caracteriza-se pela atualidade, dinâmica e pertinência de seu conteúdo, bem como pela interatividade e modernidade de sua estrutura formal, adequadas à metodologia da Educação a Distância – EaD. Pretende-se, com este material, levá-lo à reflexão e à compreensão da pluralidade dos conhecimentos a serem oferecidos, possibilitando-lhe ampliar conceitos específicos da área e atuar de forma competente e conscienciosa, como convém ao profissional que busca a formação continuada para vencer os desafios que a evolução científico-tecnológica impõe ao mundo contemporâneo. Elaborou-se a presente publicação com a intenção de torná-la subsídio valioso, de modo a facilitar sua caminhada na trajetória a ser percorrida tanto na vida pessoal quanto na profissional. Utilize-a como instrumento para seu sucesso na carreira. Conselho Editorial 5 organização do Caderno de Estudos e Pesquisa Para facilitar seu estudo, os conteúdos são organizados em unidades, subdivididas em capítulos, de forma didática, objetiva e coerente. Eles serão abordados por meio de textos básicos, com questões para reflexão, entre outros recursos editoriais que visam tornar sua leitura mais agradável. Ao final, serão indicadas, também, fontes de consulta para aprofundar seus estudos com leituras e pesquisas complementares. A seguir, apresentamos uma breve descrição dos ícones utilizados na organização dos Cadernos de Estudos e Pesquisa. Provocação Textos que buscam instigar o aluno a refletir sobre determinado assunto antes mesmo de iniciar sua leitura ou após algum trecho pertinente para o autor conteudista. Para refletir Questões inseridas no decorrer do estudo a fim de que o aluno faça uma pausa e reflita sobre o conteúdo estudado ou temas que o ajudem em seu raciocínio. É importante que ele verifique seus conhecimentos, suas experiências e seus sentimentos. As reflexões são o ponto de partida para a construção de suas conclusões. Sugestão de estudo complementar Sugestões de leituras adicionais, filmes e sites para aprofundamento do estudo, discussões em fóruns ou encontros presenciais quando for o caso. Atenção Chamadas para alertar detalhes/tópicos importantes que contribuam para a síntese/conclusão do assunto abordado. 6 Saiba mais Informações complementares para elucidar a construção das sínteses/conclusões sobre o assunto abordado. Sintetizando Trecho que busca resumir informações relevantes do conteúdo, facilitando o entendimento pelo aluno sobre trechos mais complexos. Para (não) finalizar Texto integrador, ao final do módulo, que motiva o aluno a continuar a aprendizagem ou estimula ponderações complementares sobre o módulo estudado. 7 introdução Big data é um termo que se refere a conjuntos de dados ou combinações desses conjuntos cujo volume, variabilidade e velocidade os tornam difíceis de serem capturados, gerenciados, processados ou analisados por tecnologias e ferramentas convencionais, tais como bancos de dados relacionais e estatísticas de desktop ou pacotes de visualização, dentro do tempo necessário para torná-los úteis. O Hadoop (BHOSALE; GADEKAR, 2014) é uma estrutura de programação usada para suportar o processamento de grandes conjuntos de dados em um ambiente de computação distribuída. O Hadoop foi desenvolvido pelo MapReduce do Google, que é uma estrutura de software em que um aplicativo é dividido em várias partes. O ecossistema atual do Appache Hadoop consiste no Kernel do Hadoop, MapReduce, HDFS e números de vários componentes, como Apache Hive, Base e Zookeeper, HDFS e MapReduce. Ao mesmo tempo, um novo modelo de computação em cluster tornou-se amplamente popular, no qual cálculos de paralelismo de dados são executados em clusters de máquinas não confiáveis por sistemas que fornecem automaticamente agendamento com reconhecimento de localidade, tolerância a falhas e balanceamento de carga. Spark é uma nova estrutura de computação em cluster que suporta aplicativos com conjuntos de trabalho e, ao mesmo tempo, fornece propriedades de escalabilidade e tolerância a falhas semelhantes ao MapReduce (ZAHARIA et al., 2010). Ambas tecnologias são abordadas e trabalhadas no decorrer desta disciplina. Os capítulos explicitam uma conexão lógica da importância da Arquitetura, Organização, Coleta e Armazenamento de Dados até as próprias tecnologias do Spark e Hadoop (juntamente com seu “ecossistema”). objetivos » Apresentar conceitos e terminologias aplicados ao ambiente dos ecossistemas de big data; » Compreender a configuração de serviços no cluster (Ambari); › Ecossistema Hadoop › Zookeeper, › Oozie, 8 › Hive, › Sqoop, › Pig, › Hbase, › Flume, › Mahout, › Kafka, › Ambari, » Yarn, › HDFS, › MapReduce » Executar script no ambiente do Hadoop e Spark; » Conhecer recursos avançados de monitoramento e execução. 9 unidAdE i ArquitEturA E orgAnizAção dE dAdoS Informações versus dados – as palavras são aparentemente intercambiáveis. Os dados são informações. As informações, particularmente quando discutidas em termos de tecnologia, são dados (PETERMAN, 2017). Quando falamos estratégia de dados, informações e dados são coisas inteiramente diferentes. Compreender suas diferenças e manipularcorretamente as arquiteturas da estratégia de dados de cada uma delas é vital se sua organização for tirar o máximo possível da sua estratégia. O consultor de gestão austríaco-americano Peter Drucker descreveu uma vez a informação como “dados dotados de relevância e propósito”. Exemplos de dados organizacionais brutos, como números de vendas, custos de negócios e taxas de retenção de clientes, são essencialmente sem sentido quando analisados como números independentes, mas, uma vez que esses dados estão configurados em alguma forma de contexto, geralmente combinando-o com outros dados, eles se transformam em informação. Os dados brutos dos números de vendas de um mês darão à organização uma visão absolutamente nula de como eles estão sendo realizados; contudo, dão a esses dados algum contexto histórico, combinando-o com os números de vendas dos meses anteriores, de repente você obtém informações tangíveis. Quanto mais dados combinados, maiores são as ideias que podem ser obtidas. Talvez os números de vendas estejam em uma tendência ascendente, graças à sua organização entrar em um novo mercado, ou no verso de uma nova iniciativa de marketing. Em suma, os dados podem ser considerados como os zero e os outros, enquanto a informação é o que esses zeros e aqueles estão tentando dizer. Arquitetura versus organização Ao se descrever um sistema de computação, é feita uma distinção entre a arquitetura e a organização do computador. Embora seja difícil definir precisamente esses termos, existe um consenso sobre as áreas que cada um deles abrange (VRANESIC, 1980; SIEWIOREK; BELL; NEWELL, 1982; BELL et al., 1978a). 10 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs O termo “arquitetura de um computador” refere-se aos atributos de um sistema que são visíveis para o programador ou, em outras palavras, aos atributos que têm impacto direto sobre a execução lógica de um programa. O termo “organização de um computador” refere-se às unidades operacionais e suas interconexões que implementam as especificações da sua arquitetura. Exemplos de atributos de arquitetura incluem o conjunto de instruções, o número de bits usados para representar os vários tipos de dados (por exemplo, números, caracteres), os mecanismos de E/S e as técnicas de endereçamento à memória. Atributos de organização incluem detalhes de hardware transparentes ao programador, tais como sinais de controle, interfaces entre o computador e os periféricos e tecnologia de memória utilizada. Figura 1. Coleta de dados automatizada a partir de múltiplas origens. Fonte: grAnAtO (2013). Definir se um computador deve ou não ter uma instrução de multiplicação, por exemplo, constitui uma decisão do projeto da sua arquitetura. Por outro lado, definir se essa instrução será implementada por uma unidade especial de multiplicação ou por um mecanismo que utiliza repetidamente sua unidade de soma constitui uma decisão do projeto da sua organização. Essa decisão de organização pode ser baseada na previsão sobre a frequência de uso da instrução de multiplicação, na velocidade relativa das duas abordagens e no custo e tamanho físico da unidade especial de multiplicação. 11 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i Historicamente, e ainda hoje, a distinção entre arquitetura e organização é de fundamental importância. Muitos fabricantes de computador oferecem uma família de modelos de computadores, todos com a mesma arquitetura, mas com diferenças de organização. Dessa maneira, os diferentes modelos da família têm preços e características de desempenho distintos. Além disso, uma arquitetura pode sobreviver por muitos anos, enquanto sua organização muda com a evolução da tecnologia. Um exemplo claro desses dois fenômenos é o da arquitetura do Sistema 370 da IBM. Essa arquitetura foi introduzida em 1970 e com um grande número de modelos. Um cliente com exigências mais modestas podia comprar um modelo mais barato e mais lento e, caso sua demanda por desempenho aumentasse, ele poderia migrar para um modelo mais rápido e mais caro, sem ter de abandonar as aplicações que já tivessem sido desenvolvidas. Ao longo dos anos, a IBM introduziu muitos modelos novos, com tecnologia aprimorada, para substituir os modelos mais antigos, oferecendo ao cliente maior velocidade, menor custo ou ambos. Esses modelos mais novos conservavam a mesma arquitetura, preservando o investimento em software do cliente. Notavelmente, a arquitetura do Sistema 370 sobreviveu até hoje, com pequenos melhoramentos, como a arquitetura da linha de computadores de grande porte da IBM. Na classe de sistemas denominados microcomputadores, a relação entre arquitetura e organização é muito mais estreita. Mudanças na tecnologia não apenas influenciam a organização, mas também resultam na introdução de arquiteturas mais ricas e poderosas. Para essas máquinas menores, geralmente não existe um forte requisito de compatibilidade de uma geração para outra. Portanto, no caso dessas máquinas, existe maior relação entre as decisões relativas à sua arquitetura e à sua organização. Um exemplo intrigante são os computadores com um conjunto reduzido de instruções (reduced instruction set computer – RISC). Este material aborda tanto a arquitetura quanto a organização de computadores, sendo talvez maior a ênfase com relação à organização. Entretanto, como a organização deve ser projetada para implementar uma especificação particular de arquitetura, um tratamento minucioso da organização de computadores requer também um exame detalhado de sua arquitetura. Alguns termos devem ser resumidos para ficarem claros. » Dado: valores brutos armazenados ou mesmo sequências de “1”s e “0”s. » Informação: a interpretação (filtragem) dos dados de forma sistêmica a fim de se obter um conhecimento sobre os valores coletados. 12 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs » Arquitetura: refere-se aos atributos de um sistema que são visíveis para o programador ou, em outras palavras, aos atributos que têm impacto direto sobre a execução lógica de um programa. » Organização: refere-se às unidades operacionais e suas interconexões que implementam as especificações da sua arquitetura. Arquitetura de dados Como parte de sua estratégia de dados, uma organização exigirá duas “arquiteturas”. Uma dedicada a dados brutos, outra dedicada à informação que pode ser obtida a partir desses dados (PETERMAN, 2017). A arquitetura de dados de uma organização definirá como os dados devem ser coletados, armazenados, organizados, distribuídos e consumidos. As regras devem ser criadas para governar as estruturas de bancos de dados e sistemas de arquivos, bem como os processos que conectam os dados com as áreas da organização que o exigem. A arquitetura da informação, por outro lado, tem como objetivo estruturar os sistemas e procedimentos que convertem os dados brutos em informações úteis. Uma vez que os dados brutos foram entregues com a ajuda da arquitetura de dados, a arquitetura da informação é responsável por converter tais dados em informações reais. Como exemplo, a arquitetura de dados pode alimentar dados brutos sobre as vendas e o contato do cliente em um sistema de arquitetura de informações, como um sistema de Gerenciamento de Relacionamento com o Cliente (CRM), onde é amalgamado e analisado para revelar quaisquer relações entre o contato com o cliente e as vendas. Isso pode ser feito por canal, região por região. Com a estratégia de dados agora na frente da mente da organização de qualquer pensamento, o foco subsequente em arquiteturas é mais forte do que nunca. A abordagem de uma organização dessas arquiteturas informará sua abordagem em sua maior estratégia de dados, talvez mais do que muitos percebam. A tentação ao formular a estratégia arquitetônica é apontar para o máximo controle. Isso, no entanto, pode ser um erro, visto que uma abordagem altamente centralizada e altamente regulada para suas arquiteturasde dados e informações será refletida em uma estratégia de dados maior, inflexível e monodirecional. Como sempre, há um meio-termo feliz, embora esse meio-termo mude dependente das necessidades e dos desejos de sua organização. 13 CAPítulo 1 Big data O Big Data é um dos desafios de pesquisa mais importantes para o horizonte de 2020, porque faz evolução de análises nos conjuntos de dados existentes para criar novas informações, enriquecendo a cadeia de valor do negócio. Nesse contexto, um conjunto de dados é considerado grande quando atende aos requisitos dos “três Vs”: volume, variedade e velocidade (CECCHINEL et al., 2014). O paradigma da Internet das Coisas (IoT) se baseia em um mundo de objetos interconectados, capazes de se comunicar entre si e coletar dados sobre seu contexto. Dia após dia, diversas empresas de vendas como as de carros, as de smartphones e mesmo as de edifícios coletam várias informações sobre nosso ambiente de vida, gerando zettabytes de dados detectados. O grupo Gartner prevê até 26 bilhões de coisas conectadas à Internet até 2020. Algumas empresas estimam que esse mercado irá gerar até 180 bilhões de euros em todo o mundo. Esse é um exemplo típico de coleta e análise de Big Data, pois aborda os três Vs: grande volume de dados diversos, coletados com uma alta velocidade para definir o aplicativo com valor agregado. O acoplamento entre as comunidades IoT e Big Data é forte. Infelizmente, não há uma abordagem abrangente para apoiar a coleta de dados de sensores e sua exploração: os esforços de pesquisa estão concentrados na coleta de dados dos níveis de produtores de dados, os níveis de recepção ou de exploração. O objetivo do estudo desse tema para nós é complementar as abordagens de última geração, descrevendo uma arquitetura abrangente de software que suporta a coleta de dados de sensores produzidos pela IoT. Nessa situação, os arquitetos devem manipular sensores como dispositivos de hardware e direcionar os dados produzidos para os armazéns de dados capazes de armazenar a grande quantidade de dados produzidos por esses dispositivos. Essa classe de arquitetura deve enfrentar vários desafios, por exemplo, armazenamento de dados, evitando gargalos de processamento, heterogeneidade de sensores, alta taxa de transferência. 14 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs Para entendermos o conceito de Big Data, precisamos apenas ter em mente os 3 Vs: » Volume: dados em grande quantidade. » Variedade: quanto mais dados diferentes, mais rico é nosso Big Data. » Velocidade: de trabalho com as informações (velocidade do App criado por nós). O valor (ganho) dos dados processados, e como resultado final (em forma de lucro), chega a ser tão importante quanto os 3 Vs apresentados, e é, portanto, considerado por alguns autores como o 4º V. A Figura 2 exemplifica o conceito de Big Data e leva a perspectivas de Model Driven Architecture (embora esse tema não venha a ser abordado em nosso trabalho). Nesta figura, há três partes: dados; processamento; plataformas diferentes. Os dados são coletados de forma bruta, como vários documentos com informações. Em seguida, a “máquina do Big Data” transforma-os em informações para diferentes plataformas, como Oracle, SharePoint, Alfresco, IBM ou Documentum. Figura 2. Big Data e a transformação de dados em informações. Fonte: grAnAtO, 2013. A Figura 3 exemplifica como é feita a mineração de dados por meio de ferramenta da IBM i2 iBase 8. O software coleta os dados como em um banco de dados e faz a ligação lógica que monta uma informação. 15 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i Figura 3. mineração dos dados transformando-os em informação. Fonte: grAnAtO (2013). Técnicas de extração de informações geralmente são agrupadas da seguinte forma (GRANATO, 2013): » Extração de arquivos do sistema: extração de propriedades do arquivo, como nome do arquivo, tamanho, data de modificação, data de criação, atributos, tipo mime etc. » Extração de propriedades documento: extração de propriedades de documentos específicos, dependendo do formato do documento, como título, autor, editora, versão etc. » Extração de propriedades e-mail: extração de propriedades comuns, tais como e-mail do remetente, destinatário, enviado, data, assunto, tópico de conversação, entre outras propriedades, como cabeçalhos de internet, remetente original etc. » ECM Plataformas: extrações de todas as propriedades de documento no ECM como estes são armazenados com o documento, incluindo as configurações de segurança. 16 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs » Cálculo Hash: cálculo de valores de hash para efeitos de identificação, suporte a vários tipos de hash, como MD5 e SHA1. » Detecção duplicada: calcular os valores de hash com base no conteúdo de mensagens de e-mail ou binários para outros tipos de arquivo com vistas a encontrar e detectar documentos duplicados. » Detecção de idioma: a detecção de idioma do documento, o suporte para mais de 400 idiomas. » Extração Conceito: extração de predefinido (texto completo), consultas que identificam documento e conteúdo de informação com combinações específicas de palavras-chave ou (fuzzy e curinga) padrões palavra dentro. » Extração Entidade: extração de entidades de base que podem ser encontradas em um texto, tais como: pessoas, empresas, locais, produtos, países e cidades. » Extração Fato: essas são as relações entre as entidades, por exemplo, uma relação contratual entre uma empresa e uma pessoa. » Extração de Atributos: extração das propriedades das entidades encontradas, como o título da função, a idade de uma pessoa e número de seguridade social, endereços de locais, quantidade de produtos, números de matrícula do carro, e do tipo de organização. » Extração de Eventos: são eventos interessantes ou atividades que envolvam entidades, tais como: “uma pessoa fala para outra pessoa”, “uma pessoa viaja para um local” e “uma empresa transfere o dinheiro para outra empresa”. » Detecção Sentimento: encontrar documentos que expressam um sentimento e determinar a polarização e a importância do sentimento expresso. » Processamento de linguagem estendida natural: Part-de-Speech (POS) para a marcação de pronome, correferência e anáfora resolução, a normalização semântica, agrupamento limite entidade, e coocorrência de resolução. 17 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i O Object Management Group™ (OMG™) foi formado como uma organização de padrões para ajudar a reduzir a complexidade, reduzir custos e acelerar a introdução de novos aplicativos de software. O Model Driven Architecture (MDA) é projetado para ser uma estrutura arquitetônica para o desenvolvimento de software. Essa estrutura é construída em torno de várias especificações detalhadas de OMG, que são amplamente usadas pela comunidade de desenvolvimento. Um aspecto fundamental do MDA é sua capacidade de abordar o ciclo de vida completo do desenvolvimento, abrangendo análise e projeto, programação, testes, montagem de componentes, bem como implantação e manutenção (TRUYEN, 2006). Em nosso estudo, o MDA foi dado de exemplo quando se trata da transformação de modelos independentes em específico. Mineração de dados Técnicas de análise de dados que têm sido tradicionalmente usadas para tais tarefas incluem análise de regressão, análise de cluster, taxonomia numérica, análise multidimensional, outros métodos estatísticos multivariados, modelos estocásticos, análise de séries temporais, técnicas de estimação não lineares e outras. Essas técnicas têm sido amplamente utilizadas para resolver muitos problemas práticos. Eles são, no entanto, orientados principalmente para a extração de características de dados quantitativos e estatísticos e, como tal, possuem limitações inerentes. Por exemplo, uma análise estatística pode determinar covariâncias e correlações entre variáveis emdados. Não pode, no entanto, caracterizar as dependências em um nível e procedimento abstrato e conceitual, uma explicação casual das razões pelas quais essas dependências existem. Tampouco pode desenvolver uma justificativa dessas relações na forma de descrições e leis de estilo lógico de nível superior. Uma análise estatística de dados pode determinar a tendência central e a variância de fatores dados, e uma análise de regressão pode ajustar uma curva a um conjunto de pontos de dados. Essas técnicas não podem, no entanto, produzir uma descrição qualitativa das regularidades e determinar sua dependência de fatores não explicitamente fornecidos nos dados, nem podem fazer uma analogia entre a regularidade e a regularidade descobertas em outro domínio (SUMATHI; SIVANANDAM, 2006). As estatísticas como um campo tradicional de inferência forneceram modelos com pressupostos mais ou menos detalhados sobre a distribuição de dados. A teoria clássica da inferência bayesiana demonstrou sua utilidade em uma grande variedade de domínios de aplicação, desde aplicações médicas até dados de consumidores e análise de cesta 18 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs de mercado. Além dos métodos clássicos, as redes neurais e o aprendizado de máquina contribuíram com ideias, conceitos e algoritmos para a análise desses conjuntos de dados com um novo sabor distintivo. As novas abordagens apresentadas por esses pesquisadores na última década partem da análise tradicional de dados estatísticos de várias maneiras: dependem menos de suposições estatísticas sobre a distribuição real dos dados, baseiam-se menos em modelos que permitem análises matemáticas simples, mas usam sofisticados modelos que podem aprender dependências não lineares complicadas a partir de grandes conjuntos de dados. Enquanto as estatísticas têm sido uma ferramenta para testar as teorias propostas pelos cientistas, a aprendizagem de máquina e a pesquisa de redes neurais são avaliadas com base em quão bem elas generalizam novos dados, que provêm do mesmo processo desconhecido que gerou os dados de treinamento. A medição do desempenho de generalização para selecionar modelos deve ser diferenciada da prática corrente generalizada, mas questionável, da inquisição de dados em que “os dados são torturados até que confessem”. Durante os últimos 15 anos, várias técnicas foram propostas para melhorar as propriedades de generalização dos estimadores neurais. O mecanismo básico é controlar a riqueza da classe de funções possíveis que podem ser obtidas através do treinamento, que foi quantificado com o trabalho seminal de Vapnik e Chervonenkis sobre a “capacidade de uma classe de hipóteses”. O conceito combinacional das dimensões de VC e suas generalizações parametrizam um limite superior rigoroso, mas vago, em grandes desvios do risco empírico do risco esperado de classificação ou regressão. Tais limites teóricos podem nos ajudar a entender o fenômeno da generalização. Para responder a uma questão numérica sobre um determinado algoritmo e conjunto de dados, limites empíricos puramente quantitativos sobre o erro de generalização esperado podem ser obtidos repetindo-se muitas simulações de treinamento/teste, e eles são mais rígidos que os limites teóricos analíticos. As heurísticas que essencialmente implementam o controle de complexidade de uma forma ou de outra são a queda de peso amplamente utilizada no treinamento de percepções multicamadas ou a regra de parada antecipada durante o treinamento. Também é possível visualizar o controle de capacidade em termos de penalidade para estimadores muito complexos. O controle de complexidade é particularmente relevante para mineração de dados. Nessa área, os pesquisadores buscam caracterizações complexas, mas ainda válidas, de seus grandes conjuntos de dados. Apesar do grande tamanho da inferência dos conjuntos de dados, muitas vezes ocorre no pequeno limite de tamanho da amostra. Deve-se notar que a proporção de amostras para graus de liberdade pode ser pequena mesmo para grandes conjuntos de dados quando são usados modelos complexos como árvores de decisão profundas ou máquinas de vetores de suporte em espaços de alta dimensão. 19 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i O controle da complexidade, seja por técnicas numéricas como validação cruzada ou por limites teóricos da teoria da aprendizagem computacional com reescalonamento empírico, é indispensável para profissionais de mineração de dados. A empresa de descoberta do conhecimento visa à automação do esforço milenar dos seres humanos para obter informações e construir modelos e teorias sobre os fenômenos no mundo que nos rodeia. Os mineradores de dados e os descobridores de conhecimento podem aprender muito e, por exemplo, aguçar sua consciência, observando o método científico de experimentação, modelagem e validação/falsificação nas ciências naturais, ciências da engenharia, ciências sociais, economia e filosofia. A próxima década de pesquisa em serviços de informação baseados em rede promete fornecer acesso amplamente disponível a quantidades sem precedentes de dados em constante expansão. Os usuários de muitos serviços de informações comerciais, governamentais e privados se beneficiarão das novas tecnologias de aprendizado de máquina que extraem novos conhecimentos integrando e analisando quantidades muito grandes de dados amplamente distribuídos para descobrir e relatar relações e padrões sutis de eventos que não são imediatamente discerníveis por inspeção humana direta. A diferença essencial entre a mineração de dados e a análise de dados tradicional (como consulta, relatório e aplicação online de análise) é que a mineração de dados consiste em minerar informações e descobrir conhecimento com base em premissas não claras. A mineração de dados é o uso de técnicas automatizadas de análise de dados para descobrir relações anteriormente não detectadas entre itens de dados. A mineração de dados geralmente envolve a análise de dados armazenados em um data warehouse. Três das principais técnicas de mineração de dados são regressão, classificação e agrupamento. A Mineração de Dados, também conhecida popularmente como Descoberta de Conhecimento em Bancos de Dados (KDD), refere-se à extração não trivial de informações implícitas, anteriormente desconhecidas e potencialmente úteis, de dados em bancos de dados. Embora a mineração de dados e a descoberta de conhecimento em bancos de dados (ou KDD) sejam frequentemente tratados como sinônimos, a mineração de dados é, na verdade, parte do processo de descoberta de conhecimento (SAHU et al., 2011). A figura 4 mostra que a Mineração de Dados possui várias influências e abrange campos diferentes da computação. A Figura 5 exemplifica a evolução das tecnologias de mineração de dados. Para entender o contexto da mineração de dados (ou data mining, DM), precisamos entender que a Internet oferece uma larga oportunidade para conhecer os clientes e suas preferências e rejeições. Para tal objetivo, basta ter em 20 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs mente que podemos fazer uma mineração das informações e achar “o diamante” no meio das preferências das pessoas. Podemos comprar acesso aos dados de certas empresas e com eles encontrar características, gostos, quais compras são realizadas, o que nos faria evitar rejeições durante vendas empresariais. Ou mesmo, de forma mais simples, podemos evitar certos erros com nossos clientes que já são formados apenas coletando informações de suas opiniões e gostos na Internet. O Data Mining é uma poderosa ferramenta da computação, e poderá garantir vaga no mercado de trabalho. Basta saber oferecer um profissional que estude dados com uso de tecnologia moderna como o Data Mining, o Data Warehousing, ou mesmo o Big Data. Nosso curso fornecerá esse poder ao aluno! Fique atento e leia além do que lhe ensinaremos! Figura 4. mineraçãode dados adota técnicas de muitos domínios. Mineração de Dados Aprendizagem de Máquinas Reconhecimento de Padrões Visualização Algoritmos Computação de Alta Performance Aplicações Recuperação de Informações Data Warehouse Sistemas de Bancos de Dados Estatísticas Fonte: HAn et al. (2012, com adaptações). 21 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i Figura 5. mineração dos dados transformando-os em informação. Coleção e Criação de Dados (1960) Processamento de arquivos primitivos Sistema de Gerencimento de Dados (1970 - 1980) Hierarchical and network database systems Relational database systems Data modeling: entity-relationship models etc. Indexing and accessing methods Query languages: SQL etc. User interfaces, forms, and reports Query processing and optimization Transactions, concurrency control, and recovery Online transaction processing (OLTP) Sistema de Banco de Dados Avançado (1980+) Advanced data models: extended-relational, object relational, deductive etc. Managing complex data: spatial, temporal, multimedia, sequence and structured, scientific, engineering, moving objects etc. Data streams and cyber-physical data systems Web-based databases (XML, semantic web) Managing uncertain data and data cleaning Integration of heterogeneous sources Text database systems and integration with information retrieval Extremely large data management Database system tuning and adaptive systems Advanced queries: ranking, skyline etc. Cloud computing and parallel data processing Issues of data privacy and security Análise de Dados Avançada (1980+) Data warehouse and OLAP Data mining and knowledge discovery: classification, clustering, outlier analysis, association and correlation, comparative summary, discrimination analysis, pattern discovery, trend and deviation analysis etc. Mining complex types of data: streams, sequence, text, spatial, temporal, multimedia, Web, networks etc. Data mining applications: business, society, retail, banking, telecommunications, science and engineering, blogs, daily life etc. Data mining and society: invisible data mining, privacy-preserving data mining, mining social and information networks, recommendersystems etc. Geração Futura de Sistemas de Informação (Presente momento) Fonte: HAn et al. (2012). A estatística é o campo tradicional que lida com a quantificação, coleta, análise, interpretação e conclusão de dados. A mineração de dados é um campo interdisciplinar que se baseia em ciências da computação (base de dados, inteligência artificial, aprendizado de máquina, modelos gráficos e de visualização), estatística e engenharia (reconhecimento de padrões, redes neurais). DM (Data Mining) envolve a análise de grandes bases de dados existentes, a fim de descobrir padrões e relações nos dados e outras descobertas (inesperadas, surpreendentes e úteis). Normalmente, difere das estatísticas tradicionais em duas questões: o tamanho do conjunto de dados e o fato de que os dados foram inicialmente coletados para um propósito diferente do da análise de DM. Assim, o design experimental, um tópico muito importante na estatística tradicional, é geralmente irrelevante para o DM. Por outro lado, a análise assintótica, por vezes criticada na estatística como sendo irrelevante, torna-se muito relevante no DM (BENJAMINI; LESHNO, 2004). 22 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs A análise de regressão é o método estatístico mais usado no Data Mining (BENJAMINI; LESHNO, 2004). Trata-se do processo de determinar como uma variável y está relacionada a uma ou mais outras variáveis x1,...,xk. O y é geralmente chamado de variável dependente e os xi são chamados de variáveis independentes ou explicativas. Em um modelo de regressão linear, assumimos que: 0 1 , 1, , = = β + β + ε = …∑ k i j ji i j y x i M E que os são independentes e estão distribuídos de forma idêntica como e M é o número de pontos de dados. O valor esperado de yi é dado por: ( ) 0 1= = β + βΣ k i j ji j E y x Para estimar os coeficientes do modelo de regressão linear, utilizou-se a estimativa de mínimos quadrados, que dá resultados equivalentes aos estimadores obtidos pelo método da máxima verossimilhança. Note que, para o modelo de regressão linear, existe uma fórmula explícita de . Podemos escrever a primeira fórmula em forma de matriz por em que é a transposta do vetor ; ,...,,], é a transposta do vetor vetor e a matriz X é dada por: 112 221 1 1 1 1 1 = k k k Mk xx xx X x x data Warehouse Um Data Warehouse é um repositório de informações coletadas de várias fontes, armazenadas em um esquema unificado e geralmente residindo em um único site. Os data warehouses são construídos por meio de um processo de limpeza, integração, transformação, carregamento e atualização periódica de dados. A figura 6 mostra a estrutura típica para construção e uso de um Data Warehouse simples. Para facilitar a tomada de decisão, os dados em um data warehouse são organizados em torno de assuntos principais (por exemplo, cliente, item, fornecedor e atividade). Os dados são armazenados para fornecer informações de uma perspectiva histórica, como nos últimos 6 a 12 meses, e são normalmente resumidos. Por exemplo, em vez de armazenar os detalhes de cada transação de vendas, o Data Warehouse pode armazenar um resumo das transações por tipo de item para cada loja ou, resumido em um nível mais alto, para cada região de vendas. 23 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i Figura 6. estrutura típica de um data warehouse para um caso particular. Fonte: HAn et al. (2012, com adaptações). Big data A frase “Big Data” tem dezenas de várias definições oferecidas por uma ampla gama de organizações. No passado, o termo “Big Data” era utilizado para a grande quantidade de informações disponíveis coletadas no mundo digital. Hoje, o Big Data é reconhecido como o poder crescente do século XXI. Big Data não é apenas uma palavra de ordem, é um disruptor no canal de tecnologia. No livro “Big Data: A Business and Legal Guide”, James Kalyvas e Michael Overly explicam Big Data como: [...] um processo para fornecer percepções de tomada de decisão. O processo usa pessoas e tecnologia para analisar rapidamente grandes quantidades de dados de diferentes tipos (dados estruturados de tabelas tradicionais e dados não estruturados, como imagens, vídeo, e-mail, dados de transação e interações de mídia social) de uma variedade de fontes para produzir um fluxo de conhecimento acionável (KALYVAS; OVERLY, 2015, tradução nossa). Uma das principais qualidades do Big Data é a capacidade de transformar. A compra e a utilização de software complexo ou de técnicas caras para coletar dados para fazer uso deles não são mais necessárias. O Big Data, com uma combinação de nuvem e mundos móveis, muda o jogo para empresas de todos os tamanhos e tipos. Objetivos: » Redução de custos - Big Data traz reduções de custos e melhorias significativas para a realização das tarefas atribuídas no tempo especificado, implementando tecnologias de informação. O Big Data oferece às organizações e empresas uma oportunidade de atingir uma 24 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs variedade de metas, utilizando suas tecnologias e conceitos. Os objetivos selecionados influenciam não apenas o resultado e os benefícios financeiros, mas também o processo. » Redução de tempo - as tecnologias de Big Data são utilizadas para otimizar os processos de trabalho, o que leva à redução do tempo de implementação das tarefas atribuídas. » Desenvolvendo novas ofertas baseadas em Big Data - desenvolve ampla gama de ofertas de produtos utilizando-se o Big Data. » Suportando decisões internas de negócios - o Big Data é aplicado como uma fonte de dados estruturada para tomada de decisão interna das empresas. os 3 Vs Em 2001, Doug Laney apresentou o modelo de Big Data do 3V na publicaçãodo MetaGroup, marcando seus três principais componentes: o volume excessivo de dados, a grande variedade de diferentes tipos de dados e a velocidade com que os dados são processados. O modo 3 V identifica, de forma notável, as formas tradicionais aplicadas para obter, armazenar, utilizar e analisar dados. Volume O volume de dados fornecidos às empresas aumenta constantemente desde 2004. Por exemplo, a quantidade total de dados coletados de toda a Internet em 2004 foi de um petabyte. Um petabyte equivale à coleção de todos os conteúdos de televisão por 100 anos. Em 2011, a quantidade global de informações armazenadas eletronicamente atingiu um zettabyte (que é igual a um milhão de petabytes ou uma coleção de vídeos de alta definição com a duração de 36 milhões de anos). Em 2015, o volume do Big Data alcançará 7,9 zettabytes (7,9 milhões de petabytes). Com as previsões para o futuro, em 2019, o Big Data deve chegar a um yottabyte que é equivalente a mil zettabytes. O tamanho dos conjuntos de dados que são utilizados para Big Data ampliou suas capacidades de ferramentas de dados tradicionais para manutenção simples de dados. Velocidade A velocidade representa a velocidade com que os dados devem ser mantidos e analisados. Os dados podem ser descritos como aumentando rapidamente a quantidade de dados não estruturados da quantidade cada vez maior de fluxos de fontes pela Internet. 25 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i Variedade O Big Data mantém a análise de dados estendendo a diversidade de dados úteis para análise. Ele une o valor dos dados que são mantidos nos bancos de dados estruturados tradicionais com o valor significativo de novos dados que são acessados a partir dos dados não estruturados. O termo “dados não estruturados” está implícito na quantidade crescente de dados que não são ordenados. Os dados não estruturados contêm o conteúdo criado pelo usuário a partir das redes sociais, imagens, vídeos, dados do sensor, arquivos da web, pesquisas etc. Atualmente, aproximadamente 95% dos dados totais existentes na Terra são considerados não estruturados. Essas fontes de dados podem tornar a inteligência comercial altamente essencial. interações no mundo Diversas empresas populares de consumo aumentaram globalmente seu uso de Big Data. Por exemplo, o Facebook utiliza Big Data para rastrear o comportamento do usuário na rede social. Além disso, a empresa oferece suas novas recomendações de amigos, descobrindo quem mais você pode conhecer. Quanto mais amigos você fizer, maior a probabilidade de manter sua conta do Facebook. Ter mais amigos significa que você pode ver mais conteúdo, compartilhar mais fotos e vídeos e postar uma quantidade maior de atualizações de status. Outro grande exemplo é o site de rede de negócios LinkedIn, que utiliza Big Data para correspondência de candidatos a emprego com seus potenciais empregadores. Os headhunters podem selecionar e entrar em contato com o gerente de contratação da empresa por meio de uma pesquisa simples. Ambas as empresas se tornaram públicas nos últimos anos – as ações do Facebook começaram a estar disponíveis na NASDAQ, LinkedIn na NYSE. Enquanto o Facebook, o LinkedIn e o Google são empresas de consumo na superfície, no núcleo elas pertencem a grandes empresas de Big Data. Se existe uma empresa de tecnologia em todo o mundo que exige e sintetiza tanto o Big Data, pode ser apenas o gigante dos mecanismos de busca Google Inc. Segundo os registros oficiais do Google, a empresa mantém pelo menos um trilhão de consultas por ano. Ao armazenar as informações dos resultados da pesquisa, o Google recebe informações sobre o comportamento de pesquisa do indivíduo. Isso dá ao Google a oportunidade de otimizar a publicidade e gerar receita com o tráfego da Web, como nenhuma outra empresa no mundo poderia fazer. Para manter os dados, os engenheiros do Google criaram as inovadoras tecnologias de Big Data. 26 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs Os provedores de serviços financeiros utilizam a análise de big data para desenvolver sua análise de clientes com vistas a determinar a capacidade do cliente para capital, crédito, seguro e assim por diante. Serviços de saúde trabalham com registros eletrônicos de saúde de seus pacientes que recebem de várias fontes, como tratamentos, dados demográficos e imagens. As empresas farmacêuticas criam suas próprias soluções de Big Data para monitorar a eficácia dos medicamentos e fornecer um desenvolvimento rápido e mais eficaz de medicamentos. As telecomunicações e os utilitários usam Big Data para explorar os comportamentos e as demandas do usuário, com vistas a implementar melhor a rede elétrica. Além disso, eles processam dados de sensores ambientais para descobrir as carências de infraestrutura e oferecem inteligência de gerenciamento de riscos mais produtiva. Companhias aéreas e empresas de transporte de cargas utilizam Big Data para monitorar o consumo de combustível e o tráfego nas regiões, em tempo real, a fim de reduzir custos e de se tornarem mais eficientes. design de plataforma de Big data Coleta, armazenamento, processo, análise e aplicação de dados serão as tarefas básicas do desempenho da empresa na era da economia da sabedoria. Julgamento e decisão com base em dados tornar-se-ão as habilidades e os meios das empresas para o desenvolvimento. Uma plataforma que está em conformidade com o gerenciamento de big data e que suporta o desenvolvimento no campo de aplicação é projetada para a análise de desenvolvimento relevante da indústria, integração de dados heterogêneos e requisitos de usuário personalizados etc. A plataforma é baseada na arquitetura Hadoop, contando com HDFS, MapReduce e MongoDB etc., através de uma estrutura distribuída, os quais são implantados em equipamentos de hardware mais baratos, para o aplicativo com mecanismo de acesso de dados de alto rendimento (CHEN et al., 2016). O HDFS, como sistema de arquivos distribuídos de software livre, suporta armazenamento de dados e gerenciamento de alta tolerância a falhas. O HDFS é uma implementação de software livre do GFS, que pode ser implementado em dispositivos de PC baratos, é um aplicativo adequado para grandes volumes de dados. O HDFS tem uma estrutura de modo mestre-escravo. No cluster, há um NameNode e vários DataNodes, que são responsáveis pela opção de armazenamento de dados e namespace, armazenamento de banco de dados e escolha de estratégia ideal. O MapReduce é 27 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i proposto pelo Google para o modelo de programação paralela de dados em massa de processamento simultâneo. Tem as características de simples e eficiente para o mecanismo de blindagem dos detalhes de implementação subjacentes, efetivamente reduzindo a dificuldade de programação. Clusters de implantação de máquina baratos podem ser usados para alcançar alto desempenho com boa escalabilidade e fornecer interface de agendamento altamente eficiente, implementando agendamento de tarefas, balanceamento de carga e tolerância a falhas e gerenciamento de consistência etc. O MongoDB suporta vários binários e dois tipos de formas de armazenamento, pois o subsistema de armazenamento é dividido automaticamente e dividido pelo usuário. Para realizar o balanceamento de carga, o MongoDB implementa o armazenamento distribuído em vários servidores para o mesmo arquivo de dados direcionado para um bloco múltiplo. Não haverá necessidade de o usuário saber onde os dados estão armazenados para que os servidores gravem o fragmento. Os requisitos de aplicativos de negócios incluem aquisição, coleta e análise e aplicação de dados. Uma plataforma unificada de aplicativos de dados será criada para carregamento, armazenamento e processamento em tempo real de dados de diferentes tipos de dados. Ferramentas e serviços de processamento de dados são integrados para o gerenciamento de dados heterogêneos.A ferramenta de análise de data warehouse estruturada e não estruturada também está integrada. A plataforma pode implementar a concentração de grande compartilhamento de dados e acesso colaborativo a qualquer hora, em qualquer lugar, por qualquer equipamento terminal. A plataforma de aplicativos pode suportar a modelagem de desenvolvimento de novos negócios e estratégia de negócios, além de promover o desenvolvimento do insight do setor, a análise de alertas antecipados em tempo real. Plataforma de aplicação de dados grande pode satisfazer os requisitos de processamento de dados de grande quantidade, estilo múltiplo e fluxo rápido. Também possui a capacidade de implementar grandes quantidades de coleta, armazenamento, processamento e análise de dados, atender aos requisitos básicos de alta confiabilidade, fácil extensibilidade, forte tolerância a falhas, alta disponibilidade, alta segurança e alto sigilo do aplicativo corporativo, garantir compatibilidade da tecnologia existente com a plataforma e realizar armazenamento e processamento de dados. A plataforma de aplicação de Big Data está em conformidade com dois sistemas padrão, o sistema padrão de segurança do sistema e o sistema padrão de gerenciamento de serviços. Plataforma de Big Data no Hadoop e plataforma de integração de dados em data warehouse implementam muito armazenamento, análise, processamento e uso de 28 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs dados, incluindo camada frontal, camada core, camada de gerenciamento, camada de dados e camada de aplicação etc., aquisição de dados, análise inteligente, processamento em tempo real é integrado para criar uma plataforma de integração e gerenciamento de dados. São objetivos do Big Data: » Redução de custos - reduções de custos e melhorias significativas para a realização das tarefas atribuídas no tempo especificado, implementando tecnologias de informação. » Redução de Tempo - otimizar os processos de trabalho, o que leva à redução do tempo de implementação das tarefas atribuídas. » Desenvolvendo novas ofertas baseadas em Big Data – gama de oferta de produtos usando Big Data e dados científicos. » Suportando decisões internas de negócios – ter/ser uma fonte de dados estruturada para tomada de decisão interna das empresas. instalação e configuração do ambiente Hadoop para Big data O Hadoop é suportado pela plataforma GNU/Linux. Portanto, temos de instalar um sistema operacional Linux para configurar o ambiente do Hadoop. Caso você tenha um sistema operacional diferente do Linux, você pode instalar um software Virtualbox nele e ter o Linux dentro do VirtualBox (PVT, 2014). Configuração de pré-instalação Antes de instalar o Hadoop no ambiente Linux, precisamos configurar o Linux usando o ssh (Secure Shell). Siga os passos abaixo para configurar o ambiente Linux. Criando um usuário No início, é recomendável criar um usuário separado para o Hadoop para isolar o sistema de arquivos Hadoop do sistema de arquivos Unix. Siga as etapas abaixo para criar um usuário: » Abra a raiz usando o comando “su”. » Crie um usuário a partir da conta root usando o comando “useradd username”. 29 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i » Agora você pode abrir uma conta de usuário existente utilizando o comando “su username”. » Abra o terminal Linux e digite os seguintes comandos para criar um usuário. $ su password: # useradd hadoop # passwd hadoop New passwd: Retype new passwd SSH Setup and Key generation A configuração do SSH é necessária para executar operações diferentes em um cluster, como iniciar, parar e distribuir operações do daemon. Para autenticar diferentes usuários do Hadoop, é necessário fornecer um par de chaves pública / privada para um usuário do Hadoop e compartilhá-lo com diferentes usuários. Os seguintes comandos são usados para gerar um par de valores de chave utilizando-se de SSH. Copie as chaves públicas do id_rsa.pub para authorized_keys e forneça ao proprietário permissões de leitura e gravação para o arquivo authorized_keys, respectivamente. $ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_key instalando Java Java é o principal pré-requisito para o Hadoop. Primeiro de tudo, você deve verificar a existência de java em seu sistema usando o comando “java -version”. A sintaxe do comando da versão java é fornecida abaixo. $ java -version Se tudo estiver em ordem, ele fornecerá a seguinte saída. java version “1.7.0_71” Java(TM) SE Runtime Environment (build 1.7.0_71-b13) Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode) 30 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs Se o java não estiver instalado em seu sistema, siga as etapas abaixo para instalar o java. Passo 1 Faça o download de java (JDK <versão mais recente> - X64.tar.gz) visitando o seguinte link: < h t t p : / / w w w . o r a c l e . c o m / t e c h n e t w o r k / j a v a / j a v a s e / d o w n l o a d s / j d k 7 - downloads-1880260.html>. Então jdk-7u71-linux-x64.tar.gz será baixado em seu sistema. Passo 2 Geralmente você encontrará o arquivo java baixado na pasta Downloads. Verifique e extraia o arquivo jdk-7u71-linux-x64.gz usando os seguintes comandos. $ cd Downloads/ $ ls jdk-7u71-linux-x64.gz $ tar zxf jdk-7u71-linux-x64.gz $ ls jdk1.7.0_71 jdk-7u71-linux-x64.gz Passo 3 Para tornar o java disponível para todos os usuários, você deve movê-lo para o local “/ usr / local /”. Abra a raiz e digite os seguintes comandos. $ su password: # mv jdk1.7.0_71 /usr/local/ # exit Passo 4 Para configurar as variáveis PATH e JAVA_HOME, inclua os seguintes comandos no arquivo ~ / .bashrc. 31 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i export JAVA_HOME=/usr/local/jdk1.7.0_71 export PATH=PATH:$JAVA_HOME/bin Agora aplique todas as alterações no sistema atual em execução. $ source ~/.bashrc Passo 5 Use os seguintes comandos para configurar alternativas de java: # alternatives --install / usr / bin / java em java usr / local / java / bin / java 2 # alternatives --install / usr / bin / javac / usr / local / java / bin / javac 2 # alternatives --install / usr / bin / jar jar usr / local / java / bin / jar 2 # alternatives --set java usr / local / java / bin / java # alternativas --set javac usr / local / java / bin / javac # alternatives --set jar usr / local / java / bin / jar Agora verifique a instalação usando o comando java -version do terminal, conforme explicado acima. Baixando o Hadoop Faça o download e extraia o Hadoop 2.4.1 da fundação de software Apache usando os seguintes comandos: $ su password: # cd /usr/local # wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ hadoop-2.4.1.tar.gz # tar xzf hadoop-2.4.1.tar.gz # mv hadoop-2.4.1/* to hadoop/ # exit 32 UNIDADE I │ ArqUItEtUrA E OrgANIzAçãO DE DADOs Modos de operação do Hadoop Depois de fazer o download do Hadoop, você pode operar seu cluster do Hadoop em um dos três modos suportados: » Modo Local / Autônomo: Após o download do Hadoop no seu sistema, por padrão, ele é configurado em um modo independente e pode ser executado como um único processo java. » Modo Pseudo Distribuído: É uma simulação distribuída em uma única máquina. Cada daemon do Hadoop, como hdfs, yarn, MapReduce etc., será executado como um processo java separado. Esse modo é útil para o desenvolvimento. » Modo totalmente distribuído: esse modo é totalmente distribuído com, no mínimo, duas ou mais máquinas como um cluster. Nós nos depararemos com esse modo em detalhes nos próximos capítulos. instalando o Hadoop no modo autônomo Aqui vamos discutir a instalação do Hadoop 2.4.1 no modo standalone. Não há daemons em execução e tudo é executado em uma única JVM. O modo autônomo é adequado para executar programas MapReduce durante o desenvolvimento, já que é fácil testá-los e depurá-los. Configurando o Hadoop Você pode definir variáveis de ambiente do Hadoop anexandoos seguintes comandos ao arquivo ~ / .bashrc. export HADOOP_HOME=/usr/local/hadoop Antes de continuar, você precisa se certificar de que o Hadoop esteja funcionando bem. Basta emitir o seguinte comando: $ hadoop version Se está tudo bem com a sua configuração, então você deve ver o seguinte resultado: Hadoop 2.4.1 Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 Compiled by hortonmu on 2013-10-07T06:28Z 33 ArquiteturA e OrgAnizAçãO de dAdOs │ unidAde i Compiled with protoc 2.5.0 From source with checksum 79e53ce7994d1628b240f09af91e1af4 Isso significa que a configuração do modo autônomo do seu Hadoop está funcionando bem. Por padrão, o Hadoop é configurado para ser executado em um modo não distribuído em uma única máquina. 34 unidAdE ii ArquitEturA dE ColEtA E ArMAzEnAMEnto dE dAdoS Sistemas de gerenciamento de banco de dados relacional (RDBMSs) são sistemas de armazenamento tradicionais projetados para dados estruturados e acessados por meio de SQL. Os RDBMSs estão enfrentando desafios ao manipular Big Data e fornecendo escalabilidade horizontal, disponibilidade e desempenho exigidos pelos aplicativos Big Data. Em contraste com os bancos de dados relacionais, o MapReduce fornece escalabilidade computacional, mas se baseia no armazenamento de dados em um sistema de arquivos distribuído como o GFS (Sistema de Arquivos do Google) ou o HDFS. Os armazenamentos de dados do NoSQL e do NewSQL surgiram como alternativas ao Big Armazenamento de dados. NoSQL refere-se a “Not Only SQL”, destacando que o SQL não é um objetivo crucial desses sistemas. Suas principais características definidoras incluem flexibilidade de esquema e escalonamento efetivo sobre um grande número de máquinas commodity (HAMMAD et al., 2015). A escalabilidade horizontal NoSQL inclui escalonamento de armazenamento de dados, bem como escalonamento de operações de leitura/gravação (GROLINGER; HIGASHINO; CAPRETZ, 2013). Analise os recursos que impulsionam a capacidade dos sistemas NoSQL de dimensionar, como particionamento, replicação, consistência e controle de concorrência. Os sistemas NoSQL normalmente adotam o paradigma MapReduce e enviam o processamento para os nós nos quais os dados estão localizados para dimensionar operações de leitura com eficiência. Consequentemente, a análise de dados é realizada por meio de jobs do MapReduce. MapReduce em si é livre de esquema e livre de índice, isso proporciona grande flexibilidade e permite que o MapReduce trabalhe com dados semiestruturados e não estruturados. Além disso, o MapReduce pode ser executado assim que os dados são carregados. No entanto, a falta de índices no MapReduce padrão pode resultar em um desempenho ruim em comparação aos bancos de dados relacionais. Isso pode ser compensado pela escalabilidade e paralelização do MapReduce. Os fornecedores de banco de dados, como o Oracle, fornecem o MapReduce no banco de dados, aproveitando a paralelização do banco de dados. Outro exemplo de fornecimento de recursos analíticos em uma base de dados é o projeto MAD Skills (COHEN et al., 2009), 35 ArquiteturA de ColetA e ArmAzenAmento de dAdos │ unidAde ii que implementa o MapReduce no banco de dados usando um mecanismo de execução de tempo de execução SQL. As funções Map e Reduce são escritas em Python, Perl ou R e passadas para o banco de dados para execução. Os sistemas NoSQL da família de colunas e categorias de documentos adotam o paradigma MapReduce, fornecendo suporte a vários métodos de indexação. Nessa abordagem, os trabalhos do MapReduce podem acessar dados usando o índice, portanto o desempenho da consulta é significativamente melhorado. Por exemplo, o Cassandra suporta índices primários e secundários (Apache Cassandra). No CouchDB (ANDERSON; SLATER, 2010), a principal maneira de consultar e relatar é através de visões que usam o paradigma MapReduce com JavaScript como uma linguagem de consulta. Uma visão consiste em uma função Mapa e uma função Reduzir opcional. Os dados emitidos pela função Mapa são usados para construir um índice e, consequentemente, as consultas contra essa visualização são executadas rapidamente. Outro desafio relacionado ao MapReduce e ao armazenamento de dados é a falta de uma linguagem padronizada semelhante a SQL. Portanto, uma direção de pesquisa está preocupada em fornecer SQL sobre MapReduce. Um exemplo dessa categoria é o Apache Hive, que fornece uma linguagem semelhante a SQL sobre o Hadoop. Outro esforço do Apache, o Mahout (Apache Mahout), visa a criar bibliotecas escaláveis de aprendizado de máquina sobre o MapReduce. Embora esses esforços forneçam recursos poderosos de processamento de dados, eles não possuem recursos de gerenciamento de dados, como indexação avançada e um otimizador sofisticado. As soluções NoSQL escolhem diferentes abordagens para fornecer habilidades de consulta: Cassandra e MongoDB fornecem consultas semelhantes a SQL proprietárias, enquanto o HBase usa o Hive. É importante destacar os esforços de integração entre bancos de dados tradicionais, MapReduce e Hadoop. Por exemplo, o conector Oracle SQL para HDFS (Oracle 2014) fornece capacidade de consultar dados no Hadoop no banco de dados usando SQL. O Oracle Data Integrator for Hadoop gera consultas semelhantes à Hebraide, que são transformadas em MapReduce nativo e executadas em clusters do Hadoop. Embora os esforços apresentados tenham avançado o estado da arte para armazenamento de dados e MapReduce, vários desafios permanecem, como: » a falta de uma linguagem de consulta padronizada semelhante a SQL; » otimização limitada de trabalhos MapReduce; » integração entre MapReduce, sistema de arquivos distribuídos, repositórios RDBMSs e NoSQL. 36 UNIDADE II │ ArqUItEtUrA DE ColEtA E ArmAzENAmENto DE DADos No Big Data Big, o tamanho dos dados está crescendo continuamente, por outro lado, aumentar a velocidade da capacidade de armazenamento é muito menor do que a quantidade crescente de dados. A reconstrução da estrutura de informação disponível é necessária para formar uma estrutura hierárquica, porque os pesquisadores chegaram à conclusão de que os SGBDs disponíveis não são adequados para processar a grande quantidade de dados. Arquitetura comumente utilizada para processamento de dados utiliza o servidor de banco de dados, servidor de banco de dados possui restrição de escalabilidade e custo que são objetivos primordiais de Big Data. Um modelo de negócios diferente tem sido sugerido pelos provedores de banco de dados, mas basicamente esses são específicos do aplicativo. O Google parece estar mais interessado em pequenos aplicativos. O Big Data Storage é outro grande problema no gerenciamento de Big Data, pois os algoritmos de computador disponíveis são suficientes para armazenar dados homogêneos, mas não são capazes de armazenar dados de forma inteligente em tempo real devido ao seu comportamento heterogêneo. Então, como reorganizar os dados é outro grande problema no contexto do Big Data Management. A tecnologia de servidor virtual pode aguçar o problema porque aumenta o problema de recursos supercomprometidos, especialmente quando há falta de comunicação entre o servidor de aplicativos e o administrador de armazenamento. Também precisa resolver o problema de E/S simultânea e uma arquitetura mestre/escravo de nó único. 37 CAPítulo 1 ferramentas Várias estruturas MapReduce (por exemplo, Apache Hadoop, Skynet, Sailfish e FileMap) foram desenvolvidas para lidar com dados massivos estruturados e não estruturados. Na verdade, eles permitem armazenar e processar grandes volumes de dados imutáveis (como logs ou objetos binários grandes), bem como dados coletados de forma incremental (como rastreamentos da web, comentários de usuários em redes sociais, dados de GPS ou eventos de sensores). Eles são eficientes para muitos casos de uso (como análise de arquivos de log, simulações científicas ou previsões financeiras). Tais estruturassão baseadas em muitos conceitos sólidos, incluindo os seguintes (HAMMAD et al., 2015): » Armazenamento distribuído: a maioria das plataformas de Big Data, como Hadoop e Disco, são baseadas em armazenamento distribuído de dados. Ao contrário dos sistemas tradicionais, eles armazenam blocos de arquivos muito grandes em vários nós. Eles são projetados para serem executados em hardware de baixo custo e fornecem acesso de alta velocidade aos conjuntos de dados. » MPP (Massive Parallel Processing): as várias tarefas demoradas, de aplicativos Big Data, são processadas em paralelo em vários servidores. O MPP ajuda a evitar a cópia de dados distantes para executar cálculos. Executa tarefas onde os dados são armazenados para minimizar o congestionamento da rede e garantir um processamento rápido. » Sistema tolerante a falhas e dimensionável: para garantir que não haja ponto de falha, os sistemas Big Data geralmente são baseados em uma arquitetura Master-Slave confiável e replicação de dados (como o Hadoop) ou no conceito de recuperação de ponto. Links úteis Alguns dos links possuem os passos necessários para instalação do ambiente. Basta segui-los e instalar as ferramentas. Apache Hadoop <http://hadoop.apache.org/releases.html>. 38 UNIDADE II │ ArqUItEtUrA DE ColEtA E ArmAzENAmENto DE DADos Skynet <https://github.com/wonko9/skynet>. Sailfish <https://github.com/sriramsrao/sailfish>. FileMap <https://github.com/mfisk/filemap>. A maioria das soluções oferecia a possibilidade de adicionar clusters e componentes para lidar com mais dados e processamento massivo. Na maioria das vezes, os componentes gratuitos e proprietários são criados no topo das plataformas de Big Data de software livre, como o caso da Hortonworks Data Platform (HDP) e IBM InfoSphere BigInsights. O objetivo é oferecer soluções completas de ecossistema de Big Data. De fato, eles pretendem alavancar as estruturas do MapReduce, simplificar seu uso e estender suas capacidades. Muitas soluções e ferramentas de Big Data estão disponíveis conforme apresentado a seguir: » Ferramentas para integração de Big Data (como Sqoop, Flume e DataLoader); » Ferramentas para gerenciar recursos, fluxos de trabalho e serviços (como Cloudera Manager, Yarn, Oozie e Zookeeper); » Ferramentas para lidar com serviços de metadados (como o Hcatalog); » Ferramentas para análise de dados (como a linguagem de programação R, Mahout, Chukwa e Teradata Analytical Ecosystem); » Ferramentas para pesquisa interativa e consulta nativa (como a pesquisa Cloudera, o Sphinx Search Server e o Facebook Unicorn, que é um sistema de indexação na memória online projetado para pesquisar trilhões de contornos entre dezenas de bilhões de entidades em milhares de servidores comuns); » Ferramentas para visualização de dados (como Advisor, Visual Analytics e Centrifuge). Com essas múltiplas tecnologias, os gerentes podem confiar em soluções rápidas, econômicas, tolerantes a falhas, escaláveis e fáceis de usar. Os gerentes podem escolher uma solução completa ou adicionar, conforme necessário, componentes às infraestruturas existentes. Por exemplo, o Oracle Big Data Appliance (white paper da Oracle 2013) combina, em um sistema, o poder do hardware otimizado de padrões industriais, a experiência em 39 ArquiteturA de ColetA e ArmAzenAmento de dAdos │ unidAde ii software da Oracle e as vantagens dos componentes de código aberto do Apache Hadoops. t1. Bancos de dados para Big data noSql O RDMS (Sistema de Gerenciamento de Banco de Dados Relacional) requer a estruturação de dados em formatos definidos, o que não é adequado no contexto de Big Data, no qual são gerados volumes rápidos e enormes de dados não estruturados. Para enfrentar esse desafio, vários bancos de dados NoSQL foram desenvolvidos para manipular dados não relacionais e não estruturados como o HBase, o Cassandra, o DynamoDB, o MongoDB, o Riak, o Redis, o Accumulo, o Couchbase, e assim por diante. Eles suportam um ou mais modelos de dados, incluindo: pares de valores-chave, documentos orientados a documentos (tais como JSON, BSON, XML, HTML), gráficos (projetados para dados altamente conectados), colunas amplas e dados geoespaciais. Os bancos de dados NoSQL fornecem uma maneira mais barata (do que o RDMS) de manipular o armazenamento e o gerenciamento de Big Data em ambiente distribuído. Esses bancos de dados oferecem diferentes níveis de tolerância a falhas e disponibilidade de dados (HAMMAD et al., 2015). newSql Bancos de dados NoSQL têm muitas desvantagens que impulsionaram o desenvolvimento de bancos de dados NewSQL. Na verdade, eles geralmente não suportam indexação e consulta SQL. Eles também costumam ser lentos na manipulação de grandes consultas. Além disso, ao contrário do RDBMS, eles não garantem os princípios do ACID para transações confiáveis. Para resolver essas limitações, o NewSQL foi desenvolvido para aplicativos Big Data. Ele constitui um novo sistema de gerenciamento de banco de dados relacional baseado em uma arquitetura distribuída (MARIJANA, 2013). Bancos de dados NewSQL mesclam o melhor das duas tecnologias precedentes, o RDBMS e o NoSQL. O NewSQL fornece propriedades ACID e consulta SQL. Ele também permite garantir boa disponibilidade de dados e desempenho do processamento de transações online. [sintetizando] Links úteis: 40 UNIDADE II │ ArqUItEtUrA DE ColEtA E ArmAzENAmENto DE DADos Oracle NoSQL <http://www.oracle.com/technetwork/database/nosqldb/downloads/ default-495311.html>. Vídeo: <https://www.youtube.com/watch?v=890222oPMmM>. DevMedia: <https://www.devmedia.com.br/introducao-aos-bancos-de-dados- nosql/26044>. NewSQL <https://sourceforge.net/projects/newsql/>. Vídeo: <https://www.youtube.com/watch?v=PqnlmANE8Lk>. Curso SQL: <https://www.devmedia.com.br/curso/curso-de-sql/1895>. Searching and indexing Os métodos de pesquisa tradicionais não são adaptados ao ambiente distribuído e à complexidade do Big Data. As empresas precisam executar consultas extensas em tempo real por meio de grandes volumes de conjuntos de dados estruturados e não estruturados. Essa demanda levou ao desenvolvimento de mecanismos de pesquisa escaláveis com base em tecnologias de pesquisa e indexação adequadas, como o Lucene e o Splunk Processing Language. Cadeia de valor Big data Value Chain, conceito introduzido por Porter (1980), refere-se a um conjunto de atividades realizadas por uma firma para agregar valor em cada etapa de entrega de um produto/serviço a seus clientes. De forma semelhante, a cadeia de valores de dados refere-se à estrutura que lida com um conjunto de atividades para criar valor a partir dos dados disponíveis. Pode ser dividido em sete fases: (a) geração de dados, (b) coleta de dados, (c) transmissão de dados, (d) pré-processamento de dados, (e) armazenamento de dados, (f) análise de dados e (g) tomada de decisão (BHADANI; JOTHIMANI, 2016). geração de dados O primeiro e mais importante passo da cadeia de valor de big data é a geração de dados. Conforme discutido na seção anterior, os dados são gerados a partir de várias fontes 41 ArquiteturA de ColetA e ArmAzenAmento de dAdos │ unidAde ii que incluem dados de registros de detalhes de chamadas (CDR), blogs, tweets e página do Facebook. Coleção de dados Nesta fase, os dados são obtidos de todas as fontes de dados possíveis. Por exemplo, para prever a rotatividade de clientes em Telecom, os dados podem ser obtidos de CDRs e opiniões/reclamações dos clientes em sites de redes sociais como Twitter (na forma de tweets) e Facebook (opiniões compartilhadas na página da empresa no Facebook). Os métodos mais usados são arquivos de log, sensores, rastreadores da web e software de monitoramento de rede. transmissão de dados Depois que os dados são coletados, eles são transferidos para uma infraestrutura de armazenamento e processamento de dados para processamento e análise adicionais. Pode ser realizado em duas fases: transmissão derede de circuito interdinâmico (DCN) e transmissões Intra-DCN. A transmissão inter-DCN lida com a transferência de dados da fonte de dados para o centro de dados, enquanto a última ajuda na transferência dentro do centro de dados. Além do armazenamento de dados, o data center ajuda na coleta, organização e gerenciamento de dados. Pré-processamento de dados Os dados coletados de várias fontes de dados podem ser redundantes, ruidosos e inconsistentes, portanto, nesta fase, os dados são pré-processados para melhorar a qualidade dos dados necessários para análise. Isso também ajuda a melhorar a precisão da análise e reduzir as despesas de armazenamento. Os dados podem ser pré-processados com a ajuda das seguintes etapas: I. Integração: Os dados de várias fontes são combinados para fornecer uma visão unificada e uniforme dos dados disponíveis. Federação de dados e data warehousing são os dois métodos tradicionais mais usados. O Data Warehousing executa o processo Extrair, Transformar e Carregar (ETL). Durante o processo de extração, os dados são selecionados, coletados, processados e analisados. O processo de converter os dados extraídos em um formato padrão é chamado de processo de transformação. No carregamento, os dados extraídos e transformados são importados para uma infraestrutura de armazenamento. Para tornar a integração 42 UNIDADE II │ ArqUItEtUrA DE ColEtA E ArmAzENAmENto DE DADos de dados dinâmica, os dados podem ser agregados de várias fontes de dados usando um banco de dados virtual. Ele não contém nenhum dado, mas os detalhes sobre as informações relacionadas aos dados originais ou metadados podem ser obtidos (MILLER; MORK, 2013; CHEN et al., 2014). II. Limpeza: Os dados são verificados quanto à exatidão, integridade e consistência. Durante esse processo, os dados podem ser excluídos e modificados para melhorar a qualidade. O processo geral seguido inclui cinco processos: tipos de erros são definidos e determinados, erros são identificados a partir dos dados, erros são corrigidos, tipos de erros e exemplos correspondentes são documentados e procedimento de entrada de dados pode ser modificado para evitar erros futuros (MALETIC; MARCUS, 2000). III. Eliminação de Dados Redundantes: Muitos conjuntos de dados possuem dados excedentes ou repetições de dados e são conhecidos como redundância de dados. Isso aumenta o custo de armazenamento, leva a inconsistência de dados e afeta a qualidade dos dados. Para superar isso, vários métodos de redução de dados, como filtragem de dados e compactação, são usados. A limitação dessas técnicas de redução de dados é que elas aumentam o custo computacional. Assim, uma análise de custo-benefício deve ser realizada antes de usar técnicas de redução de dados. Armazenamento de dados Os sistemas de armazenamento de big data devem fornecer espaço de armazenamento confiável e acesso eficiente aos dados. Os sistemas de armazenamento distribuído para big data devem considerar fatores como consistência (C), disponibilidade (A) e tolerância à partição (P). De acordo com a teoria CAP proposta por Brewer (2000), os sistemas de armazenamento distribuído poderiam atender a dois requisitos simultaneamente, ou seja, consistência e disponibilidade, ou disponibilidade e tolerância à partição, ou consistência e tolerância à partição, mas nem todos os requisitos simultaneamente. Pesquisas consideráveis ainda estão em andamento na área de mecanismo de armazenamento de big data. Pouco avanço a esse respeito é o Sistema de Arquivos do Google (GFS), Dynamo, BigTable, Cassandra, CouchDB e Dryad. 43 ArquiteturA de ColetA e ArmAzenAmento de dAdos │ unidAde ii Análise de dados Depois que os dados são coletados, transformados e armazenados, o próximo processo é a exploração de dados ou análise de dados, que é enumerada usando as seguintes etapas: I. Definir métricas: com base nos dados coletados e transformados, um conjunto de métricas é definido para um problema específico. Por exemplo, para identificar um cliente em potencial que vai se desfazer, um número de vezes que ele contatou (seja através de uma chamada de voz, tweets ou reclamações na página do Facebook) pode ser considerado. II. Selecione a arquitetura com base no tipo de análise: com base na pontualidade da análise a ser executada, a arquitetura adequada é selecionada. A análise em tempo real é usada no domínio em que os dados continuam mudando constantemente, e há uma necessidade de análise rápida para executar ações. Computações baseadas em memória e sistemas de processamento paralelo são as arquiteturas existentes. Detecção de fraude nos setores de varejo e fraude de telecomunicações são exemplos de análise em tempo real. Os aplicativos que não exigem tempo de resposta alto são executados usando a análise offline. Os dados podem ser extraídos, armazenados e analisados relativamente mais tarde no tempo. A arquitetura geralmente usada é a plataforma Hadoop. III. Seleção de algoritmos e ferramentas apropriados: uma das etapas mais importantes da análise de dados é a seleção de técnicas apropriadas para análise de dados. Poucas técnicas de análise de dados tradicionais, como análise de cluster, análise de regressão e algoritmos de data mining, ainda são válidas para a análise de big data. A análise de cluster é uma técnica não supervisionada que agrupa objetos com base em alguns recursos. As técnicas de mineração de dados ajudam a extrair informações desconhecidas, ocultas e úteis de um enorme conjunto de dados. Várias ferramentas estão disponíveis para análise de dados, incluindo softwares de código aberto e softwares comerciais. Alguns exemplos de softwares de código aberto são R para mineração de dados e visualização, Weka/Pentaho para aprendizado de máquina e RapidMiner para aprendizado de máquina e análise preditiva. IV. Visualização de dados: a necessidade de inspecionar detalhes em múltiplas escalas e detalhes minuciosos deu origem à visualização de dados. Interfaces visuais, juntamente com análises estatísticas e contexto 44 UNIDADE II │ ArqUItEtUrA DE ColEtA E ArmAzENAmENto DE DADos relacionado, ajudam a identificar padrões em grandes dados ao longo do tempo (FISHER et al., 2012). O Visual Analytics (VA) é definido como “a ciência do raciocínio analítico facilitada por interfaces interativas visuais” (THOMAS; COOK, 2005). Poucas ferramentas de visualização são o Tableau, o QlikView, o Spotfire, o JMP, o Jaspersoft, o Visual Analytics, a Centrifuge, o Visual Mining e o Board. tomada de decisão Com base na análise e nos resultados visualizados, os tomadores de decisão podem decidir se e como recompensar um comportamento positivo e alterar um negativo. Os detalhes de um problema específico podem ser analisados para entender as causas dos problemas, tomar decisões informadas e planejar ações necessárias. ferramentas para coleta, pré-processamento e análise de grandes dados O avanço na arquitetura de computação é necessário para lidar com os requisitos de armazenamento de dados e com o processamento de servidores pesados necessários para analisar economicamente grandes volumes e variedade de dados. Com a disponibilidade de alta capacidade computacional a um custo relativamente barato, os pesquisadores podem explorar as oportunidades subjacentes do Big Data com o campo da ciência de dados. Cada vez mais, os dados não estão sendo capturados apenas para manutenção de registros, mas para explorá-los com sistemas inteligentes para obter novos insights, que podem não ter sido previstos no momento da coleta dos dados. Ao iniciar questões interessantes e refiná-las sem a intervenção de especialistas, ela se torna capaz de descobrir novas informações por conta própria. Por exemplo, se uma informação pode ser derivada de que um grupo específico de pessoas é propenso ao câncer e, ainda, fornecer outras informações, como suas dietas, hábitos diários e a natureza das drogas que
Compartilhar