- O documento discute os desafios e soluções de arquitetura para projetos de Big Data, incluindo ingestão, armazenamento, processamento e visualização de dados.
- É apresentada uma visão simplificada do fluxo de processamento de Big Data e quais tecnologias usar de acordo com o tipo e temperatura dos dados.
- São discutidos padrões de arquitetura e design patterns para integrar as diferentes ferramentas de forma desconectada e escalável.
2. 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
3. Agenda
• Desafios de um projeto de Big Data
• Visão simplificada do processamento Big Data
• Qual tecnologia usar?
• Arquitetura de referência
• Design patterns
15. 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
16. 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’
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
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
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
Normalmente em 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
• 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
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
34. 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
35. 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
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 processamento lendo múltiplos
Data Stores
Amazon
Kinesis
Amazon
Kinesis
Connectors
Amazon
S3
Data Amazon
DynamoDB
Hive Spark
Answers
Storm
Answers
47. 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
48. Big Data no Setor Financeiro
Henrique Souza
Especialista de Cloud e Big Data
49. 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.
50. Solução powered by
Web Infrastructure
&
Security Layer
Report Rendering
(Tableau Server &
Custom Dashboards)
Storage and
Querying
"ETL" layer
51. 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).
52. Obrigado !!!
Hélio Silva
Sr. Big Data Analytics Consultant
Professional Services
Henrique Souza
Especialista de Cloud e Big Data
henriques@ciand.com
@htssouza