FERRAMENTAS E APLICAÇÕES EM
BIG DATA
@ A LVA R O V I E B R A N T Z / / AV I E B R A N T Z . C O M . B R
1
Nossa noção de sucesso mudou…
2
http://press.spotify.com/us/category/pictures/
3
4
5
4.7
bilhões de
página
A Web é gigante hoje
Era do
Zetabyte*
* 1000 Exabytes
36.000
anos
de video
em hd
Últimos
20anos
http://www.livescience.com/54094-how-big-is-the-internet.html
6
7
• Grande quantidade de dados
• Distribuição
• Escalabilidade
• Crescimento rápido
WEB 2.0
Trade offs
• NoSQL
• BASE
• Consistencia Eventual
• Modelo flexível ( Schemaless )
• Escalabilidade Horizontal
• Disponibilidade
• SQL
• ACID = Transações
• Consistência Forte
• Modelo rigido (Schema)
• Escalabilidade Vertical
X
RelacionamentosModelos Agregados
Familias principais de NoSQL
BigTable GraphKeyValue Store Document
http://www.nosql-database.org/
Ecossistema Poliglota
• Escolher a melhor ferramenta para o trabalho.
• Nenhuma ferramenta deve resolver todos os problemas.
X
SQL NoSQL
Persistencia Poliglota
• Resolve problemas específicos
• Torna possível novas formas de obtenção de dados e de
valor no que o usuário produz.
Redis
User
Session
MongoDB
Catalogo
Produtos
RDBMS
Financeiro
Neo4J
Recomen
dações
Dynamo
Carrinho
RDBMS
Relatórios
RDBMS
Financeiro
Cassandra
Log

Atividades
AFINAL O QUE É
BIG DATA ?
13
APENAS GRANDE QUANTIDADE DE DADOS ?
http://www.sas.com/pt_br/insights/big-data/what-is-big-data.html
14
http://datastorm.com.br/5v-big-data-estrutura/
O QUE FAZER COM ESSES DADOS ?
15
BIG DATA
A N A LY T I C S
16
B I G D ATA A N A LY T I C S
• Coleta de dados
• Processamento
• Análise
• Insights
• Tomadas de decisão orientada a dados, ou seja,
baseadas em informações.
17
http://www.bigdatabusiness.com.br/o-dicionario-do-big-data-3/
ALEMANHAC O PA D O M U N D O 2 0 1 4
18
http://exame.abril.com.br/tecnologia/noticias/solucao-de-big-data-e-um-
dos-segredos-da-alemanha-na-copa-2
Match
Insights
=
4 T I P O S D E B I G D ATA A N A LY T I C S
• Análise Descritiva
• Análise Diagnóstica
• Análise Preditiva
• Análise Prescritiva
19
http://www.bigdatabusiness.com.br/conheca-os-4-tipos-de-analises-de-big-data-analytics/
DESCRITIVAS I T U A Ç Ã O AT U A L
20
www.li.poli.ufrj.br/?project=nubank-a-queridinha-brasileira
A N Á L I S E
D E
C R É D I T O
A N Á L I S E
D E R I S C O S
DIAGNÓSTICA
C A U S A L I D A D E
21
http://www.bigdatabusiness.com.br/big-data-e-eleicoes-conheca-os-casos-
da-india-e-reino-unido/
A Ç Õ E S D E
M A R K E T I N G
A N Á L I S E
D E
I M PA C T O
E L E I Ç Õ E S
N O
R E I N O U N I D O
E I N D I A
C A S E
PREDITIVAF U T U R O
22
http://www.bigdatabusiness.com.br/o-que-e-analise-preditiva/
E N C O N T R A R
PA D R Õ E S
E S TAT Í S T I C A
C O M P O RTA
M E N T OC O PA D O
M U N D O
X
M A N I F E S TA Ç Õ E S
C A S E
PRESCRITIVAVÁ R I A S P O S S I B I L I D A D E S , O Q U E FA Z E R ?
23
http://www.kazap.com.br/analise-prescritiva-ciencia-de-dados-trabalhando-
para-o-futuro-da-sua-empresa/
S I M U L A R
E S E E U
F I Z E R
I S S O ?
T O M A R
M E L H O R
D E C I S Ã O
BIG DATA
C R I T I C A S
24
C R I T I C A S A T É C N I C A S D E B I G D ATA
• Segurança e Privacidade
• Estou sendo observado ?
• Buzz word !!!
• Todo mundo fala
• Mas ninguém faz
• Encontrar profissionais
25
DATA SCIENTIST
E S S E É O C A R A
26
• Ciência da Computação
• Estatística e Matemática
• Jornalista
• Publicitário
Q U E M É O 

