São Paulo
Maio/2015
Padrões de Arquitetura para
Big Data
Hélio Silva
Sr. Big Data Analytics Consultant
Professional Services
AWS Summit São Paulo – Maio/2015
Henrique Souza
Especialista de Cloud e Big Data
Agenda
• Desafios de um projeto de Big Data
• Visão simplificada do processamento Big Data
• Qual tecnologia usar?
• Arquitetura de referência
• Design patterns
Desafios de um projeto de Big Data
Big Data: Volume cresce continuamente
De PB para ZB
GB
TB
PB
ZB
EB
1990 2000 2010 2020
Big Data tem que responder mais rápido
Big Data Real-time Big Data
Um monte de soluções e componentes
Glacier
S3 DynamoDB
RDS
EMR
Redshift
Data Pipeline
Kinesis
Cassandra CloudSearch
AML
O que devo usar ?
Simplificando o processamento
do Big Data
Simplificando o processamento do Big Data
Ingestão
Persistência /
Storage Processamento Visualização
Dados
Respostas
Tempo
Glacier
S3
DynamoDB
RDS
Kinesis
Spark
Streaming
EMR
Ingestão Persistência Processo/Análise Visualização
Data Pipeline
Storm
Kafka
Redshift
Cassandra
CloudSearch
Kinesis
Connector
Kinesis
enabled app
App Server
Web Server
Devices
AML
Ingestão
de
dados
Tipos de dados para ingestão
• Transacional
– SGBD leitura/escrita
• Arquivos
– Click-stream logs
– Texto livre
• Stream
– IoT devices
– Tweets
Database
Cloud
Storage
Stream
Storage
Stream
Storage
Database
Cloud
Storage
✔
Por que um Stream Storage?
• Converte múltiplos
streams em poucos e
persistentes ordenados
sequencialmente
• Desconecta produtores e
consumidores de dados
• Atua como um buffer ou
uma fila
• Streams em sequência
são mais fáceis de
processar
• Preserva a ordenação
para os consumidores
• Streaming “MapReduce”
• Consumidor pode dar um
replay e reprocessar
Qual Stream Store devo usar?
• Amazon Kinesis e Kafka têm muitas semelhanças
– Múltiplos consumidores
– Ordenação dos registros
– “MapReduce” do Streaming
– Baixa Latência
– Alta durabilidade, disponibilidade e escalabilidade
• Diferenças
– Um registro dura 24 horas no Kinesis, no Kafka é configurável
– Tamanho de 50 Kb no Kinesis, no Kafka é configurável
– Kinesis é um serviço totalmente gerenciável – fácil de provisionar, monitorar
e escalar.
Kafka exige um trabalho de gestão de disponibilidade e escala como um
processo ‘on-premisses’
Cloud Database &
Storage
✔
✔
Cloud Database and Storage Tier Anti-pattern
App/Web Tier
Client Tier
Database & Storage Tier
Database e Storage na nuvem — As ferramentas corretas
App/Web Tier
Client Tier
Data Tier
Database & Storage Tier
Search
Hadoop/HDFS
Cache
Blob Store
SQL NoSQL
Database e Storage na nuvem — As ferramentas corretas
App/Web Tier
Client Tier
Data Tier
Database & Storage Tier
Amazon RDSAmazon
DynamoDB
Amazon
ElastiCache
Amazon S3
Amazon
Glacier
Amazon
CloudSearch
HDFS on Amazon EMR
Qual Storage devo usar?
• Nível de estruturação dos dados
• Complexidade das suas queries
Grau de estruturação e complexidade de query
X
Storage
Structured – Simple Query
NoSQL
Amazon DynamoDB
Cache
Amazon ElastiCache
Structured – Complex Query
SQL
Amazon RDS
Search
Amazon CloudSearch
Unstructured – No Query
Cloud Storage
Amazon S3
Amazon Glacier
Unstructured – Custom Query
Hadoop/HDFS
Elastic MapReduce
Graudeestruturação
Grau de complexidade das queries
Qual a temperatura dos seus dados?
Características dos dados: Quente, Morno, Frio
Quente Morno Frio
Volume MB–GB GB–TB PB
Tamanho de registro B–KB KB–MB KB–TB
Latência ms ms, seg min, horas
Durabilidade Baixa–Alta Alta Muito Alto
Freq. de requisições Muito Alta Alto Baixo
Custo/GB $$-$ $-¢¢ ¢
Amazon
RDS
Frequência de Requisições
alta baixa
Custo/GB
alta baixa
Latência
baixa alta
Data Volume
baixa alta
Amazon
Glacier
Amazon
CloudSearch
Estruturação
baixa
alta
Amazon
DynamoDB
Amazon
ElastiCache
Process
✔ ✔
AML
Processamento
• Análise Descritiva: BI, OLAP, SQL/data warehouse
• Análise Preditiva: sistemas de recomendação,
previsão de page-views, leilão de anúncios on-line
• Classificação: análise de sentimento, fraude, anti
spam, clustering de clientes para formação de perfis
de consumo
• Correlação: comparar o que se sabe sobre negócio
(BI) com oscilações de mercado, tempo e
temperatura, reputação nas redes sociais
Frameworks de processamento
Normalmente em dois tipos:
• Batch
– Processamento regular (ex: ETL)
– Análise exploratória (ex:data science)
• Stream
– IoT, click-stream, social monitoring,
crawlers, etc
Processamento Batch
• Acessar um grande volume de dados frios
e interagir buscando correlações
• Pesquisar uma faixa restrita de tempo
Exemplo: Gerar relatórios por hora, dia, mês ou
semana
Caso de uso: Processamento Batch para ETL
Amazon
EMR
Amazon
S3
Amazon
Glacier
Amazon
Redshift
Processamento de Stream
• Analisa dados em pequenos grupos
– CEP – Complex Event Processor (if/then/else)
– Machine Learning (fraude, recomendação, etc.)
• Responde em um espaço curto de tempo
– Real time ou near realtime dependendo da aplicação
Exemplo: Análise de 1min de operação
Ferramentas
• Batch processing/analytic
– Amazon Redshift
– Amazon EMR
• Hive, Pig, Spark, Impala, Presto, …
• Stream processing
– Apache Spark streaming
– Apache Storm (+ Trident)
– Amazon Kinesis client and
connector library
AML
Qual ferramenta de processamento batch devo usar?
Redshift Impala Presto Spark Hive
Latência de
query
Baixa Baixa Baixa Baixa - Média Média - Alta
Durabilidade Alta Alta Alta Alta Alta
Volume 1.6PB Max ~Nós ~Nós ~Nós ~Nós
Gerenciado Sim EMR
bootstrap
EMR
bootstrap
EMR
bootstrap
Sim (EMR)
Storage Nativo HDFS HDFS/S3 HDFS/S3 HDFS/S3
# of BI Tools Alta Média Alta Baixa Alta
Latência
de query
Baixa Alta
Qual processamento de Stream devo usar?
Spark Streaming Apache Storm
+ Trident
Kinesis Client
Library
Escalabilidade/Thr
oughput
~ Nós ~ Nós ~ Nós
Volume ~ Nós ~ Nós ~ Nós
Gerenciamento Sim (EMR
bootstrap)
Faça você
mesmo
EC2 + Auto Scaling
Tolerância a falhas Built-in Built-in KCL Check pointing
Linguagens de
programação / API
Java, Python, Scala Java, Scala,
Clojure
Java, Python
✔ ✔ ✔
AML
Juntando tudo
Arquitetura desconectada
• Múltiplos estágios
• Storage desconectado do processamento
Process Store Process StoreData Answers
Aplicações de processamento (ou conectores)
podem gravar em Múltiplos Data Stores
Amazon
Kinesis
Amazon
Kinesis
Connectors
Amazon
S3
Data Amazon
DynamoDB
Lambda Architecture
Análise
Real Time
Análise
Exploratória
Frameworks de processamento lendo múltiplos
Data Stores
Amazon
Kinesis
Amazon
Kinesis
Connectors
Amazon
S3
Data Amazon
DynamoDB
Hive Spark
Answers
Storm
Answers
Design Patterns
Spark
Streaming,
Apache
Storm
Amazon
Redshift Spark,
Impala,
Presto
Hive
Amazon
Redshift
Hive
Spark,
Presto
Amazon
Kinesis/
Kafka
Amazon
DynamoDB
Amazon S3Dados
Quente FrioTemperatura dos dados
Latênciadequery
Baixa
Alta
Respostas
HDFS
Hive
Native
Client
Temperatura dos dados X Latência da query
Spark
Streaming
Amazon Kinesis / KafkaDados
Apache Storm Native Client
Processamento Real-time
Amazon
DynamoDB
Native
Client
Respostas
Amazon
Redshift
Hive
Spark,
Presto
Amazon
Kinesis/
Kafka
Amazon S3Dados
Respostas
Processamento em Batch
Spark,
Impala,
Presto
Redshift
Spark,
Presto
Kinesis/
Kafka
S3Dados HDFS
Análises interativas
Respostas
AML
Sumário
• Estágios de processamento Big data: ingestão,
storage, processamento e visualização
• Usar as ferramentas corretas de acordo com o
trabalho a ser feito
– Ingestão: Dados transacionais, arquivos, stream
– Storage: nível de estruturação, padrões de query, quente X frio,
etc.
– Processamento: Latência de query
• Arquitetura de referência em Big Data e design
patterns
Big Data no Setor Financeiro
Henrique Souza
Especialista de Cloud e Big Data
Contexto e Desafio powered by
Cliente CI&T:
Consultoria Financeira
focada Asset Mngmt. e
Insurance.
Desenvolvendo um Produto
SaaS de Big Data para os
seus clientes finais.
Curto tempo para entrada
em produção. Construindo
uma infraestrutura do zero.
Solução powered by
Web Infrastructure
&
Security Layer
Report Rendering
(Tableau Server &
Custom Dashboards)
Storage and
Querying
"ETL" layer
AWS permitiu a
construção de um novo
Produto Digital para
BigData em
pouquíssimo tempo e
com excelentes
resultados.
Produto em produção com
excelentes feedbacks.
Resultados powered by
Tabelas com bilhões de registros
(aumentando todo mês).
Empresa foi recentemente
comprada por um outro grupo
financeiro (USD 4 bi market cap).
Obrigado !!!
Hélio Silva
Sr. Big Data Analytics Consultant
Professional Services
Henrique Souza
Especialista de Cloud e Big Data
henriques@ciand.com
@htssouza

