View
345
Download
40
Embed Size (px)
Citation preview
São Paulo
Maio/2015
Padrões de Arquitetura para
Big Data
Hélio Silva
Sr. Big Data Analytics Consultant
Professional ServicesAWS 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
GBTB
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 PipelineKinesis
Cassandra CloudSearch
AML
O que devo usar ?
Simplificando o processamento
do Big Data
Simplificando o processamento do Big Data
IngestãoPersistência /
Storage Processamento Visualização
Dados
Resposta
s
Tempo
GlacierS3
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 TierDatabase & Storage Tier
Search
Hadoop/HDFS
Cache
Blob Store
SQL NoSQL
Database e Storage na nuvem — As ferramentas corretas
App/Web Tier
Client Tier
Data TierDatabase & Storage Tier
Amazon RDSAmazon
DynamoDB
AmazonElastiCache
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
Gra
u d
e e
str
utu
raçã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çõesalta baixa
Custo/GBalta baixa
Latênciabaixa alta
Data Volumebaixa alta
AmazonGlacier
AmazonCloudSearch
Estr
utu
raçã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
AmazonEMR
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
DynamoDBAmazon S3Dados
Quente FrioTemperatura dos dados
La
tên
cia
de
qu
ery
Baixa
AltaRespostas
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,
PrestoRedshift
Spark,
Presto
Kinesis/
KafkaS3Dados 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
@htssouza