D ATA S C I E N T I S T
27
https://www.dezyre.com/article/10-different-types-of-data-scientists/179
FERRAMENTAS
H A D O O P E C O S Y S T E M
28
A PA C H E H A D O O P
• Baseado no paper BigTable do Google
• Open Source
• Pensado para processamento distribuído
de grande quantidade de dados.
• Padrão universal quando se fala em BigData
29
http://hadoop.apache.org
A PA C H E H A D O O P
• Armazenamento
• HDFS
• Processamento
• Map Reduce Framework
30
http://hadoop.apache.org
H D F S
Hadoop distributed file system
31
http://hadoop.apache.org
H D F S 

Replicação dos dados
32
33
M A P R E D U C E 

Framework de processamento distribuido
• Programar em ambiente distribuído é dificil e nada
trivial!
• Modelo funcional
• Funções de Map e Reduce (duuh)
• Funções sem efeitos colaterais
• Podem ser encadeados
• Localidade de referência
34
M A P R E D U C E 

Framework de processamento distribuido
• Map
• Transformar os dados em uma lista de chaves e valores
• Map(k,v) => List(k,v)
• Reduce
• Agrupa e realiza algum processamento em uma lista de valores
associados a uma chave
• Reduce(k, list(k)) => list(v)
35
M A P R E D U C E 

Framework de processamento distribuido
36
• Escrever MapReduce no braço não é produtivo
• Abstrações de dados
• Tabelas
• Consultas SQL
• Data Analytics
• Machine Learning
• Buscas Textuais
E C O S I S T E M A H A D O O P 

Muitas ferramentas foram construídas com essa base
C L O U D E R A
37
https://www.cloudera.com/products/open-source/apache-hadoop.html
S PA R K
Motor de processamento em larga escala
38
https://spark.apache.org
• Escrever aplicações de forma mais rápida em Scala, Python e R
• Velocidade de Processamento
• In-Memory
• Motor de execução otimizado
• Bibliotecas de abstração
• SQL, Streaming, Machine Learning e Grafos
• Usa infra do Hadoop (YARN)
W O R D C O U N T
Versão MapReduce no Hadoop
39
W O R D C O U N T
Versão Spark com Python
40
text_file = spark.textFile("hdfs://...")
 
text_file.flatMap(lambda line: line.split())
    .map(lambda word: (word, 1))
    .reduceByKey(lambda a, b: a+b)
