SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
Big Data para programadores convencionais 
Conceitos para quem começa agora! 
Fonte: EMC²
Quem sou eu? 
•Milton Goya 
•Especialista em Banco de Dados e Business Inteligence. 
•Bacharel em Administração de Empresas e Tecnólogo em Processamento de Dados. 
•SERPRO, Banco Itaú, Banco Bradesco, Estrela. 
•Mainframe, DBA, Professor e Instrutor.
Big Data não é novidade! 
•Há décadas temos necessidade de processar grandes volumes de dados. 
•Astronomia, geologia, oceanografia, meteorologia sempre trabalharam com grande quantidade de dados.
Big Data não é novidade! 
•O processamento exige hardware específico, softwares e desenvolvedores com habilidades analíticas específicas. 
•Aumento pela demanda por hardware de baixo custo e softwares que pudessem ser desenvolvidos por programadores com habilidades de programação convencional.
Fonte: EMC²
Fonte: IDGNow
O que é Big Data 
Fonte: EMC²
O que é Big Data 
•Segundo o McKinsey Global Institute [2011], Big Data refere-se: 
–“ao conjunto de dados cujo tamanho está além da capacidade de análise, captura, armazenamento e gerenciamento de uma ferramenta desenvolvida por um software típico”
O que é Big Data 
Fonte: EMC²
O que é Big Data 
•Big Data não deve ser definido em número de terabytes ou petabytes. A quantidade de bytes pode mudar dependendo: 
–do tipo de dados 
–do setor onde a tecnologia está sendo aplicada ou 
–da própria evolução da tecnologia. 
Fonte: QlikView
O que é Big Data 
Fonte: EMC²
O que é Big Data 
Fonte: EMC²
O que é Big Data 
•O termo Big Data implica no uso de metodologias e ferramentas para processamento e análise de dados que possam produzir resultados úteis que não possam ser deduzidas/calculadas, de maneira eficiente, através de outros métodos. 
Fonte: EMC²
O que é Big Data 
Fonte: EMC²
Declaração de problema 
•Como processar Big Data usando o estado-da- arte da tecnologia atual sem “estourar” o limite de tempo e o orçamento? 
Fonte: EMC²
Onde está o “gargalo”? 
•Velocidade das CPUs esta cada vez maior mas... 
•A velocidade de acesso a disco, ou volumes de discos ainda é lenta. 
•O aumento da velocidade de CPU não beneficia muito os programas que tem necessidade de acessar grandes volumes de dados. 
Fonte: Oracle
Procurando soluções 
•As linguagens de programação modernas suportam conceitos de multiprogramação, tais como multi-threading implementados como bibliotecas (por exemplo, pthreads POSIX) para C++ ou buit-in em Java. 
•Os modelos de programação paralela podem ser utilizados para reduzir o tempo de processamento ou manipulação de grandes volumes de dados. 
Fonte: Oracle
Operações em Paralelo 
•Operações não sequenciais são quebradas em múltiplos chunks que são executadas simultaneamente em várias CPUs da mesma máquina. 
•O programa deve ser modelado para tirar proveito do processamento em paralelo. 
Fonte: Oracle
Operações em Paralelo 
•Operações em paralelo aumentam a complexidade do código. 
–Coordenação de tarefas concorrentes: como prevenir que tarefas concorrentes interfiram umas nas outras. 
–Paralelização de algoritmos: nem todo algoritmo pode ser paralelizado. 
–Sincronização e bloqueio de memória compartilhada: protegida por locks ou semáforos para evitar a corrupção de dados. 
Fonte: Oracle
SQL 
•SQL padrão é a forma mais comum de manipulação de dados transacionais. 
•Há anos os SGBD Oracle, DB2 e SQLServer permitem executar operações de consulta e carga em paralelo. 
•Entretanto as consultas paralelas estão restritas ao mesmo nó. 
Fonte: Oracle
MapReduce 
Fonte: EMC²
MapReduce 
•Segundo a IBM [2009], MapReduce é um 
–“Modelo de programação que permite o processamento de dados massivos em um algoritmo paralelo e distribuído, geralmente em um cluster de computadores.” 
•MapReduce é baseado nas operações de Map e Reduce de linguagens funcionais como o LISP. 
Fonte: IBM
MapReduce 
•Trata os dados como um conjunto de pares <Key, Value>. (chave/valor) 
•As operações de entrada leem os dados e geram os pares <Key, Value> 
•O usuário fornece duas funções Map e Reduce, que são chamadas em tempo de execução.
MapReduce 
•Map: 
–Obtêm uma lista de pares <Key, Value>, processa os pares e gera um conjunto de de pares <Key, Value> intermediário. 
–Repassa o valor intermediário para a função Reduce. 
–Cada par é processado em paralelo.
MapReduce 
•Reduce: 
–Processa todos os valores associados com a mesma <Key>. 
–Mescla os valores para formar um conjunto de valores possivelmente menor. 
–Geralmente, apenas um valor de saída de 0 ou 1 é produzido a cada chamada Reduce. 
–Os valores intermediários são fornecidos à função Reduce do usuário por um iterador permitindo identificar listas de valores que são grandes demais para a memória.
Exemplo: Contador de Palavras 
•Considere o exemplo do problema proposto pela IBM: 
–Será contado o número de ocorrências de cada palavra em um grande conjunto de documentos.
Exemplo: Contador de Palavras 
•A função Map emite cada palavra mais uma contagem associada de ocorrências. 
mapper (filename, file-contents): 
for each word in file-contents: 
emit (word, 1)
Exemplo: Contador de Palavras 
•A função Reduce soma todas as contagens emitidas para uma palavra específica. 
reducer (word, values): 
sum = 0 
for each value in values: 
sum = sum + value 
emit (word, sum)
MapReduce – Prós e Contras 
Prós 
Contras 
Modelo conceitual fácil de entender: apenas duas operações 
Não é simples implementar em linguagens de programação convencionais, como Java, C++ e Python. 
Automatiza a distribuição de dados e agregação de resultados. 
O programador deve codificar cada operação de acesso a dados. 
Pode ser incorporado por várias linguagens procedurais. 
A natureza “opaca” das funções Map e Reduce impedem sua otimização. 
Não é preciso preocupar-se com os detalhes da paralelização e recuperação de falhas. 
Elimina locks.
HDFS 
Fonte: EMC²
HDFS 
•O Hadoop Distributed File System (HDFS) é um sistema de arquivos altamente tolerante a falhas projetado para executar em hardware padrão de baixo custo. 
•O HDFS disponibiliza acesso de alto rendimento para os dados do aplicativo e é adequado para aplicativos com grandes conjuntos de dados.
Fonte: EMC²
Hadoop 
•Segundo a Hadoop, “Hadoop é um storage confiável e um sistema analítico” [2014] 
•Composto por duas partes essenciais: 
–o Hadoop Distributed Filesystem (HDFS), sistema de arquivos distribuído e confiável, responsável pelo armazenamento dos dados 
–Hadoop MapReduce, responsável pela análise e processamento dos dados. 
•O nome do projeto veio do elefante de pelúcia que pertencia ao filho do criador, Doug Cutting.
Pig e Pig Latin 
•Pig é um mecanismo para executar os fluxos de dados de modo paralelo ao Hadoop. 
•Usa uma linguagem chamada Pig Latin para expressar esses fluxos de dados. 
•Com a Pig Latin, é possível descrever como os dados de uma ou mais entradas devem ser lidos, processados e, depois, armazenados em uma ou mais saídas de modo paralelo.
Pig e Pig Latin 
•Um programa de Pig Latin consiste de uma série de operações ou transformações que é aplicada aos dados de entrada a fim de produzir a saída.
Pig e Pig Latin 
•Exemplo de programa para analisar os arquivos de log de um web site e encontrar as 10 páginas mais visitadas de cada categoria.
Pig e Pig Latin 
visits = load '/data/visits' as (user, url, time); 
gVisits = group visits by url; 
visitCounts = foreach gVìsits generate urI, count(urlVisits); 
urllnfo = load '/data/urllnfo' as (url, category, pRank); 
visitCounts = join visitCounts by url, urlinfo by url; 
gCategonies = group visitCounts by category; 
topUrls = foreach gCategonies generate top(visitCounts,10); 
Store topUrls into '/data/topUrls';
Hive e HiveQL 
•Hive é framework para soluções de Data Warehousing executado no ambiente Hadoop. 
•HiveQL é uma linguagem declarativa, similar ao SQL, usada para criar programas executáveis no Hive. 
•O compilador HiveQL traduz os comando em HiveQL em jobs do MapReduce e os envia para o Hadoop executar.
Hive e HiveQL 
SELECT * FROM sales 
WHERE amount > 10 AND region = "US“ 
CREATE TABLE food 
(id INT, msg STRING) 
PARTITIONED BY (dt STRING);
Hive e HiveQL 
FROM ( 
FROM docs 
MAP text USING ‘python wc_map.py’ 
AS (word, count) CLUSTER BY word 
) words 
REDUCE word, count USING `python wc_reduce.py’
SDSS 
•O Sloan Digital Sky Survey é o mais ambicioso mapeamento astronômico que já foi feito. 
•Este projeto vai mapear detalhadamente um quarto de todo o céu, determinando as posições e brilhos absolutos de centenas de milhões de objetos celestes. 
•Vai medir as distâncias de mais de um milhão de galáxias e quasares. 
•A medida que o levantamento progride, os dados são liberados para a comunidade científica (e para o público em geral) em incrementos anuais.
SDSS 
•Os cientistas precisam primeiro processar os dados rapidamente (em menos de uma semana) porque os astrônomos do SDSS necessitam das informações para configurar os telescópios para funcionar da forma mais eficiente durante a próxima fase escura da lua. Se passar muito tempo, os objetos alvo irão se por, conforme as estações mudam.
SDSS 
•Os cientistas precisam primeiro processar os dados rapidamente (em menos de uma semana) porque os astrônomos do SDSS necessitam das informações para configurar os telescópios para funcionar da forma mais eficiente durante a próxima fase escura da lua. Se passar muito tempo, os objetos alvo irão se por, conforme as estações mudam.
SDSS 
•As imagens passam por filtros óticos que deixam passar bandas centradas em 354, 476, 628, 769 and 925 nm em comprimento de onda, chamadas respectivamente de u, g, r, i e z. 
1237651758284866523,269.742450488939,-0.000559032663559684,20.75933,18.62895,17.68734,17.24949,17.06834 1237651758285652455,271.497048661584,0.000432606430817509,24.63467,19.80283,19.01332,18.16589,22.8269 1237651758284147974,268.084604422452,-0.000477759959196492,20.11935,18.55714,17.86824,17.52779,17.31551 1237648721254089233,233.360450043607,0.000599034101109869,21.04421,19.43434,18.41128,17.89137,17.50843 1237663526494931611,306.65415889352,0.000642419128947454,22.37276,20.84306,19.75857,19.15853,18.87529 1237656894529209548,309.847614242754,-0.000963889419181835,23.45641,20.69753,18.98959,18.39435,18.04083 1237656894530519858,312.806752181141,-0.000538041014713186,19.80919,18.40785,17.58722,17.13805,16.88819
SDSS e HiveQL 
•Cria tabela para conter os dados que iremos analisar da Galáxia! 
CREATE TABLE galaxy 
(objId BIGINT, ra REAL, dec REAL, u REAL, g REAL, r REAL, i REAL, z REAL)
•Popula a tabela com os dados fornecidos pelo SDSS 
SDSS e HiveQL 
for row in reader: 
cur.execute("INSERT INTO galaxy (objId, ra, dec, u, g, r, i, z) VALUES(?, ?, ?, ?, ?, ?, ?, ?);", to_db)
•Pronto! 
SDSS e HiveQL 
SELECT * FROM galaxy
•Junção entre a tabela de imagens (PhotoOBJ) e a tabela de espectro (SpecObj) 
SDSS e HiveQL 
SELECT TOP 10 
p.objid,p.ra,p.dec,p.u,p.g,p.r,p.i,p.z, 
p.run, p.rerun, p.camcol, p.field, 
s.specobjid, s.class, s.z as redshift, 
s.plate, s.mjd, s.fiberid 
FROM PhotoObj AS p 
JOIN SpecObj AS s ON s.bestobjid = p.objid 
WHERE 
p.u BETWEEN 0 AND 19.6 
AND g BETWEEN 0 AND 20
Para saber mais 
•Software Big Data livre para os Impacientes. 
•Behind Big Data. 
•SDSS-III. 
•MapReduce Tutorial. 
•Big Data in Astronomy. 
•Statistics in Astronomy. 
•Processamento de Dados Distribuídos com Hadoop. 
•Introdução à analítica de dados com base em Hadoop no IBM SmartCloud Enterprise. 
•Mining of Massive Datasets. 
•Escalabilidade horizontal para execução paralela de tarefas. 
•SkyServer DR9

Mais conteúdo relacionado

Mais procurados

Mapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesMapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesGuilherme Araújo
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Hadoop - Primeiros passos
Hadoop - Primeiros passosHadoop - Primeiros passos
Hadoop - Primeiros passosSensedia
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...João Gabriel Lima
 
TDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONTDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONThiago Santiago
 
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...PGDay Campinas
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveFlavio Fonte, PMP, ITIL
 
Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Natalia Raythz
 
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...Ivanilton Polato
 
Arquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceArquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceFelipe RENZ - MBA TI / Big
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceMatteus Barbosa
 
Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...
Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...
Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...wesleylouzeiro
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadooptdc-globalcode
 
Análise e Caracterização das Novas Ferramentas para Computação em Nuvem
Análise e Caracterização das Novas Ferramentas para Computação em NuvemAnálise e Caracterização das Novas Ferramentas para Computação em Nuvem
Análise e Caracterização das Novas Ferramentas para Computação em NuvemOtávio Carvalho
 
Machine learning com Apache Spark
Machine learning com Apache SparkMachine learning com Apache Spark
Machine learning com Apache SparkSandys Nunes
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 

Mais procurados (20)

Mapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e AplicaçõesMapreduce - Conceitos e Aplicações
Mapreduce - Conceitos e Aplicações
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Hadoop - Primeiros passos
Hadoop - Primeiros passosHadoop - Primeiros passos
Hadoop - Primeiros passos
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...
 
TDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONTDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ON
 
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hive
 
Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema.
 
Treinamento Hadoop - dia2
Treinamento Hadoop - dia2Treinamento Hadoop - dia2
Treinamento Hadoop - dia2
 
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
 
Arquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceArquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open source
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
 
Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...
Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...
Aplicação da Técnica Mapreduce na Modelagem de Algoritmos Genéticos para o “P...
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoop
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Análise e Caracterização das Novas Ferramentas para Computação em Nuvem
Análise e Caracterização das Novas Ferramentas para Computação em NuvemAnálise e Caracterização das Novas Ferramentas para Computação em Nuvem
Análise e Caracterização das Novas Ferramentas para Computação em Nuvem
 
Machine learning com Apache Spark
Machine learning com Apache SparkMachine learning com Apache Spark
Machine learning com Apache Spark
 
Big Data e seu fiel companheiro Spark
Big Data e seu fiel companheiro SparkBig Data e seu fiel companheiro Spark
Big Data e seu fiel companheiro Spark
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 

Semelhante a Big Data conceitos para programadores

[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big DataDeep Tech Brasil
 
Big data e mineração de dados
Big data e mineração de dadosBig data e mineração de dados
Big data e mineração de dadosElton Meira
 
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMRStream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMRCicero Joasyo Mateus de Moura
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Ambiente Livre
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
Big Data Open Source com Hadoop
Big Data Open Source com HadoopBig Data Open Source com Hadoop
Big Data Open Source com HadoopAmbiente Livre
 
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - CuritibaPalestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - CuritibaMarcio Junior Vieira
 
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídosluanrjesus
 
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricModernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricDenodo
 

Semelhante a Big Data conceitos para programadores (20)

MapReduce
MapReduceMapReduce
MapReduce
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
 
Big data e mineração de dados
Big data e mineração de dadosBig data e mineração de dados
Big data e mineração de dados
 
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMRStream de dados e Data Lake com Debezium, Delta Lake e EMR
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre
 
Big Data na Nuvem
Big Data na NuvemBig Data na Nuvem
Big Data na Nuvem
 
Big Data, JVM e Redes Sociais
Big Data, JVM e Redes SociaisBig Data, JVM e Redes Sociais
Big Data, JVM e Redes Sociais
 
BigData MapReduce
BigData MapReduceBigData MapReduce
BigData MapReduce
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
Hadoop
HadoopHadoop
Hadoop
 
Big Data Open Source com Hadoop
Big Data Open Source com HadoopBig Data Open Source com Hadoop
Big Data Open Source com Hadoop
 
Bi ferramentas olap 1
Bi   ferramentas olap 1Bi   ferramentas olap 1
Bi ferramentas olap 1
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - CuritibaPalestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
 
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas DistribuídosPlanejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
 
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricModernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
 
Big data e ecossistema hadoop
Big data e ecossistema hadoopBig data e ecossistema hadoop
Big data e ecossistema hadoop
 

Mais de Roberto Oliveira

10 mandamentos do projeto de BI
10 mandamentos do projeto de BI10 mandamentos do projeto de BI
10 mandamentos do projeto de BIRoberto Oliveira
 
Qmeeting 2018 - Utilizando Mashups no Qlik Sense
Qmeeting 2018 - Utilizando Mashups no Qlik SenseQmeeting 2018 - Utilizando Mashups no Qlik Sense
Qmeeting 2018 - Utilizando Mashups no Qlik SenseRoberto Oliveira
 
Qmeeting 2018 - Web Connectors para Qlik
Qmeeting 2018 -  Web Connectors para QlikQmeeting 2018 -  Web Connectors para Qlik
Qmeeting 2018 - Web Connectors para QlikRoberto Oliveira
 
QMeeting 2018 - Utilizando o Qlik core
QMeeting 2018 - Utilizando o Qlik coreQMeeting 2018 - Utilizando o Qlik core
QMeeting 2018 - Utilizando o Qlik coreRoberto Oliveira
 
QMeeting 2018 - Como integrar qlik e cloudera
QMeeting 2018 - Como integrar qlik e clouderaQMeeting 2018 - Como integrar qlik e cloudera
QMeeting 2018 - Como integrar qlik e clouderaRoberto Oliveira
 
Tuning de performance_qmeeting2018
Tuning de performance_qmeeting2018Tuning de performance_qmeeting2018
Tuning de performance_qmeeting2018Roberto Oliveira
 
Design para Analise de Dados - Thiago Pessato
Design para Analise de Dados - Thiago PessatoDesign para Analise de Dados - Thiago Pessato
Design para Analise de Dados - Thiago PessatoRoberto Oliveira
 
Carreiras em analise de dados
Carreiras em analise de dadosCarreiras em analise de dados
Carreiras em analise de dadosRoberto Oliveira
 
Data Science Qmeeting 2018
Data Science Qmeeting 2018Data Science Qmeeting 2018
Data Science Qmeeting 2018Roberto Oliveira
 
Modelagem de dados para Qlik Qmeeting 2018
Modelagem de dados para Qlik Qmeeting 2018Modelagem de dados para Qlik Qmeeting 2018
Modelagem de dados para Qlik Qmeeting 2018Roberto Oliveira
 
Mapas com qlik qmeeting 2018
Mapas com qlik qmeeting 2018Mapas com qlik qmeeting 2018
Mapas com qlik qmeeting 2018Roberto Oliveira
 
Machine learning qmeeting 2018
Machine learning qmeeting 2018Machine learning qmeeting 2018
Machine learning qmeeting 2018Roberto Oliveira
 
Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018Roberto Oliveira
 
CONHEÇA O POWER BI - QMEETING 2018
CONHEÇA O POWER BI - QMEETING 2018CONHEÇA O POWER BI - QMEETING 2018
CONHEÇA O POWER BI - QMEETING 2018Roberto Oliveira
 
Sistema licenciamento qliksense
Sistema licenciamento qliksenseSistema licenciamento qliksense
Sistema licenciamento qliksenseRoberto Oliveira
 

Mais de Roberto Oliveira (20)

10 mandamentos do projeto de BI
10 mandamentos do projeto de BI10 mandamentos do projeto de BI
10 mandamentos do projeto de BI
 
Qmeeting 2018 - Utilizando Mashups no Qlik Sense
Qmeeting 2018 - Utilizando Mashups no Qlik SenseQmeeting 2018 - Utilizando Mashups no Qlik Sense
Qmeeting 2018 - Utilizando Mashups no Qlik Sense
 
Qmeeting 2018 - Web Connectors para Qlik
Qmeeting 2018 -  Web Connectors para QlikQmeeting 2018 -  Web Connectors para Qlik
Qmeeting 2018 - Web Connectors para Qlik
 
QMeeting 2018 - Utilizando o Qlik core
QMeeting 2018 - Utilizando o Qlik coreQMeeting 2018 - Utilizando o Qlik core
QMeeting 2018 - Utilizando o Qlik core
 
Datalakers 2018 Qmeeting
Datalakers 2018 QmeetingDatalakers 2018 Qmeeting
Datalakers 2018 Qmeeting
 
QMeeting 2018 - Como integrar qlik e cloudera
QMeeting 2018 - Como integrar qlik e clouderaQMeeting 2018 - Como integrar qlik e cloudera
QMeeting 2018 - Como integrar qlik e cloudera
 
Qmeeting Experts Hands on
Qmeeting Experts Hands onQmeeting Experts Hands on
Qmeeting Experts Hands on
 
Tuning de performance_qmeeting2018
Tuning de performance_qmeeting2018Tuning de performance_qmeeting2018
Tuning de performance_qmeeting2018
 
Design para Analise de Dados - Thiago Pessato
Design para Analise de Dados - Thiago PessatoDesign para Analise de Dados - Thiago Pessato
Design para Analise de Dados - Thiago Pessato
 
Carreiras em analise de dados
Carreiras em analise de dadosCarreiras em analise de dados
Carreiras em analise de dados
 
Data Science Qmeeting 2018
Data Science Qmeeting 2018Data Science Qmeeting 2018
Data Science Qmeeting 2018
 
Modelagem de dados para Qlik Qmeeting 2018
Modelagem de dados para Qlik Qmeeting 2018Modelagem de dados para Qlik Qmeeting 2018
Modelagem de dados para Qlik Qmeeting 2018
 
Mapas com qlik qmeeting 2018
Mapas com qlik qmeeting 2018Mapas com qlik qmeeting 2018
Mapas com qlik qmeeting 2018
 
Machine learning qmeeting 2018
Machine learning qmeeting 2018Machine learning qmeeting 2018
Machine learning qmeeting 2018
 
Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018Business Analytics com Tableau Qmeeting 2018
Business Analytics com Tableau Qmeeting 2018
 
Abertura Qmeeting 2018
Abertura Qmeeting 2018Abertura Qmeeting 2018
Abertura Qmeeting 2018
 
CONHEÇA O POWER BI - QMEETING 2018
CONHEÇA O POWER BI - QMEETING 2018CONHEÇA O POWER BI - QMEETING 2018
CONHEÇA O POWER BI - QMEETING 2018
 
Sistema licenciamento qliksense
Sistema licenciamento qliksenseSistema licenciamento qliksense
Sistema licenciamento qliksense
 
Qmeeting 2015 Big Data
Qmeeting 2015 Big DataQmeeting 2015 Big Data
Qmeeting 2015 Big Data
 
Qmeeting2015 Boas_vindas
Qmeeting2015 Boas_vindasQmeeting2015 Boas_vindas
Qmeeting2015 Boas_vindas
 

Big Data conceitos para programadores

  • 1. Big Data para programadores convencionais Conceitos para quem começa agora! Fonte: EMC²
  • 2. Quem sou eu? •Milton Goya •Especialista em Banco de Dados e Business Inteligence. •Bacharel em Administração de Empresas e Tecnólogo em Processamento de Dados. •SERPRO, Banco Itaú, Banco Bradesco, Estrela. •Mainframe, DBA, Professor e Instrutor.
  • 3.
  • 4. Big Data não é novidade! •Há décadas temos necessidade de processar grandes volumes de dados. •Astronomia, geologia, oceanografia, meteorologia sempre trabalharam com grande quantidade de dados.
  • 5. Big Data não é novidade! •O processamento exige hardware específico, softwares e desenvolvedores com habilidades analíticas específicas. •Aumento pela demanda por hardware de baixo custo e softwares que pudessem ser desenvolvidos por programadores com habilidades de programação convencional.
  • 8. O que é Big Data Fonte: EMC²
  • 9. O que é Big Data •Segundo o McKinsey Global Institute [2011], Big Data refere-se: –“ao conjunto de dados cujo tamanho está além da capacidade de análise, captura, armazenamento e gerenciamento de uma ferramenta desenvolvida por um software típico”
  • 10. O que é Big Data Fonte: EMC²
  • 11. O que é Big Data •Big Data não deve ser definido em número de terabytes ou petabytes. A quantidade de bytes pode mudar dependendo: –do tipo de dados –do setor onde a tecnologia está sendo aplicada ou –da própria evolução da tecnologia. Fonte: QlikView
  • 12. O que é Big Data Fonte: EMC²
  • 13. O que é Big Data Fonte: EMC²
  • 14. O que é Big Data •O termo Big Data implica no uso de metodologias e ferramentas para processamento e análise de dados que possam produzir resultados úteis que não possam ser deduzidas/calculadas, de maneira eficiente, através de outros métodos. Fonte: EMC²
  • 15. O que é Big Data Fonte: EMC²
  • 16. Declaração de problema •Como processar Big Data usando o estado-da- arte da tecnologia atual sem “estourar” o limite de tempo e o orçamento? Fonte: EMC²
  • 17. Onde está o “gargalo”? •Velocidade das CPUs esta cada vez maior mas... •A velocidade de acesso a disco, ou volumes de discos ainda é lenta. •O aumento da velocidade de CPU não beneficia muito os programas que tem necessidade de acessar grandes volumes de dados. Fonte: Oracle
  • 18. Procurando soluções •As linguagens de programação modernas suportam conceitos de multiprogramação, tais como multi-threading implementados como bibliotecas (por exemplo, pthreads POSIX) para C++ ou buit-in em Java. •Os modelos de programação paralela podem ser utilizados para reduzir o tempo de processamento ou manipulação de grandes volumes de dados. Fonte: Oracle
  • 19. Operações em Paralelo •Operações não sequenciais são quebradas em múltiplos chunks que são executadas simultaneamente em várias CPUs da mesma máquina. •O programa deve ser modelado para tirar proveito do processamento em paralelo. Fonte: Oracle
  • 20. Operações em Paralelo •Operações em paralelo aumentam a complexidade do código. –Coordenação de tarefas concorrentes: como prevenir que tarefas concorrentes interfiram umas nas outras. –Paralelização de algoritmos: nem todo algoritmo pode ser paralelizado. –Sincronização e bloqueio de memória compartilhada: protegida por locks ou semáforos para evitar a corrupção de dados. Fonte: Oracle
  • 21. SQL •SQL padrão é a forma mais comum de manipulação de dados transacionais. •Há anos os SGBD Oracle, DB2 e SQLServer permitem executar operações de consulta e carga em paralelo. •Entretanto as consultas paralelas estão restritas ao mesmo nó. Fonte: Oracle
  • 23. MapReduce •Segundo a IBM [2009], MapReduce é um –“Modelo de programação que permite o processamento de dados massivos em um algoritmo paralelo e distribuído, geralmente em um cluster de computadores.” •MapReduce é baseado nas operações de Map e Reduce de linguagens funcionais como o LISP. Fonte: IBM
  • 24. MapReduce •Trata os dados como um conjunto de pares <Key, Value>. (chave/valor) •As operações de entrada leem os dados e geram os pares <Key, Value> •O usuário fornece duas funções Map e Reduce, que são chamadas em tempo de execução.
  • 25. MapReduce •Map: –Obtêm uma lista de pares <Key, Value>, processa os pares e gera um conjunto de de pares <Key, Value> intermediário. –Repassa o valor intermediário para a função Reduce. –Cada par é processado em paralelo.
  • 26. MapReduce •Reduce: –Processa todos os valores associados com a mesma <Key>. –Mescla os valores para formar um conjunto de valores possivelmente menor. –Geralmente, apenas um valor de saída de 0 ou 1 é produzido a cada chamada Reduce. –Os valores intermediários são fornecidos à função Reduce do usuário por um iterador permitindo identificar listas de valores que são grandes demais para a memória.
  • 27. Exemplo: Contador de Palavras •Considere o exemplo do problema proposto pela IBM: –Será contado o número de ocorrências de cada palavra em um grande conjunto de documentos.
  • 28. Exemplo: Contador de Palavras •A função Map emite cada palavra mais uma contagem associada de ocorrências. mapper (filename, file-contents): for each word in file-contents: emit (word, 1)
  • 29. Exemplo: Contador de Palavras •A função Reduce soma todas as contagens emitidas para uma palavra específica. reducer (word, values): sum = 0 for each value in values: sum = sum + value emit (word, sum)
  • 30. MapReduce – Prós e Contras Prós Contras Modelo conceitual fácil de entender: apenas duas operações Não é simples implementar em linguagens de programação convencionais, como Java, C++ e Python. Automatiza a distribuição de dados e agregação de resultados. O programador deve codificar cada operação de acesso a dados. Pode ser incorporado por várias linguagens procedurais. A natureza “opaca” das funções Map e Reduce impedem sua otimização. Não é preciso preocupar-se com os detalhes da paralelização e recuperação de falhas. Elimina locks.
  • 32. HDFS •O Hadoop Distributed File System (HDFS) é um sistema de arquivos altamente tolerante a falhas projetado para executar em hardware padrão de baixo custo. •O HDFS disponibiliza acesso de alto rendimento para os dados do aplicativo e é adequado para aplicativos com grandes conjuntos de dados.
  • 34. Hadoop •Segundo a Hadoop, “Hadoop é um storage confiável e um sistema analítico” [2014] •Composto por duas partes essenciais: –o Hadoop Distributed Filesystem (HDFS), sistema de arquivos distribuído e confiável, responsável pelo armazenamento dos dados –Hadoop MapReduce, responsável pela análise e processamento dos dados. •O nome do projeto veio do elefante de pelúcia que pertencia ao filho do criador, Doug Cutting.
  • 35. Pig e Pig Latin •Pig é um mecanismo para executar os fluxos de dados de modo paralelo ao Hadoop. •Usa uma linguagem chamada Pig Latin para expressar esses fluxos de dados. •Com a Pig Latin, é possível descrever como os dados de uma ou mais entradas devem ser lidos, processados e, depois, armazenados em uma ou mais saídas de modo paralelo.
  • 36. Pig e Pig Latin •Um programa de Pig Latin consiste de uma série de operações ou transformações que é aplicada aos dados de entrada a fim de produzir a saída.
  • 37. Pig e Pig Latin •Exemplo de programa para analisar os arquivos de log de um web site e encontrar as 10 páginas mais visitadas de cada categoria.
  • 38. Pig e Pig Latin visits = load '/data/visits' as (user, url, time); gVisits = group visits by url; visitCounts = foreach gVìsits generate urI, count(urlVisits); urllnfo = load '/data/urllnfo' as (url, category, pRank); visitCounts = join visitCounts by url, urlinfo by url; gCategonies = group visitCounts by category; topUrls = foreach gCategonies generate top(visitCounts,10); Store topUrls into '/data/topUrls';
  • 39. Hive e HiveQL •Hive é framework para soluções de Data Warehousing executado no ambiente Hadoop. •HiveQL é uma linguagem declarativa, similar ao SQL, usada para criar programas executáveis no Hive. •O compilador HiveQL traduz os comando em HiveQL em jobs do MapReduce e os envia para o Hadoop executar.
  • 40. Hive e HiveQL SELECT * FROM sales WHERE amount > 10 AND region = "US“ CREATE TABLE food (id INT, msg STRING) PARTITIONED BY (dt STRING);
  • 41. Hive e HiveQL FROM ( FROM docs MAP text USING ‘python wc_map.py’ AS (word, count) CLUSTER BY word ) words REDUCE word, count USING `python wc_reduce.py’
  • 42. SDSS •O Sloan Digital Sky Survey é o mais ambicioso mapeamento astronômico que já foi feito. •Este projeto vai mapear detalhadamente um quarto de todo o céu, determinando as posições e brilhos absolutos de centenas de milhões de objetos celestes. •Vai medir as distâncias de mais de um milhão de galáxias e quasares. •A medida que o levantamento progride, os dados são liberados para a comunidade científica (e para o público em geral) em incrementos anuais.
  • 43. SDSS •Os cientistas precisam primeiro processar os dados rapidamente (em menos de uma semana) porque os astrônomos do SDSS necessitam das informações para configurar os telescópios para funcionar da forma mais eficiente durante a próxima fase escura da lua. Se passar muito tempo, os objetos alvo irão se por, conforme as estações mudam.
  • 44. SDSS •Os cientistas precisam primeiro processar os dados rapidamente (em menos de uma semana) porque os astrônomos do SDSS necessitam das informações para configurar os telescópios para funcionar da forma mais eficiente durante a próxima fase escura da lua. Se passar muito tempo, os objetos alvo irão se por, conforme as estações mudam.
  • 45. SDSS •As imagens passam por filtros óticos que deixam passar bandas centradas em 354, 476, 628, 769 and 925 nm em comprimento de onda, chamadas respectivamente de u, g, r, i e z. 1237651758284866523,269.742450488939,-0.000559032663559684,20.75933,18.62895,17.68734,17.24949,17.06834 1237651758285652455,271.497048661584,0.000432606430817509,24.63467,19.80283,19.01332,18.16589,22.8269 1237651758284147974,268.084604422452,-0.000477759959196492,20.11935,18.55714,17.86824,17.52779,17.31551 1237648721254089233,233.360450043607,0.000599034101109869,21.04421,19.43434,18.41128,17.89137,17.50843 1237663526494931611,306.65415889352,0.000642419128947454,22.37276,20.84306,19.75857,19.15853,18.87529 1237656894529209548,309.847614242754,-0.000963889419181835,23.45641,20.69753,18.98959,18.39435,18.04083 1237656894530519858,312.806752181141,-0.000538041014713186,19.80919,18.40785,17.58722,17.13805,16.88819
  • 46. SDSS e HiveQL •Cria tabela para conter os dados que iremos analisar da Galáxia! CREATE TABLE galaxy (objId BIGINT, ra REAL, dec REAL, u REAL, g REAL, r REAL, i REAL, z REAL)
  • 47. •Popula a tabela com os dados fornecidos pelo SDSS SDSS e HiveQL for row in reader: cur.execute("INSERT INTO galaxy (objId, ra, dec, u, g, r, i, z) VALUES(?, ?, ?, ?, ?, ?, ?, ?);", to_db)
  • 48. •Pronto! SDSS e HiveQL SELECT * FROM galaxy
  • 49. •Junção entre a tabela de imagens (PhotoOBJ) e a tabela de espectro (SpecObj) SDSS e HiveQL SELECT TOP 10 p.objid,p.ra,p.dec,p.u,p.g,p.r,p.i,p.z, p.run, p.rerun, p.camcol, p.field, s.specobjid, s.class, s.z as redshift, s.plate, s.mjd, s.fiberid FROM PhotoObj AS p JOIN SpecObj AS s ON s.bestobjid = p.objid WHERE p.u BETWEEN 0 AND 19.6 AND g BETWEEN 0 AND 20
  • 50.
  • 51. Para saber mais •Software Big Data livre para os Impacientes. •Behind Big Data. •SDSS-III. •MapReduce Tutorial. •Big Data in Astronomy. •Statistics in Astronomy. •Processamento de Dados Distribuídos com Hadoop. •Introdução à analítica de dados com base em Hadoop no IBM SmartCloud Enterprise. •Mining of Massive Datasets. •Escalabilidade horizontal para execução paralela de tarefas. •SkyServer DR9