Desmis&ficando Tecnologias de Big Data Victor Teixeira de Almeida Petrobras
Importante A Petrobras não é responsável por qualquer informação con9da nesta apresentação. Todas as opiniões aqui emi9das são de inteira e exclusiva responsabilidade do autor. 4/11/2014 Desmis9ficando Tecnologias de Big Data 2
Desmis&ficando Tecnologias de Big Data Obje9vo: Este minicurso pretende desmis9ficar o tema big data em termos de tecnologias Ao final deste minicurso, vocês serão capazes de entender as principais diferenças entre as tecnologias existentes e de eventualmente definir a(s) melhor(es) para atacar(em) determinados problemas. 4/11/2014 Desmis9ficando Tecnologias de Big Data 3
Big Data De onde surgiram as novas tecnologias 4/11/2014 Desmis9ficando Tecnologias de Big Data 4
Tecnologias de big data Escalabilidade horizontal Processamento massivamente paralelo... Shared- nothing 4/11/2014 Desmis9ficando Tecnologias de Big Data 5
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 6
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 7
SGBD Relacional Álgebra relacional Controle de concorrência e transações (ACID) Linguagem de consulta padrão declara9va (SQL) Índices para facilitar o acesso aos dados Seleção Projeção σ π Renomear ρ Junção Agregação ϒ SQL 4/11/2014 Desmis9ficando Tecnologias de Big Data 8
O&mização de consultas (e.g. junções) Ordem R S T Algoritmo R S T R T S Nested loops join Sort- merge join Merge join Hash join... R S R S T 4/11/2014 Desmis9ficando Tecnologias de Big Data 9
SGBDs Relacionais 4/11/2014 Desmis9ficando Tecnologias de Big Data 10
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 11
SGBD orientado a colunas orientado a linhas OLTP 1 João da Silva 5/8/1986 99872-6482 ID NOME DT_NASC TEL 1 João da Silva 5/8/1986 99872-6482 2 Manuel Carlos 3/12/1977 99512-9697 3 Júlia Almeida 12/1/1991 99787-9232 4 Maria José 1/9/1979 99588-3248 5 Alberto Jr. 23/2/1980 99784-9885 6 Ana Carolina 21/8/1999 99875-3214 2 Manuel Carlos 3/12/1977 99512-9697 3 Júlia Almeida 12/1/1991 99787-9232 4 Maria José 1/9/1979 99588-3248... OLAP orientado a colunas compressão de dados 1 2 3 4 5 6 João da Silva Manuel Carlos Júlia Almeida Maria José Alberto Jr. Ana Carolina 5/8/1986 3/12/1977 12/1/1991 1/9/1979 23/2/1980 21/8/1999 99872-6482 99512-9697 99787-9232 99588-3248 99784-9885 99875-3214 4/11/2014 Desmis9ficando Tecnologias de Big Data 12
SGBDs orientados a colunas C- Store 4/11/2014 Desmis9ficando Tecnologias de Big Data 13
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 14
SGBD em memória Gerenciador de transações Operação de E/S Gerenciador de páginas Cache de disco em memória (e.g. LRU) pg_id página (4k, 8k, 16k) 234523 ÇLAEUIRQO8WY8098Y91 476848 Q9U8-9J DÍPOAUSEAUS 9 900321 JP98QW34U50982UR P0 784651 QPPPPAJ809SGHA98SHG 345313 IJAF PSDJFAPS09JP9203J 768874 JPONIDFPASD90QW8J98 105609 A98SJHAF07SHDF0A78S Log de transações Base de dados 4/11/2014 Desmis9ficando Tecnologias de Big Data 15
SGBD em memória Operação de E/S 1 João da Silva 5/8/1986 99872-6482 2 Manuel Carlos 3/12/1977 99512-9697 Gerenciador de transações 3 4 5 6 Júlia Almeida Maria José Alberto Jr. Ana Carolina 12/1/1991 1/9/1979 23/2/1980 21/8/1999 99787-9232 99588-3248 99784-9885 99875-3214 Log de transações 4/11/2014 Desmis9ficando Tecnologias de Big Data 16
SGBDs em memória 4/11/2014 Desmis9ficando Tecnologias de Big Data 17
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 18
SGBD MPP Dados distribuídos (par9cionamento horizontal) Processamento (algoritmos) paralelo de consultas OLAP 4/11/2014 Desmis9ficando Tecnologias de Big Data 19
SGBD MPP Algoritmo R S R S R S R S R S Hash(X) 4/11/2014 Desmis9ficando Tecnologias de Big Data 20
SGBDs MPP 4/11/2014 Desmis9ficando Tecnologias de Big Data 21
SGBDs MPP 4/11/2014 Desmis9ficando Tecnologias de Big Data 22
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 23
NoSQL Escalabilidade SGBDs relacionais não escalam Teorema CAP Abandono da linguagem SQL Interface simples de acesso aos dados (put/get) Modelo de dados flexível (dependente da aplicação/dados) Um conjunto de dados (sem junção) Availability Sharding (par9cionalmento horizontal) Consistency Par99on Tolerance 4/11/2014 Desmis9ficando Tecnologias de Big Data 24
NoSQL SGBDs relacionais não escalam Sharding (par9cionamento horizontal) + Two- phase commit Tenho que tentar colocar dados relacionados em transações no mesmo local, para evitar transações distribuídas 4/11/2014 Desmis9ficando Tecnologias de Big Data 25
NoSQL SGBDs relacionais não escalam OLTP OLAP 4/11/2014 Desmis9ficando Tecnologias de Big Data 26
Exemplo Pergunta em entrevista na Google: como implementar consultas top10? Base de dados com termos de consulta e suas respec9vas contagens (quantas vezes aquele termo foi consultado) Cada vez que um termo é consultado no Google, adiciona- se 1 à contagem Um SGBD relacional aguenta esta vazão (throughput) de transações de update? Consulta é uma ordenação dos termos pelas contagens, escolhendo- se os 10 primeiros resultados Um SGBD relacional aguenta este volume de termos de consulta? 4/11/2014 Desmis9ficando Tecnologias de Big Data 27
NoSQL Modelagens para dados de séries temporais Granularidade: segundo Granularidade: minuto Granularidade: hora Granularidade: hora Fonte: hcp://blog.mongodb.org/post/65517193370/schema- design- for- Pme- series- data- in- mongodb 4/11/2014 Desmis9ficando Tecnologias de Big Data 28
NoSQL Fonte: hcp://blogs.enterprisedb.com/2014/09/24/postgres- outperforms- mongodb- and- ushers- in- new- developer- reality/ 4/11/2014 Desmis9ficando Tecnologias de Big Data 29
NoSQL 4/11/2014 Desmis9ficando Tecnologias de Big Data 30
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 31
NewSQL Classe de SGBDs modernos que tentam prover a mesma escalabilidade dos sistemas NoSQL para OLTP, mantendo a garan9a ACID dos SGBDs tradicionais Modelo relacional e SQL Controle de concorrência distribuído (estado da arte) Em memória Algoritmos de sharding 4/11/2014 Desmis9ficando Tecnologias de Big Data 32
NewSQL 4/11/2014 Desmis9ficando Tecnologias de Big Data 33
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 34
Hadoop So~ware livre (Apache So~ware Founda9on) Sistema de arquivos distribuído (HDFS) Processamento paralelo de dados (MapReduce) Linguagens declara9vas (Hive e Pig) Adições Spark/Shark Impala/HAWK... 4/11/2014 Desmis9ficando Tecnologias de Big Data 35
Hadoop (histórico) 4/11/2014 Desmis9ficando Tecnologias de Big Data 36
HDFS Arquivos divididos em blocos (default 64MB) Cada bloco é replicado em algumas poucas máquinas no cluster (default 3) Estrutura namenode: que conhece os metadados e a localidade datanodes: onde os blocos estão armazenados 4/11/2014 Desmis9ficando Tecnologias de Big Data 37
MapReduce Framework de processamento paralelo Tolerância a falhas 4/11/2014 Desmis9ficando Tecnologias de Big Data 38
Exemplo WordCount (contagem de palavras) 4/11/2014 Desmis9ficando Tecnologias de Big Data 39
Exemplo (WordCount) dog cat dog dog fox dog lion cat dog dog lion fox cat 4/11/2014 Desmis9ficando Tecnologias de Big Data 40
Exemplo Sel oin Junção de uma tabela com ela mesma R(X,Y) X=Y R(X,Y) 4/11/2014 Desmis9ficando Tecnologias de Big Data 41
Hive Desenvolvido pelo Facebook Man9do atualmente por Facebook, Ne lix, dentre outros HiveQL, linguagem similar a SQL, abstraindo funções MapReduce Não cria um SGBD, simplesmente executa jobs MapReduce hive> CREATE TABLE twitter(follower INT, followee INT); hive> LOAD DATA INPATH '/input/twitter' OVERWRITE INTO TABLE twitter; hive> SELECT COUNT(*) > FROM twitter R JOIN twitter S ON R.followee = S.follower; 4/11/2014 Desmis9ficando Tecnologias de Big Data 42
Pig Desenvolvido pela Yahoo! ~2006 Movido para o Hadoop em 2007 Linguagem (Pig La9n) de alto nível para abstrair a linguagem Java grunt> Twitter_1 = LOAD '/input/twitter' USING PigStorage(' ') AS (follower:int, followee:int); grunt> Twitter_2 = LOAD '/input/twitter' USING PigStorage(' ') AS (follower:int, followee:int); grunt> Twitter_SelfJoin = JOIN Twitter_1 by $1, Twitter_2 by $0; grunt> Twitter_SelfJoin_Grp = GROUP Twitter_SelfJoin ALL; grunt> Twitter_SelfJoin_Cnt = FOREACH Twitter_SelfJoin_Grp GENERATE COUNT(Twitter_SelfJoin); grunt> DUMP Twitter_SelfJoin_Cnt; 4/11/2014 Desmis9ficando Tecnologias de Big Data 43
Spark Spark: Hadoop em memória Shark SQL: SQL para Spark (assim como Hive) Ideia: alteração do mecanismo de tolerância a falhas não- falha: execução mais rápida (dados em memória, sem necessidade de salvar em disco cada resultado) falha: execução mais lenta (rollback de diversas etapas do processo, não somente uma como no Hadoop) 100x mais rápido 4/11/2014 Desmis9ficando Tecnologias de Big Data 44
Cloudera Impala SGBD MPP em cima de HDFS Sem uso de MapReduce 4/11/2014 Desmis9ficando Tecnologias de Big Data 45
Hadoop 4/11/2014 Desmis9ficando Tecnologias de Big Data 46
E o que eu faço com toda essa tecnologia? 4/11/2014 Desmis9ficando Tecnologias de Big Data 47
E o que eu faço com toda essa tecnologia? 4/11/2014 Desmis9ficando Tecnologias de Big Data 48
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 49
Machine Learning R R e Hadoop R e MonetDB (ontem) Madlib Primi9vas de machine learning (gradient descent) para o banco de dados (in- database) Shark Machine learning library Mahout Algoritmos de machine learning para Hadoop MLaaS Nirvana 4/11/2014 Desmis9ficando Tecnologias de Big Data 50
R Linguagem e IDE para cálculos esta s9cos Interfaces para Oracle MonetDB (no cia ontem) Hadoop (RHadoop package)... 4/11/2014 Desmis9ficando Tecnologias de Big Data 51
Mahout Biblioteca de algoritmos de machine learning para Hadoop MapReduce Abandonaram recentemente o Hadoop MapReduce para Apache Spark Implementações para Single machine MapReduce Spark H2O Apache Flink 4/11/2014 Desmis9ficando Tecnologias de Big Data 52
Madlib Algoritmos de machine learning interno ao banco de dados Classificação Regressão Clustering Regras de associação Implementações para PostgreSQL Pivotal Greenplum Database Pivotal Greenplum HAWQ 4/11/2014 Desmis9ficando Tecnologias de Big Data 53
Spark MLlib Mesmo que o Madlib para Spark Regressão Classificação Collabora9ve filtering Clustering Decomposição (SVD e PCA) Implementações para Java, Scala e Python 4/11/2014 Desmis9ficando Tecnologias de Big Data 54
Outros 4/11/2014 Desmis9ficando Tecnologias de Big Data 55
Nirvana Machine Learning as a Service (MLaaS) 4/11/2014 Desmis9ficando Tecnologias de Big Data 56
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 57
Visualização Preparação dos dados e modelagem 95% do tempo Execução dos modelos 5% do tempo Interpretação e visualização dos resultados Outros 95% do tempo 4/11/2014 Desmis9ficando Tecnologias de Big Data 58
Visualização 4/11/2014 Desmis9ficando Tecnologias de Big Data 59
Tecnologias de Big Data SGBD relacional SGBD relacional orientado a colunas SGBD relacional em memória SGBD MPP NoSQL NewSQL Hadoop Machine Learning Visualização Data Scien9st 4/11/2014 Desmis9ficando Tecnologias de Big Data 60
Cien&sta de dados (data scien*st) 4/11/2014 Desmis9ficando Tecnologias de Big Data 61
Cien&sta de dados (data scien*st) US faces shortage of 140,000 to 190,000 people with deep analy9cal skills, as well as 1.5 million managers and analysts with the know- how to use the analysis of big data to make effec9ve decisions. Fonte: Big data: The next fronper for innovapon, compeppon, and producpvity, Mckinsey Global InsPtute 4/11/2014 Desmis9ficando Tecnologias de Big Data 62
Cien&sta de dados (data scien*st) An individual responsible for modeling complex business problems, discovering business insights and iden9fying opportuni9es through the use of sta9s9cal, algorithmic, mining and visualiza9on techniques. In addi9on to advanced analy9c skills, this individual is also proficient at integra9ng and preparing large, varied datasets, architec9ng specialized database and compu9ng environments, and communica9ng results. A data scien9st may or may not have specialized industry knowledge to aid in modeling business problems and with understanding and preparing data. So~ Skills: Communica9on, Collabora9on, Leadership, Crea9vity, Discipline, Passion Fonte: Gartner, Emerging Role of the Data ScienPst and the Art of Data Science Published: 20 March 2012 ID:G00227058 Analyst(s): Douglas Laney Lisa Kart 4/11/2014 Desmis9ficando Tecnologias de Big Data 63
Cien&sta de dados (data scien*st) Especialização no Coursera 4/11/2014 Desmis9ficando Tecnologias de Big Data 64
Cien&sta de dados (data scien*st) Outros cursos no Coursera 4/11/2014 Desmis9ficando Tecnologias de Big Data 65
Obrigado Contato: victor.almeida@petrobras.com.br