Prévia do material em texto
Introdução a Big Data Prof. Pedro A. Oliveira PUC Minas Sumário • Conceitos: Data Science e Big Data • Os 3(5) V • Como tratar dados massivos • Arquitetura Big Data • Mapreduce • Aplicações de Big Data Ciência de Dados Data science is a "concept to unify statistics, data analysis, machine learning and their related methods" in order to "understand and analyze actual phenomena" with data. It employs techniques and theories drawn from many fields within the context of mathematics, statistics, computer science, and information science. Wikipedia, 2019. Ciência de Dados Ciência de Dados Ciência de Dados https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.innoarchitech.com%2Fblog%2Fwhat-is-data-science-does-data-scientist- do&psig=AOvVaw0V2LFGIKaTxe6KIJ4svLd7&ust=1605819167204000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKCAgOP8jO0CFQA AAAAdAAAAABAF Ciência de Dados https://i0.wp.com/pawelcislo.com/wp-content/uploads/2019/03/Data-Science-diagram.png?resize=502%2C361&ssl=1 Ciência de Dados Data Science é uma área de atuação profissional que apesar de ter sua origem reconhecida dentro da tecnologia da informação é considerada interdisciplinar, permeando áreas de conhecimento como matemática, estatística, ciência da informação, processos de negócio e mídias digitais. Pode ser resumida como um conjunto métodos, práticas e sistemas científicos para extrair conhecimento ou insights de dados estruturadas ou não estruturadas. É a arte de extrair conclusões a partir de grande volumes de dados. https://www.portalgsti.com.br/ciencia-de-dados/sobre/ https://www.portalgsti.com.br/ciencia-de-dados/sobre/ Ciência de Dados Outras formas de definir-se a ciência de dados (Data Science): • Um processo de tomada de decisão • Um conceito para unificar estatísticas, análise de dados e seus métodos relacionados • O processamento e o uso de ferramentas para extrair informações a partir dos dados • Uma prática que apoia a gestão do conhecimento • Significa entender e analisar fenômenos reais a partir de dados • Observação, captura, curadoria, estudo, compartilhamento, retenção, transmissão e visualização de grandes volumes de dados • "Um quarto paradigma da ciência (empírica, teórica, computacional e agora orientada por dados). Tudo sobre a ciência está mudando devido ao impacto da tecnologia da informação e o dilúvio de dados." - Jim Gray, vencedor do prêmio Turing de 1998 https://www.portalgsti.com.br/ciencia-de-dados/sobre/ http://amturing.acm.org/award_winners/gray_3649936.cfm http://amturing.acm.org/award_winners/gray_3649936.cfm https://www.portalgsti.com.br/ciencia-de-dados/sobre/ https://image.slidesharecdn.com/hadooparchitecture-091019175427-phpapp01/95/slide-8-1024.jpg Big Data Definição do Gartner (2001): Big data são dados com maior variedade que chegam em volumes crescentes e com velocidade cada vez maior. Isso é conhecido como os três Vs: Volume, Velocidade, Variedade. Obs: posteriormente foram incluídos mais dois “V”: Valor e Veracidade. Big Data “Simplificando, big data é um conjunto de dados maior e mais complexo, especialmente de novas fontes de dados. Esses conjuntos de dados são tão volumosos que o software tradicional de processamento de dados simplesmente não consegue gerenciá-los. Mas esses enormes volumes de dados podem ser usados para resolver problemas de negócios que você não conseguiria resolver antes.” https://www.oracle.com/br/big-data/guide/what-is-big-data.html https://www.oracle.com/br/big-data/guide/what-is-big-data.html Big Data Algumas questões pertinentes: • O que é grande volume de dados? • É um conceito estável? • Quantidade de dados é suficiente para representar valor para o negócio? • Pode-se manipular dados massivos com tecnologias tradicionais? • Como as empresas lidam com isso? Big Data Volume de dados: - 40 zettabytes de dados criados até 2020 no mundo (estimativa). – Cerca de 2.5 quintillionbytes de dados criados por dia. – Cerca de 6 bilhões de mobile phones no planeta. – Empresas americanas armazenam cerca de 100 terabytes de dados (cada uma). – 966 petabytes de dados armazenados pela indústria americana em 2009. http://www.cienciaedados.com/big-datas-4-vs/ http://www.cienciaedados.com/big-datas-4-vs/ Big Data Formato de dados: – 150 exabytes é a estimativa de dados que foram gerados especificamente para healthcare em todo o mundo no ano de 2011. – Mais de 4 bilhões de horas por mês são usadas para assistir vídeos no YouTube. – 30 bilhões de imagens são publicadas por mês no Facebook. – 200 milhões de usuários ativos por mês, publicam 400 milhões de tweets por dia. http://www.cienciaedados.com/big-datas-4-vs/ http://www.youtube.com/ http://www.youtube.com/ http://www.youtube.com/ http://www.youtube.com/ http://www.youtube.com/ http://www.cienciaedados.com/big-datas-4-vs/ Big Data 1 terabyte de informação de trade é criada durante uma única sessão da bolsa de valores Americana, New York Stock Exchange. – Aproximadamente 100 sensores estão instalados nos carros modernos para monitorar nível de combustível, pressão dos pneus e muitos outros aspectos do veículo. – 18.9 billhões de conexões de rede existirão até 2016 http://www.cienciaedados.com/big-datas-4-vs/ https://www.nyse.com/index http://www.cienciaedados.com/big-datas-4-vs/ Big Data Alguns fatores de sucesso de projetos de Big Data: • Envolvimento e postura dos gestores; • Capacidade de tratamento dos dados envolvidos; • Qualidade dos dados; • Utilização de ferramentas e técnicas adequadas; • Análise adequada das informações de negócio (BI); • Estratégia de implementação. Big Data Alguns exemplos (para o bem e para o mal): • Turbinagem de campanhas políticas de candidatos inexpressivos ou não favoritos (em nível mundial). • Conhecimento de perfis de potenciais clientes visando identificar necessidades de consumo, desejos, necessidades (ou até mesmo criá-las) • Utilização em marketing direto e outras formas de mapeamento e identificação da clientela. • Áreas diversas, tais como: medicina, aeronáutica/aviação, jurídica, educacional, governo, etc. • Etc. Os 3(5) V Volume: “a quantidade de dados importa. Com big data, você terá que processar grandes volumes de dados não estruturados de baixa densidade. Podem ser dados de valor desconhecido, como feeds de dados do Twitter, fluxos de cliques em uma página da web ou em um aplicativo para dispositivos móveis, ou ainda um equipamento habilitado para sensores. Para algumas empresas, isso pode utilizar dezenas de terabytes de dados. Para outras, podem ser centenas de petabytes.” https://www.oracle.com/br/big-data/guide/what-is-big-data.html https://www.oracle.com/br/big-data/guide/what-is-big-data.html Os 3(5) V “Velocidade é a taxa mais rápida na qual os dados são recebidos e talvez administrados. Normalmente, a velocidade mais alta dos dados é transmitida diretamente para a memória, em vez de ser gravada no disco. Alguns produtos inteligentes habilitados para internet operam em tempo real ou quase em tempo real e exigem avaliação e ação em tempo real.” https://www.oracle.com/br/big-data/guide/what-is-big-data.html https://www.oracle.com/br/big-data/guide/what-is-big-data.html Os 3(5) V “Variedade refere-se aos vários tipos de dados disponíveis. Tipos de dados tradicionais foram estruturados e se adequam perfeitamente a um banco de dados relacional. Com o aumento de big data, os dados vêm em novos tipos de dados não estruturados. Tipos de dados não estruturados e semiestruturados, como texto, áudio e vídeo exigem um pré-processamento adicional para obter significado e dar suporte a metadados.” https://www.oracle.com/br/big-data/guide/what-is-big-data.html https://www.oracle.com/br/big-data/guide/what-is-big-data.html Os 3(5) V Valor e Veracidade: “Dados possuem valor intrínseco. Mas isso é inútil até que esse valor seja descoberto. Igualmente importante: Qual a veracidade dosseus dados — e quanto você podem confiar neles?” https://www.oracle.com/br/big-data/guide/what-is-big-data.html https://www.oracle.com/br/big-data/guide/what-is-big-data.html Como tratar dados massivos • Técnicas tradicionais: – SGBD relacionais: não atendem a dados desestruturados; – SGBD NoSQL: uso restrito, baixo desempenho, vários tipos e abordagens de tratamento de dados; – Linguagens de programação: linguagens tradicionais também não ajudam muito; – Como então manipular big data? Linguagens para tratar dados massivos https://www.analyticsinsight.net/top-10-data-science-programming-languages-for-2020/ 1. Python 2. R 3. SQL 4. C/C++ 5. Java 6. Javascript 7. Matlab 8. Scala 9. Swift 10. Julia Como tratar dados massivos • “O conceito de variável em Python é representado sempre por um objeto (tudo é objeto), e toda variável é uma referência. Na maioria das linguagens de programação, quando iniciamos uma variável e atribuímos um valor a ela, essas carregam valores que são alocados em memória, e quando alteramos os seus valores, estamos alterando o valor na memória também. Porém, no Python as variáveis armazenam endereços de memória e não os valores.” • “Outro ponto a considerar é que em Python uma variável não tem um tipo fixo, mas sim apenas o tipo do conteúdo.” Fonte: DEVMEDIA (2018). Arquitetura Big Data Fonte: https://www.educba.com/big-data-architecture/ • Arquitetura projetada e desenvolvida de tal modo que não pode ser atendida por database management systems (DBMS) tradicionais. • Diferentes organizações possuem necessidades diferentes e o volume de dados a serem tratados/manipulados pode variar muito. • A dramática redução do custo de armzenamento de dados e o uso de tecnologias mais eficientes e flexíveis tem favorecido a ampliação e a variedade de dados. • Alguns dados massivos podem ser trabalhados de forma batch, enquanto outros precisam ser utilizados em tempo real, num modelo pipeline. Big Data atende a ambos os casos. Arquitetura Big Data Fonte: https://www.educba.com/big-data-architecture/ 1 2 3 4 Arquitetura Big Data Fonte: https://www.educba.com/big-data-architecture/ Sistemas Big Data envolvem mais de um tipo de dado a ser processado e são, de modo geral, classificados como: 1. Fontes de dados (big data) são utilizadas em modo batch. 2. Processamento de Big data nos modos real-time e batch. 3. Armazenamento de dados com o uso de ferramentas e technologias. 4. Utilização de dados de forma analítica ou em relatórios, com recursos como Machine learning e predictive analysis. Arquitetura Big Data Fonte: https://www.educba.com/big-data-architecture/ As oito etapas mostradas na figura se referem a: 1. Data Sources: fontes de dados envolvem todas as fontes principais que compõem o data pipeline. Isto inclui bancos de dados, relacionais ou não, arquivos de diversos formatos, dispositivos IoT, etc. 2. Armazenamento de dados: inclui os dados que são gerenciados em operações batch e os armazéns de dados que são distribuídos em formato nativo, sendo capazes de suportar grandes volumes e diferentes formatos de dados, guardados em grandes arquivos. Isto é conhecido como Data Lake, que geralmente formam bases de dados do Hadoop (HDFS), Microsoft Azure, AWS, etc. Geralmente se utilizam formatos Binary Large Objects (BLOB). Arquitetura Big Data Fonte: https://www.educba.com/big-data-architecture/ 3. Batch Processing: os dados são todos separados em suas diferentes categorias, sendo feitas, se necessário, operações de filtros e agregações, de modo a preparar os dados para análise. Isto inclui receber os dados de diversas fontes, processá-los e gerar novos arquivos de saída. Nesta etapa utilizam-se recursos como Hive jobs, U-SQL, Sqoop ou Pig, juntamente com algoritmos reducer , geralmente escritos em Java, Scala ou alguma outra linguagem, como por ex. Python. 4. Real Time-Based Message Ingestion: inclui operações real-time semelhantes ao que se faz nas operações em modo batch. Geralmente se utilizam data marts simples ou outras formas de armazenamento de dados. Também são utilizados recursos de tratamento de mensagens massivas, que agem como message buffers e suportam processamento de alta escalabilidade, provendo uma entrega confiável das mensagens enfileiradas. Algumas opções tecnológicas para isto são: Apache Kafka, Apache Flume, Event hubs do Azure, etc. Arquitetura Big Data Fonte: https://www.educba.com/big-data-architecture/ 5. Stream Processing: há uma pequena diferença entre tratamento de mensagens em tempo real e processamento em fluxo. No primeiro caso trata-se de tratamentos baseados em ferramentas com protocolos tipo publish-subscribe. Já quando se tem um fluxo (stream) o tratamento de dados pode ocorrer em diversos processos / janelas ao mesmo tempo, sendo os dados escritos num arquivo de saída. Exemplos de ferramentas: Apache Spark, Apache Flink, Storm, etc. 6. Analytics-Based Datastore: são os armazéns de dados utilizados para propósitos analíticos, e assim os dados processados são enfileirados e analisados utilizando ferramentas de analytics, que são basicamente soluções de BI. Os dados podem ser apresentados por meio de um SGBD NoSQL, tal como HBase ou qualquer uso alternativo de hive database, que também pode prover a abstração de metadados no data store. Algumas ferraamentas incluem: Hive, Spark SQL, Hbase, etc. Arquitetura Big Data Fonte: https://www.educba.com/big-data-architecture/ 7. Reporting and Analysis: esta é a etapa final do processo de tratamento de dados massivos, quando relatórios e análises devem ser gerados em diversos formatos, incluindo gráficos, análises, e insights específicos para o negócio da organização. Algumas tecnologias que se destacam aqui são: IBM Cognos, Oracle Hyperion, etc. 8. Orchestration: soluções de orquestração consistem de recursos de operações de tratamento de dados repetitivos na sua natureza e encapsulados em workflows, permitindo um armazenamento e uma recuperação mais eficiente desses dados por meio de unidades analíticas. Exemplos: Sqoop, oozie, data factory, etc. Diagrama Exemplo 1 Fonte: Journal of Big Data Diagrama Exemplo 2 Fonte: Journal of Big Data Diagrama Exemplo 3 Fonte: https://docs.microsoft.com/pt-br/azure/architecture/guide/architecture-styles/big-data Diagrama Exemplo 4 Fonte: https://www.xenonstack.com/blog/big-data-ingestion/ Diagrama Exemplo 5 Fonte: https://i.pinimg.com/originals/5f/05/05/5f0505de6bdf2435ea17f96794add6ac.jpg Data Lake Um data lake é um repositório de dados centralizado que permite armazenar todos os dados – estruturados ou não estruturados, em qualquer escala. Os dados podem ser guardados no formato nativo (“as-is”) ou transformá-los e depois executar diferentes tipos de análises sobre eles— de dashboards a visualizações, processamento de big data, real-time analytics e machine learning visando às tomadas de decisão em diferentes áreas de conhecimento. Fonte: https://aws.amazon.com/pt/big-data/datalakes-and-analytics/what-is-a-data-lake/ Data Lake Fonte: https://aws.amazon.com/pt/big-data/datalakes-and-analytics/what-is-a-data-lake/ https://mattturck.com/data2020/ Mapreduce • Algoritmo poderoso da Google para tratamento de dados massivos. • Utilizado em diversos softwares, tais como Apache Hadoop. • O algoritmo é público e pode ser acessado e customizado. • Ver material fornecido pelo professor (artigos). Referências https://www.gartner.com/en, acesso em 01/05/2019 https://www.oracle.com/br/big-data/guide/wha t-is-big-data.html, acesso em: 01/05/2019 https://www.devmedia.com.br/, acesso em 01/05/2019 https://www.gartner.com/en https://www.oracle.com/br/big-data/guide/what-is-big-data.html https://www.oracle.com/br/big-data/guide/what-is-big-data.html https://www.devmedia.com.br/