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 ZB EB De PB para ZB PB GB TB 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 EMR S3 DynamoDB Redshift Glacier RDS Kinesis AML Data Pipeline Cassandra CloudSearch
O que devo usar?
Simplificando o processamento do Big Data
Dados Respostas Simplificando o processamento do Big Data Ingestão Persistência / Storage Processamento Visualização Tempo
Ingestão Persistência Processo/Análise Visualização App Server Web Server Devices S3 Glacier Cassandra DynamoDB Data Pipeline EMR Redshift CloudSearch Kinesis enabled app RDS AML Kinesis Connector Kinesis Kafka Spark Streaming Storm
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
Database Cloud Storage Stream 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? 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 Client Tier App/Web Tier Database & Storage Tier
Database e Storage na nuvem As ferramentas corretas Client Tier App/Web Tier Database & Storage Tier Data Tier Cache SQL NoSQL Search Blob Store Hadoop/HDFS
Database e Storage na nuvem As ferramentas corretas Client Tier App/Web Tier Database & Storage Tier Data Tier ElastiCache DynamoDB RDS CloudSearch S3 Glacier HDFS on EMR
Qual Storage devo usar? Nível de estruturação dos dados Complexidade das suas queries
Grau de estruturação Grau de estruturação e complexidade de query X Storage Structured Simple Query NoSQL DynamoDB Cache ElastiCache Structured Complex Query SQL RDS Search CloudSearch Unstructured No Query Cloud Storage S3 Glacier Unstructured Custom Query Hadoop/HDFS Elastic MapReduce 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 $$-$ $-
Estruturação baixa Glacier alta ElastiCache DynamoDB RDS CloudSearch alta alta baixa baixa Frequência de Requisições Custo/GB Latência Data Volume baixa baixa alta alta
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 EMR Redshift S3 Glacier
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 Redshift EMR Hive, Pig, Spark, Impala, Presto, Stream processing Apache Spark streaming Apache Storm (+ Trident) Kinesis client and connector library AML
Qual ferramenta de processamento batch devo usar? Latência de query Redshift Impala Presto Spark Hive 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 Data Process Store Process Store Answers
Aplicações de processamento (ou conectores) podem gravar em Múltiplos Data Stores Data Kinesis Kinesis Connectors DynamoDB S3 Análise Real Time Análise Exploratória Lambda Architecture
Frameworks de processamento lendo múltiplos Data Stores Data Kinesis Kinesis Connectors DynamoDB S3 Storm Hive Spark Answers Answers
Design Patterns
Latência de query Temperatura dos dados X Latência da query Quente Temperatura dos dados Frio Dados Kinesis/ Kafka DynamoDB HDFS S3 Baixa Spark Streaming, Apache Storm Native Client Redshift Hive Spark, Impala, Presto Hive Redshift Spark, Presto Hive Alta Respostas
Processamento Real-time Dados Kinesis / Kafka DynamoDB Spark Streaming Apache Storm Native Client Native Client Respostas
Processamento em Batch Dados Kinesis/ Kafka S3 Redshift Spark, Presto Hive Respostas
Análises interativas Dados Kinesis/ Kafka HDFS S3 Spark, Impala, Presto Redshift Spark, Presto 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
Resultados powered by 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. 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!!! Henrique Souza Especialista de Cloud e Big Data henriques@ciand.com @htssouza Hélio Silva Sr. Big Data Analytics Consultant Professional Services