AWS Summit Bogotá Track Avanzado: Arquitecturas y mejores practicas de big data en AWS
-
Upload
amazon-web-services -
Category
Technology
-
view
215 -
download
0
Transcript of AWS Summit Bogotá Track Avanzado: Arquitecturas y mejores practicas de big data en AWS
Bogotá
Big Data en AWS
Damian Traverso - Solutions Architect
18/06/2015 | Bogotá
Agenda
• Desafíos de un proyecto de Big Data• Visión simplificada del procesamiento Big Data• ¿Cuáles tecnologías debo utilizar? • Arquitectura de Referencia• Patrones de Diseño
Desafíos de un proyecto de Big Data
Big Data: El volumen crece continuamente
De PB para ZB
GBTB
PB
ZB
EB
1990 2000 2010 2020
Big DataReal-time Big Data
Big Data: Necesita responder más rápido
Una gran variedad de soluciones y componentes
Glacier
S3 DynamoDB
RDS
EMR
Redshift
Data PipelineKinesis
Cassandra CloudSearch
AML
Simplificando el procesamiento de Big Data
Simplificando el procesamiento de Big Data
Ingestión Persistencia / Storage Procesamiento Visualización
Dat
os
Res
pues
tas
Tiempo
¿Cuáles tecnologías debo utilizar?
GlacierS3
DynamoDB
RDS
Kinesis Spark
Streaming
EMR
Ingestión Persistencia Proceso/Análisis Visualización
Data Pipeline
Storm
Kafka
Redshift
Cassandra
CloudSearch
Kinesis Connector
Kinesis enabled app
App Server
Web Server
Devices
AML
Ingestiónde
datos
Tipos de datos para ingestión
• Transaccionales– RDBMS
lectura/escritura
• Archivos– Click-stream logs– Texto libre
• Stream– IoT devices– Tweets
Database
Cloud Storage
StreamStorage
Stream Storage
Database
Cloud Storage
✔
¿Por qué un Stream Storage?
• Convierte múltiples streams en unos pocos, persistentes y ordenados secuencialmente
• Desconecta productores y consumidores de datos
• Actúa como un buffer o una cola
• Streams en secuencia son más faciles de procesar
• Preserva el orden para los consumidores
• Streaming MapReduce• El consumidor puede
realizar un replay y reprocesar
¿Cuál Stream Store debo utilizar?
• Amazon Kinesis y Apache Kafka tienen muchas similitudes– Múltiples consumidores– Orden de los registros– MapReduce de Streaming– Baja latencia– Alta durabilidad, disponibilidad y escalabilidad
• Diferencias– Un registro dura 24 horas en Kinesis, en Kafka es configurable– Tamaño de 50 Kb en Kinesis, en Kafka es configurable– Kinesis es un servicio totalmente gestionado – fácil de provisionar, monitorear y
escalar. Kafka exige un trabajo de administración de disponibilidad y escalamiento como un proceso on-premise
Cloud Database & Storage
✔
✔
Cloud Database and Storage Tier Anti-pattern
App/Web Tier
Client Tier
RDBMS
Database & Storage Tier
Database y Storage en la nube - Las herramientas correctas
App/Web Tier
Client Tier
Data Tier
Database & Storage Tier
Search
Hadoop/HDFS
Cache
Blob Store
SQL NoSQL
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
Database y Storage en la nube - Las herramientas correctas
¿Que Storage debo utilizar?
• Nivel de estructuración de los datos• Complejidad de las consultas
Grado de estructuración / complejidad de las queries VS.
Storage
Structured – Simple QueryNoSQL
Amazon DynamoDBCache
Amazon ElastiCache
Structured – Complex QuerySQL
Amazon RDS Search
Amazon CloudSearch
Unstructured – No QueryCloud Storage
Amazon S3Amazon Glacier
Unstructured – Custom QueryHadoop/HDFS
Elastic MapReduce
Gra
do d
e es
truc
tura
ción
Grado de complejidad de las queries
¿Cuál es la temperatura de sus datos?
Temperatura de los datos: Calientes, Tibios o Fríos
Caliente Tibio Frío
Volumen MB–GB GB–TB PBTamaño del registro B–KB KB–MB KB–TBLatencia ms ms, seg min, horasDurabilidad Baja - Alta Alta Muy AltaFrecuencia de requests Muy Alta Alta BajaCosto/GB $$-$ $-¢¢ ¢
AmazonRDS
Amazon S3
Frecuencia de Requestsalta baja
Costo/GBalta baja
Latenciabaja alta
Volumenbaja alta
AmazonGlacier
AmazonCloudSearch
Est
ruct
urac
ión
baja
alta
AmazonDynamoDB
AmazonElastiCache
EMR/HDFS
Procesamiento
✔ ✔
AML
Procesamiento
• Análisis Descriptivo: BI, OLAP, SQL/data warehouse• Análisis Predictivo: sistemas de recomendación,
previsión de page-views, subasta de anuncios on-line • Clasificación: análisis de sentimiento, fraude, anti
spam, clustering de clientes para crear perfiles de consumo
• Correlación: comparar lo que se sabe sobre el negocio (BI) con las oscilaciones del mercado, tiempo y temperatura, reputación en las redes sociales
Frameworks de procesamiento
Normalmente existen dos tipos:
• Batch– Procesamiento regular (ex: ETL)– Análisis exploratorio (ex:data science)
• Stream– IoT, click-stream, social monitoring,
crawlers, etc
Procesamiento Batch
• Accede a un gran volumen de datos fríos para interactuar en búsqueda de correlaciones
• Generalmente necesita minutos o horas para obtener una respuesta
Por ejemplo: Generar reportes por horas, días o meses
Caso de uso: Procesamiento Batch para ETL
Application
AWS Data Pipeline
AmazonEMR
AmazonS3
AmazonGlacier
AmazonRedshift
Procesamiento de Stream
• Analisa datos en pequeños grupos – CEP – Complex Event Processor (if/then/else)– Machine Learning (fraude, recomendaciones, etc.)
• Responde en corto lapso de tiempo– Real-time o Near Real-time dependiendo de cada
aplicación
Por ejemplo: análisis de 1min de operaciones
Herramientas
• 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 libraryAML
¿Cuál herramienta de procesamiento batch debo usar? Redshift Impala Presto Spark Hive
Latencia de las queries
Baja Baja Baja Baja - Media Media - Alta
Durabilidad Alta Alta Alta Alta Alta
volumen 1.6PB Max ~Nodos ~Nodos ~Nodos ~Nodos
Managed Si EMR bootstrap
EMRbootstrap
EMR bootstrap
Si (EMR)
Storage Nativo HDFS HDFS/S3 HDFS/S3 HDFS/S3
# of BI Tools Alta Media Alta Baja Alta
Latencia de lasqueries Baja Alta
Spark Streaming Apache Storm + Trident
Kinesis Client Library
Escalabilidad/Throughput
~ Nodos ~ Nodos ~ Nodos
volumen ~ Nodos ~ Nodos ~ Nodos
Administración Si (EMR bootstrap) Hágalo usted mismo
EC2 + Auto Scaling
Tolerencia a fallas Built-in Built-in KCL Check pointing
Lenguages de programación / API
Java, Python, Scala Java, Scala, Clojure
Java, Python
¿Cuál herramienta de procesamiento de Stream debo usar?
✔ ✔ ✔
AML
Colocando todo junto
Arquitectura desconectada
• Múltiples etapas• Storage desconectado del procesamiento
Procesar Almacenar Procesar AlmacenarDatos Respuestas
Aplicaciones de Procesamiento (o conectores) pueden escribir en múltiples Data Stores
Amazon Kinesis
Amazon Kinesis
Connectors
Amazon S3
Datos Amazon DynamoDB
Lambda Architecture
AnálisisReal Time
AnálisisExploratório
Frameworks de Procesamiento (Storm, Hive, Spark, etc) pueden leer de múltiples Data Stores
Amazon Kinesis
Amazon Kinesis
Connectors
Amazon S3
Datos Amazon DynamoDB
Hive Spark
Respuestas
Storm
Respuestas
Patrones de diseño
Spark Streaming,
Apache Storm
Amazon Redshift
Spark, Impala, Presto
Hive
AmazonRedshift
Hive
Spark, Presto
Amazon Kinesis/Kafka
Amazon DynamoDB
Amazon S3Datos
Caliente FríoTemperatura de los datos
Lat
enci
a d
e la
s q
uer
ies
Baja
AltaRespuesstas
HDFS
Hive
Native Client
Temperatura de los dados X Latencia de las queries
Spark Streaming
Amazon Kinesis / KafkaDatos
Apache Storm Native Client
Procesamiento Real-time
Amazon DynamoDB
Native Client
Respuestas
AmazonRedshift
Hive
Spark, Presto
Amazon Kinesis/Kafka
Amazon S3Datos
Respuestas
Processamento en Batch
Spark, Impala, Presto Redshift
Spark, Presto
Kinesis/Kafka
S3Datos HDFS
Análisis interactivos
Respuestas
AML
Resumen
• Etapas de procesamiento Big Data: ingestión, almacenamiento, procesamiento y visualización
• Usar las herramientas correctas de acuerdo con el trabajo a ser realizado– Ingestión: Dados transaccionales, archivos, stream– Almacenamiento: nivel de estructuración, complejidad de las
queries, datos calientes VS fríos, etc.– Procesamiento: Latencia de las queries
• Arquitectura de referencia en Big Data y patrones de diseño
¡Muchas Gracias!