H I V E
Datawarehouse e SQL em arquivos no HDFS
41
https://hive.apache.org
• Grande quantidade de dados tabular e semi-estruturado
• APPEND Only
• Catalogo de tabelas (HCatalog)
• SQL é a linguagem muito poderosa e flexível ❤
• Poder de análise de dados
• ETL em larga escala
• Vários formatos de dados e compactação
• Textfile, SerDe, Parquet, Avro
H I V E
Converte SQL em jobs MapReduce (!!!)
42
https://hive.apache.org
I M PA L A
Super fast SQL Analytics
43
https://impala.apache.org
• Baixa latência de consulta SQL no Hadoop
• Faz uso extensivo de memoria do cluster
• Aproveita muitas configurações do Hive (HCatalog)
• Inspirado no Paper F1/Spanner do Google
• Outros formatos de leitura
• Consulta SQL no HBase
• Preferência por arquivo de alta performance como Parquet e
Avro
S Q O O P
Pipeline de importação de bases estruturadas em massa
44
https://sqoop.apache.org
• Suporte a importação de banco de dados SQL
• Os grandes bancos tem suporte
• Suporte a importação a varios destinos
• HBase
• HDFS
• Hive
• Dicas de otimização
• Criação de partições
• Views com os dados convertidos
H B A S E
Banco de dados colunas de alta performance
45
https://hbase.apache.org
• Orientado a colunas
• Não relacional !
• Otimizado para agregações
• Altíssima performance de escrita e leitura aleatória
• Altamente escalável e tolerante a falhas
• Tabelas gigantes (bilhões de linhas x milhões de colunas)
• Baseado no BigTable do Google
H B A S E
Banco de dados colunas de alta performance
46
https://hbase.apache.org
• Case - Facebook Messenger
• Migrado do MySQL
• 11TB de mensagens por mês em 2011
• Zero data loss
• Alta escalabilidade e disponibilidade
K A F K A
Plataforma de streaming distribuido
47
https://kafka.apache.org
• Padrão PubSub/Mensageria
• Stream de dados em forma de mensagens
• Pode ser utilizado quando deseja-se capturar eventos de forma
mais rápida que consegue ser efetivamente processado
• Logs
• Métricas e Analytics
• Processamento em Tempo Real
• Filas do Kafka podem ser usadas como passo intermediário
• Mensageria comum
48
K A F K A
Plataforma de streaming distribuido
“Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three
Cheap Machines)”
https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-
three-cheap-machines
49
S O L R
Buscais textuais e indexação de arquivos
50
http://lucene.apache.org/solr/
• Buscas FullText
• Suporte a várias línguas
• Sugestões de digitação
• Agregação de dados (Facets)
• Indexação de arquivos
• Texto, PDF, Word
• Buscar geo referenciadas
• Tem suporte a armazenamento em HDFS
O O Z I E
Agendamento de tarefas e fluxos em cluster
51
https://kafka.apache.org
• Gerenciamento de tarefas
• Normalmente baseadas em tempo
• Integrado com ecossistema Hadoop
• MapReduce
• Sqoop
• Hive
• Shell script
• .jars comuns
P E R G U N TA S ?
52
@ A LVA R O V I E B R A N T Z / / AV I E B R A N T Z . C O M . B R
FERRAMENTAS E APLICAÇÕES EM
BIG DATA