Aws summit arquitetura big data-v1.2

  • 1.
  • 2.
    Padrões de Arquiteturapara Big Data Hélio Silva Sr. Big Data Analytics Consultant Professional Services AWS Summit São Paulo – Maio/2015 Henrique Souza Especialista de Cloud e Big Data
  • 3.
    Agenda • Desafios deum projeto de Big Data • Visão simplificada do processamento Big Data • Qual tecnologia usar? • Arquitetura de referência • Design patterns
  • 4.
    Desafios de umprojeto de Big Data
  • 5.
    Big Data: Volumecresce continuamente De PB para ZB GB TB PB ZB EB 1990 2000 2010 2020
  • 6.
    Big Data temque responder mais rápido Big Data Real-time Big Data
  • 7.
    Um monte desoluções e componentes Glacier S3 DynamoDB RDS EMR Redshift Data Pipeline Kinesis Cassandra CloudSearch AML
  • 8.
    O que devousar ?
  • 9.
  • 10.
    Simplificando o processamentodo Big Data Ingestão Persistência / Storage Processamento Visualização Dados Respostas Tempo
  • 11.
    Glacier S3 DynamoDB RDS Kinesis Spark Streaming EMR Ingestão Persistência Processo/AnáliseVisualização Data Pipeline Storm Kafka Redshift Cassandra CloudSearch Kinesis Connector Kinesis enabled app App Server Web Server Devices AML
  • 12.
  • 13.
    Tipos de dadospara ingestão • Transacional – SGBD leitura/escrita • Arquivos – Click-stream logs – Texto livre • Stream – IoT devices – Tweets Database Cloud Storage Stream Storage
  • 14.
  • 15.
    Por que umStream Storage? • Converte múltiplos streams em poucos e persistentes ordenados sequencialmente • Desconecta produtores e consumidores de dados • Atua como um buffer ou uma fila • Streams em sequência são mais fáceis de processar • Preserva a ordenação para os consumidores • Streaming “MapReduce” • Consumidor pode dar um replay e reprocessar
  • 16.
    Qual Stream Storedevo usar? • Amazon Kinesis e Kafka têm muitas semelhanças – Múltiplos consumidores – Ordenação dos registros – “MapReduce” do Streaming – Baixa Latência – Alta durabilidade, disponibilidade e escalabilidade • Diferenças – Um registro dura 24 horas no Kinesis, no Kafka é configurável – Tamanho de 50 Kb no Kinesis, no Kafka é configurável – Kinesis é um serviço totalmente gerenciável – fácil de provisionar, monitorar e escalar. Kafka exige um trabalho de gestão de disponibilidade e escala como um processo ‘on-premisses’
  • 17.
  • 18.
    Cloud Database andStorage Tier Anti-pattern App/Web Tier Client Tier Database & Storage Tier
  • 19.
    Database e Storagena nuvem — As ferramentas corretas App/Web Tier Client Tier Data Tier Database & Storage Tier Search Hadoop/HDFS Cache Blob Store SQL NoSQL
  • 20.
    Database e Storagena nuvem — As ferramentas corretas App/Web Tier Client Tier Data Tier Database & Storage Tier Amazon RDSAmazon DynamoDB Amazon ElastiCache Amazon S3 Amazon Glacier Amazon CloudSearch HDFS on Amazon EMR
  • 21.
    Qual Storage devousar? • Nível de estruturação dos dados • Complexidade das suas queries
  • 22.
    Grau de estruturaçãoe complexidade de query X Storage Structured – Simple Query NoSQL Amazon DynamoDB Cache Amazon ElastiCache Structured – Complex Query SQL Amazon RDS Search Amazon CloudSearch Unstructured – No Query Cloud Storage Amazon S3 Amazon Glacier Unstructured – Custom Query Hadoop/HDFS Elastic MapReduce Graudeestruturação Grau de complexidade das queries
  • 23.
    Qual a temperaturados seus dados?
  • 24.
    Características dos dados:Quente, Morno, Frio Quente Morno Frio Volume MB–GB GB–TB PB Tamanho de registro B–KB KB–MB KB–TB Latência ms ms, seg min, horas Durabilidade Baixa–Alta Alta Muito Alto Freq. de requisições Muito Alta Alto Baixo Custo/GB $$-$ $-¢¢ ¢
  • 25.
    Amazon RDS Frequência de Requisições altabaixa Custo/GB alta baixa Latência baixa alta Data Volume baixa alta Amazon Glacier Amazon CloudSearch Estruturação baixa alta Amazon DynamoDB Amazon ElastiCache
  • 26.
  • 27.
    Processamento • Análise Descritiva:BI, OLAP, SQL/data warehouse • Análise Preditiva: sistemas de recomendação, previsão de page-views, leilão de anúncios on-line • Classificação: análise de sentimento, fraude, anti spam, clustering de clientes para formação de perfis de consumo • Correlação: comparar o que se sabe sobre negócio (BI) com oscilações de mercado, tempo e temperatura, reputação nas redes sociais
  • 28.
    Frameworks de processamento Normalmenteem dois tipos: • Batch – Processamento regular (ex: ETL) – Análise exploratória (ex:data science) • Stream – IoT, click-stream, social monitoring, crawlers, etc
  • 29.
    Processamento Batch • Acessarum grande volume de dados frios e interagir buscando correlações • Pesquisar uma faixa restrita de tempo Exemplo: Gerar relatórios por hora, dia, mês ou semana
  • 30.
    Caso de uso:Processamento Batch para ETL Amazon EMR Amazon S3 Amazon Glacier Amazon Redshift
  • 31.
    Processamento de Stream •Analisa dados em pequenos grupos – CEP – Complex Event Processor (if/then/else) – Machine Learning (fraude, recomendação, etc.) • Responde em um espaço curto de tempo – Real time ou near realtime dependendo da aplicação Exemplo: Análise de 1min de operação
  • 33.
    Ferramentas • Batch processing/analytic –Amazon Redshift – Amazon EMR • Hive, Pig, Spark, Impala, Presto, … • Stream processing – Apache Spark streaming – Apache Storm (+ Trident) – Amazon Kinesis client and connector library AML
  • 34.
    Qual ferramenta deprocessamento batch devo usar? Redshift Impala Presto Spark Hive Latência de query Baixa Baixa Baixa Baixa - Média Média - Alta Durabilidade Alta Alta Alta Alta Alta Volume 1.6PB Max ~Nós ~Nós ~Nós ~Nós Gerenciado Sim EMR bootstrap EMR bootstrap EMR bootstrap Sim (EMR) Storage Nativo HDFS HDFS/S3 HDFS/S3 HDFS/S3 # of BI Tools Alta Média Alta Baixa Alta Latência de query Baixa Alta
  • 35.
    Qual processamento deStream devo usar? Spark Streaming Apache Storm + Trident Kinesis Client Library Escalabilidade/Thr oughput ~ Nós ~ Nós ~ Nós Volume ~ Nós ~ Nós ~ Nós Gerenciamento Sim (EMR bootstrap) Faça você mesmo EC2 + Auto Scaling Tolerância a falhas Built-in Built-in KCL Check pointing Linguagens de programação / API Java, Python, Scala Java, Scala, Clojure Java, Python
  • 36.
  • 37.
  • 38.
    Arquitetura desconectada • Múltiplosestágios • Storage desconectado do processamento Process Store Process StoreData Answers
  • 39.
    Aplicações de processamento(ou conectores) podem gravar em Múltiplos Data Stores Amazon Kinesis Amazon Kinesis Connectors Amazon S3 Data Amazon DynamoDB Lambda Architecture Análise Real Time Análise Exploratória
  • 40.
    Frameworks de processamentolendo múltiplos Data Stores Amazon Kinesis Amazon Kinesis Connectors Amazon S3 Data Amazon DynamoDB Hive Spark Answers Storm Answers
  • 41.
  • 42.
    Spark Streaming, Apache Storm Amazon Redshift Spark, Impala, Presto Hive Amazon Redshift Hive Spark, Presto Amazon Kinesis/ Kafka Amazon DynamoDB Amazon S3Dados QuenteFrioTemperatura dos dados Latênciadequery Baixa Alta Respostas HDFS Hive Native Client Temperatura dos dados X Latência da query
  • 43.
    Spark Streaming Amazon Kinesis /KafkaDados Apache Storm Native Client Processamento Real-time Amazon DynamoDB Native Client Respostas
  • 44.
  • 45.
  • 46.
  • 47.
    Sumário • Estágios deprocessamento Big data: ingestão, storage, processamento e visualização • Usar as ferramentas corretas de acordo com o trabalho a ser feito – Ingestão: Dados transacionais, arquivos, stream – Storage: nível de estruturação, padrões de query, quente X frio, etc. – Processamento: Latência de query • Arquitetura de referência em Big Data e design patterns
  • 48.
    Big Data noSetor Financeiro Henrique Souza Especialista de Cloud e Big Data
  • 49.
    Contexto e Desafiopowered by Cliente CI&T: Consultoria Financeira focada Asset Mngmt. e Insurance. Desenvolvendo um Produto SaaS de Big Data para os seus clientes finais. Curto tempo para entrada em produção. Construindo uma infraestrutura do zero.
  • 50.
    Solução powered by WebInfrastructure & Security Layer Report Rendering (Tableau Server & Custom Dashboards) Storage and Querying "ETL" layer
  • 51.
    AWS permitiu a construçãode um novo Produto Digital para BigData em pouquíssimo tempo e com excelentes resultados. Produto em produção com excelentes feedbacks. Resultados powered by Tabelas com bilhões de registros (aumentando todo mês). Empresa foi recentemente comprada por um outro grupo financeiro (USD 4 bi market cap).
  • 52.
    Obrigado !!! Hélio Silva Sr.Big Data Analytics Consultant Professional Services Henrique Souza Especialista de Cloud e Big Data henriques@ciand.com @htssouza