SlideShare a Scribd company logo
1 of 31
Download to read offline
Streaming data
“los datos que entran por
los que van saliendo”
1
José Antonio Arroba González
Departamento técnico Grupo RETABet
joseantonio.arroba@ekasa.net
De dónde venimos
2
Arquitecturas tradicionales de
software
3
Evolución del volumen de datos
4
KBs MBs GBs TBs
Escalado vertical
5
¿Dónde estamos ahora?
6
7
Esto ocurre en
Internet cada
minuto durante
el año 2019
Fuente: https://www.domo.com/learn/data-never-sleeps-7
8
Fuente: internetlivestats.com
¿Qué es un sistema de datos
en streaming?
9
• Sistema in-the-moment: sistema que está continuamente preparando y
devolviendo los datos que un cliente puede necesitar en un momento dado
• Ejemplo: tweets de las personas que sigo desde la ultima vez que me
conecté
• Diferente a un sistema de monitorización cardiaca o de seguridad de un
vehículo
• Diferente a un sistema de envío de video bajo demanda
¿Y no podemos continuar
con el escalado vertical?
10
Ley de Moore
11
“Cada dos años se duplica el número de transistores
en un microprocesador”
Formulada por Gordon E. Moore en
1965, cofundador de Intel
Ley de Moore
12
• Constante aumento de
potencia y descenso de
precio
• Esta última década ha
necesitado la
incorporación de múltiples
núcleos para cumplirse
• Los límites de la física
impiden mantener este
ritmo
• El propio Moore anunció
en 2015 en fin de su ley
para la próxima década
Escalado horizontal
13
Replicar la aplicación n veces (balanceo de carga)
Ejemplo: Aplicación web replicada accesible con un balanceador de carga
Escalado horizontal
14
Descomponer la aplicación en n partes
Ejemplos: arquitectura orientada a servicios (SOA), microservicios
Escalado horizontal
15
Particionar las bases de datos
• Los datos se agrupan en shards (filas o documentos independientes)
• La ubicación de cada shard deberá ser la óptima para su consulta
• Para mejorar el rendimiento y prevenir pérdida de datos los shards deberán
estar replicados
ACID
16
• Cada operación que modifica el estado del sistema se
realiza en el ámbito de una transacción
• Una transacción debe cumplir las propiedades ACID:
• Atomic
• Consistent
• Isolated
• Durable
• ¿Puede cumplirse dentro de un sistema distribuido?
Teorema CAP
17
• Formulado por Eric Brewer en el año 2000
• Tres requisitos comunes para los sistemas
distribuidos:
• Consistencia (C)
• Disponibilidad (A)
• Tolerancia a particiones (P)
• Al escalar un sistema distribuido solo
podemos mantener dos requisitos
• En la práctica solo podremos elegir entre
consistencia o disponibilidad
BASE
18
Las propiedades ACID para un sistema distribuido pasarán a
conocerse como BASE:
• Basically Available. Disponible siempre aunque algún
subsistema no lo esté.
• Soft state. El estado del sistema puede variar en
cualquier momento aunque no haya peticiones
• Eventually consistent. Tras cierto tiempo sin peticiones el
sistema se quedará en un estado consistente
Arquitectura Kappa
19
Ingesta Análisis Almacenamiento Publicación
Ingesta de datos
20
• Backpressure, escritura y
lectura a diferente
velocidad
• Sistema distribuido de
colas de mensajes
distribuido para evitar
este fenómeno
• Ejemplos: Apache Kafka,
RabbitMQ
C
C
C
er er a a ro er ClientsClients
pplications
roduce
essa es
c an es
oute and ilter
essa es
ueues
tore and or ard
essa es
pplications
Consume
essa es
Ingesta de datos
21
• Problemas en la ingesta de
datos fuera de una
transacción
• ¿Qué garantías queremos?
• At most once
• At least once
• Exactly once
Análisis
22
• Trabajo con datos en movimiento, no almacenados
• Ejemplos: Spark, Flink, Storm, Samza…
Streaming
manager
Application
driver
Stream processor
Stream processor
Stream processor
Datos
Datos
Datos
Datos
Stream processor
Análisis
23
• Basado en la ejecución continua de una query
• Ventana temporal:
• Cada cuanto tiempo se ejecuta la query
• Sobre qué datos se ejecutará
Análisis
24
• ¿Cómo consultar datos más allá de la
ventana de tiempo?
• Algoritmos probabilísticos:
• Número distinto de elementos: HyperLogLog
• Pertenencia a un grupo: Bloom filters
(https://llimllib.github.io/bloomfilter-tutorial/)
Almacenamiento
25
• Persistir los resultados de análisis o enviarlos como
nueva entrada de streaming
• ¿Cómo escribir a la velocidad de procesado? Sistemas
de mensajería de colas
• El resultado se deberá escribir en estructuras pensadas
para su posterior uso
• Soporte: Bases de datos NoSQL (MongoDB,
Elasticsearch… , ases de datos en memoria edis,
Memcached…
Publicación
26
• De nuevo el problema de publicar más
rápido que la velocidad de consumo
• WebSockets, comunicación bidireccional
entre cliente y servidor
• https://www.pubnub.com/developers/realtime-data-streams/twitter-
stream/
• http://meetup.github.io/stream/rsvpTicker/
Conclusiones
27
• Escalado horizontal total e ilimitado
• Replicar
• Decidir entre consistencia y disponibilidad
• Desacoplar elementos que se comunican
entre si a distinto ritmo
• No bloquear, responder de forma asíncrona
• Utilizar heurísticas, no resultados exactos
Conclusiones
28
• Las arquitecturas tradicionales siguen siendo
apropiadas para los escenarios donde se deben seguir
cumpliendo las propiedades ACID
• Los sistemas acaban siendo más complejos porque
tienen que convivir diferentes modelos de arquitecturas
Referencias
29
• Andrew G. Psaltis (2017). Streaming data:
Understanding the real-time pipeline. Editorial
Manning
30
¿Alguna pregunta?
31
¡¡Muchas gracias por
vuestra atención!!

More Related Content

Similar to Streaming data, datos que entran por los que van saliendo

SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache Camel
Domingo Suarez Torres
 
Servicios DBAccess en IBM SolidDB
Servicios DBAccess en IBM SolidDBServicios DBAccess en IBM SolidDB
Servicios DBAccess en IBM SolidDB
La Red DBAccess
 

Similar to Streaming data, datos que entran por los que van saliendo (20)

Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
 
Arquitectura a escala
Arquitectura a escalaArquitectura a escala
Arquitectura a escala
 
Arquitectura a escala
Arquitectura a escalaArquitectura a escala
Arquitectura a escala
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
AWS Summits América Latina 2015- EC2 Computo en la nube
AWS Summits América Latina 2015- EC2 Computo en la nubeAWS Summits América Latina 2015- EC2 Computo en la nube
AWS Summits América Latina 2015- EC2 Computo en la nube
 
AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación. AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
AWS Summit Bogotá Track Básico: EC2 & Servicios de Computación.
 
Oracle GG presentacion
Oracle GG presentacionOracle GG presentacion
Oracle GG presentacion
 
Libro so
Libro soLibro so
Libro so
 
Arquitectura Lambda
Arquitectura LambdaArquitectura Lambda
Arquitectura Lambda
 
introduccion bases de datos
introduccion bases de datosintroduccion bases de datos
introduccion bases de datos
 
MongoDB Atlas: La mejor forma de utilizar MongoDB en la nube 2
MongoDB Atlas: La mejor forma de utilizar  MongoDB en la nube 2MongoDB Atlas: La mejor forma de utilizar  MongoDB en la nube 2
MongoDB Atlas: La mejor forma de utilizar MongoDB en la nube 2
 
Base expo
Base expoBase expo
Base expo
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
 
SG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache CamelSG 09 Patrones de Integración Empresarial Apache Camel
SG 09 Patrones de Integración Empresarial Apache Camel
 
Microsoft Data & AI Experience LATAM 2018 - Azure Cosmos DB
Microsoft Data & AI Experience LATAM 2018 - Azure Cosmos DBMicrosoft Data & AI Experience LATAM 2018 - Azure Cosmos DB
Microsoft Data & AI Experience LATAM 2018 - Azure Cosmos DB
 
Clouster y grid
Clouster y gridClouster y grid
Clouster y grid
 
Servicios DBAccess en IBM SolidDB
Servicios DBAccess en IBM SolidDBServicios DBAccess en IBM SolidDB
Servicios DBAccess en IBM SolidDB
 
Seminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con AtlasSeminario web: Simplificando el uso de su base de datos con Atlas
Seminario web: Simplificando el uso de su base de datos con Atlas
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
 

Streaming data, datos que entran por los que van saliendo

  • 1. Streaming data “los datos que entran por los que van saliendo” 1 José Antonio Arroba González Departamento técnico Grupo RETABet joseantonio.arroba@ekasa.net
  • 4. Evolución del volumen de datos 4 KBs MBs GBs TBs
  • 7. 7 Esto ocurre en Internet cada minuto durante el año 2019 Fuente: https://www.domo.com/learn/data-never-sleeps-7
  • 9. ¿Qué es un sistema de datos en streaming? 9 • Sistema in-the-moment: sistema que está continuamente preparando y devolviendo los datos que un cliente puede necesitar en un momento dado • Ejemplo: tweets de las personas que sigo desde la ultima vez que me conecté • Diferente a un sistema de monitorización cardiaca o de seguridad de un vehículo • Diferente a un sistema de envío de video bajo demanda
  • 10. ¿Y no podemos continuar con el escalado vertical? 10
  • 11. Ley de Moore 11 “Cada dos años se duplica el número de transistores en un microprocesador” Formulada por Gordon E. Moore en 1965, cofundador de Intel
  • 12. Ley de Moore 12 • Constante aumento de potencia y descenso de precio • Esta última década ha necesitado la incorporación de múltiples núcleos para cumplirse • Los límites de la física impiden mantener este ritmo • El propio Moore anunció en 2015 en fin de su ley para la próxima década
  • 13. Escalado horizontal 13 Replicar la aplicación n veces (balanceo de carga) Ejemplo: Aplicación web replicada accesible con un balanceador de carga
  • 14. Escalado horizontal 14 Descomponer la aplicación en n partes Ejemplos: arquitectura orientada a servicios (SOA), microservicios
  • 15. Escalado horizontal 15 Particionar las bases de datos • Los datos se agrupan en shards (filas o documentos independientes) • La ubicación de cada shard deberá ser la óptima para su consulta • Para mejorar el rendimiento y prevenir pérdida de datos los shards deberán estar replicados
  • 16. ACID 16 • Cada operación que modifica el estado del sistema se realiza en el ámbito de una transacción • Una transacción debe cumplir las propiedades ACID: • Atomic • Consistent • Isolated • Durable • ¿Puede cumplirse dentro de un sistema distribuido?
  • 17. Teorema CAP 17 • Formulado por Eric Brewer en el año 2000 • Tres requisitos comunes para los sistemas distribuidos: • Consistencia (C) • Disponibilidad (A) • Tolerancia a particiones (P) • Al escalar un sistema distribuido solo podemos mantener dos requisitos • En la práctica solo podremos elegir entre consistencia o disponibilidad
  • 18. BASE 18 Las propiedades ACID para un sistema distribuido pasarán a conocerse como BASE: • Basically Available. Disponible siempre aunque algún subsistema no lo esté. • Soft state. El estado del sistema puede variar en cualquier momento aunque no haya peticiones • Eventually consistent. Tras cierto tiempo sin peticiones el sistema se quedará en un estado consistente
  • 19. Arquitectura Kappa 19 Ingesta Análisis Almacenamiento Publicación
  • 20. Ingesta de datos 20 • Backpressure, escritura y lectura a diferente velocidad • Sistema distribuido de colas de mensajes distribuido para evitar este fenómeno • Ejemplos: Apache Kafka, RabbitMQ C C C er er a a ro er ClientsClients pplications roduce essa es c an es oute and ilter essa es ueues tore and or ard essa es pplications Consume essa es
  • 21. Ingesta de datos 21 • Problemas en la ingesta de datos fuera de una transacción • ¿Qué garantías queremos? • At most once • At least once • Exactly once
  • 22. Análisis 22 • Trabajo con datos en movimiento, no almacenados • Ejemplos: Spark, Flink, Storm, Samza… Streaming manager Application driver Stream processor Stream processor Stream processor Datos Datos Datos Datos Stream processor
  • 23. Análisis 23 • Basado en la ejecución continua de una query • Ventana temporal: • Cada cuanto tiempo se ejecuta la query • Sobre qué datos se ejecutará
  • 24. Análisis 24 • ¿Cómo consultar datos más allá de la ventana de tiempo? • Algoritmos probabilísticos: • Número distinto de elementos: HyperLogLog • Pertenencia a un grupo: Bloom filters (https://llimllib.github.io/bloomfilter-tutorial/)
  • 25. Almacenamiento 25 • Persistir los resultados de análisis o enviarlos como nueva entrada de streaming • ¿Cómo escribir a la velocidad de procesado? Sistemas de mensajería de colas • El resultado se deberá escribir en estructuras pensadas para su posterior uso • Soporte: Bases de datos NoSQL (MongoDB, Elasticsearch… , ases de datos en memoria edis, Memcached…
  • 26. Publicación 26 • De nuevo el problema de publicar más rápido que la velocidad de consumo • WebSockets, comunicación bidireccional entre cliente y servidor • https://www.pubnub.com/developers/realtime-data-streams/twitter- stream/ • http://meetup.github.io/stream/rsvpTicker/
  • 27. Conclusiones 27 • Escalado horizontal total e ilimitado • Replicar • Decidir entre consistencia y disponibilidad • Desacoplar elementos que se comunican entre si a distinto ritmo • No bloquear, responder de forma asíncrona • Utilizar heurísticas, no resultados exactos
  • 28. Conclusiones 28 • Las arquitecturas tradicionales siguen siendo apropiadas para los escenarios donde se deben seguir cumpliendo las propiedades ACID • Los sistemas acaban siendo más complejos porque tienen que convivir diferentes modelos de arquitecturas
  • 29. Referencias 29 • Andrew G. Psaltis (2017). Streaming data: Understanding the real-time pipeline. Editorial Manning