Ferramentas e Aplicações em Big Data

  • 1.
    FERRAMENTAS E APLICAÇÕESEM BIG DATA @ A LVA R O V I E B R A N T Z / / AV I E B R A N T Z . C O M . B R 1
  • 2.
    Nossa noção desucesso mudou… 2
  • 3.
  • 4.
  • 5.
  • 6.
    4.7 bilhões de página A Webé gigante hoje Era do Zetabyte* * 1000 Exabytes 36.000 anos de video em hd Últimos 20anos http://www.livescience.com/54094-how-big-is-the-internet.html 6
  • 7.
  • 8.
    • Grande quantidadede dados • Distribuição • Escalabilidade • Crescimento rápido WEB 2.0
  • 9.
    Trade offs • NoSQL •BASE • Consistencia Eventual • Modelo flexível ( Schemaless ) • Escalabilidade Horizontal • Disponibilidade • SQL • ACID = Transações • Consistência Forte • Modelo rigido (Schema) • Escalabilidade Vertical X
  • 10.
    RelacionamentosModelos Agregados Familias principaisde NoSQL BigTable GraphKeyValue Store Document http://www.nosql-database.org/
  • 11.
    Ecossistema Poliglota • Escolhera melhor ferramenta para o trabalho. • Nenhuma ferramenta deve resolver todos os problemas. X SQL NoSQL
  • 12.
    Persistencia Poliglota • Resolveproblemas específicos • Torna possível novas formas de obtenção de dados e de valor no que o usuário produz. Redis User Session MongoDB Catalogo Produtos RDBMS Financeiro Neo4J Recomen dações Dynamo Carrinho RDBMS Relatórios RDBMS Financeiro Cassandra Log
 Atividades
  • 13.
    AFINAL O QUEÉ BIG DATA ? 13
  • 14.
    APENAS GRANDE QUANTIDADEDE DADOS ? http://www.sas.com/pt_br/insights/big-data/what-is-big-data.html 14 http://datastorm.com.br/5v-big-data-estrutura/
  • 15.
    O QUE FAZERCOM ESSES DADOS ? 15
  • 16.
    BIG DATA A NA LY T I C S 16
  • 17.
    B I GD ATA A N A LY T I C S • Coleta de dados • Processamento • Análise • Insights • Tomadas de decisão orientada a dados, ou seja, baseadas em informações. 17 http://www.bigdatabusiness.com.br/o-dicionario-do-big-data-3/
  • 18.
    ALEMANHAC O PAD O M U N D O 2 0 1 4 18 http://exame.abril.com.br/tecnologia/noticias/solucao-de-big-data-e-um- dos-segredos-da-alemanha-na-copa-2 Match Insights =
  • 19.
    4 T IP O S D E B I G D ATA A N A LY T I C S • Análise Descritiva • Análise Diagnóstica • Análise Preditiva • Análise Prescritiva 19 http://www.bigdatabusiness.com.br/conheca-os-4-tipos-de-analises-de-big-data-analytics/
  • 20.
    DESCRITIVAS I TU A Ç Ã O AT U A L 20 www.li.poli.ufrj.br/?project=nubank-a-queridinha-brasileira A N Á L I S E D E C R É D I T O A N Á L I S E D E R I S C O S
  • 21.
    DIAGNÓSTICA C A US A L I D A D E 21 http://www.bigdatabusiness.com.br/big-data-e-eleicoes-conheca-os-casos- da-india-e-reino-unido/ A Ç Õ E S D E M A R K E T I N G A N Á L I S E D E I M PA C T O E L E I Ç Õ E S N O R E I N O U N I D O E I N D I A C A S E
  • 22.
    PREDITIVAF U TU R O 22 http://www.bigdatabusiness.com.br/o-que-e-analise-preditiva/ E N C O N T R A R PA D R Õ E S E S TAT Í S T I C A C O M P O RTA M E N T OC O PA D O M U N D O X M A N I F E S TA Ç Õ E S C A S E
  • 23.
    PRESCRITIVAVÁ R IA S P O S S I B I L I D A D E S , O Q U E FA Z E R ? 23 http://www.kazap.com.br/analise-prescritiva-ciencia-de-dados-trabalhando- para-o-futuro-da-sua-empresa/ S I M U L A R E S E E U F I Z E R I S S O ? T O M A R M E L H O R D E C I S Ã O
  • 24.
    BIG DATA C RI T I C A S 24
  • 25.
    C R IT I C A S A T É C N I C A S D E B I G D ATA • Segurança e Privacidade • Estou sendo observado ? • Buzz word !!! • Todo mundo fala • Mas ninguém faz • Encontrar profissionais 25
  • 26.
    DATA SCIENTIST E SS E É O C A R A 26
  • 27.
    • Ciência daComputação • Estatística e Matemática • Jornalista • Publicitário Q U E M É O 
 D ATA S C I E N T I S T 27 https://www.dezyre.com/article/10-different-types-of-data-scientists/179
  • 28.
    FERRAMENTAS H A DO O P E C O S Y S T E M 28
  • 29.
    A PA CH E H A D O O P • Baseado no paper BigTable do Google • Open Source • Pensado para processamento distribuído de grande quantidade de dados. • Padrão universal quando se fala em BigData 29 http://hadoop.apache.org
  • 30.
    A PA CH E H A D O O P • Armazenamento • HDFS • Processamento • Map Reduce Framework 30 http://hadoop.apache.org
  • 31.
    H D FS Hadoop distributed file system 31 http://hadoop.apache.org
  • 32.
    H D FS 
 Replicação dos dados 32
  • 33.
    33 M A PR E D U C E 
 Framework de processamento distribuido • Programar em ambiente distribuído é dificil e nada trivial! • Modelo funcional • Funções de Map e Reduce (duuh) • Funções sem efeitos colaterais • Podem ser encadeados • Localidade de referência
  • 34.
    34 M A PR E D U C E 
 Framework de processamento distribuido • Map • Transformar os dados em uma lista de chaves e valores • Map(k,v) => List(k,v) • Reduce • Agrupa e realiza algum processamento em uma lista de valores associados a uma chave • Reduce(k, list(k)) => list(v)
  • 35.
    35 M A PR E D U C E 
 Framework de processamento distribuido
  • 36.
    36 • Escrever MapReduceno braço não é produtivo • Abstrações de dados • Tabelas • Consultas SQL • Data Analytics • Machine Learning • Buscas Textuais E C O S I S T E M A H A D O O P 
 Muitas ferramentas foram construídas com essa base
  • 37.
    C L OU D E R A 37 https://www.cloudera.com/products/open-source/apache-hadoop.html
  • 38.
    S PA RK Motor de processamento em larga escala 38 https://spark.apache.org • Escrever aplicações de forma mais rápida em Scala, Python e R • Velocidade de Processamento • In-Memory • Motor de execução otimizado • Bibliotecas de abstração • SQL, Streaming, Machine Learning e Grafos • Usa infra do Hadoop (YARN)
  • 39.
    W O RD C O U N T Versão MapReduce no Hadoop 39
  • 40.
    W O RD C O U N T Versão Spark com Python 40 text_file = spark.textFile("hdfs://...")   text_file.flatMap(lambda line: line.split())     .map(lambda word: (word, 1))     .reduceByKey(lambda a, b: a+b)
  • 41.
    H I VE Datawarehouse e SQL em arquivos no HDFS 41 https://hive.apache.org • Grande quantidade de dados tabular e semi-estruturado • APPEND Only • Catalogo de tabelas (HCatalog) • SQL é a linguagem muito poderosa e flexível ❤ • Poder de análise de dados • ETL em larga escala • Vários formatos de dados e compactação • Textfile, SerDe, Parquet, Avro
  • 42.
    H I VE Converte SQL em jobs MapReduce (!!!) 42 https://hive.apache.org
  • 43.
    I M PAL A Super fast SQL Analytics 43 https://impala.apache.org • Baixa latência de consulta SQL no Hadoop • Faz uso extensivo de memoria do cluster • Aproveita muitas configurações do Hive (HCatalog) • Inspirado no Paper F1/Spanner do Google • Outros formatos de leitura • Consulta SQL no HBase • Preferência por arquivo de alta performance como Parquet e Avro
  • 44.
    S Q OO P Pipeline de importação de bases estruturadas em massa 44 https://sqoop.apache.org • Suporte a importação de banco de dados SQL • Os grandes bancos tem suporte • Suporte a importação a varios destinos • HBase • HDFS • Hive • Dicas de otimização • Criação de partições • Views com os dados convertidos
  • 45.
    H B AS E Banco de dados colunas de alta performance 45 https://hbase.apache.org • Orientado a colunas • Não relacional ! • Otimizado para agregações • Altíssima performance de escrita e leitura aleatória • Altamente escalável e tolerante a falhas • Tabelas gigantes (bilhões de linhas x milhões de colunas) • Baseado no BigTable do Google
  • 46.
    H B AS E Banco de dados colunas de alta performance 46 https://hbase.apache.org • Case - Facebook Messenger • Migrado do MySQL • 11TB de mensagens por mês em 2011 • Zero data loss • Alta escalabilidade e disponibilidade
  • 47.
    K A FK A Plataforma de streaming distribuido 47 https://kafka.apache.org • Padrão PubSub/Mensageria • Stream de dados em forma de mensagens • Pode ser utilizado quando deseja-se capturar eventos de forma mais rápida que consegue ser efetivamente processado • Logs • Métricas e Analytics • Processamento em Tempo Real • Filas do Kafka podem ser usadas como passo intermediário • Mensageria comum
  • 48.
    48 K A FK A Plataforma de streaming distribuido “Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines)” https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second- three-cheap-machines
  • 49.
  • 50.
    S O LR Buscais textuais e indexação de arquivos 50 http://lucene.apache.org/solr/ • Buscas FullText • Suporte a várias línguas • Sugestões de digitação • Agregação de dados (Facets) • Indexação de arquivos • Texto, PDF, Word • Buscar geo referenciadas • Tem suporte a armazenamento em HDFS
  • 51.
    O O ZI E Agendamento de tarefas e fluxos em cluster 51 https://kafka.apache.org • Gerenciamento de tarefas • Normalmente baseadas em tempo • Integrado com ecossistema Hadoop • MapReduce • Sqoop • Hive • Shell script • .jars comuns
  • 52.
    P E RG U N TA S ? 52 @ A LVA R O V I E B R A N T Z / / AV I E B R A N T Z . C O M . B R FERRAMENTAS E APLICAÇÕES EM BIG DATA