Aws summit arquitetura big data-v1.2

Post on 25-Jul-2015

346 views 40 download

Transcript of Aws summit arquitetura big data-v1.2

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

henriques@ciand.com

@htssouza