Successfully reported this slideshow.
Your SlideShare is downloading. ×

Madrid DataEng - LeanXcale, Simplifying architectures for real time decisions

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 19 Ad

More Related Content

Similar to Madrid DataEng - LeanXcale, Simplifying architectures for real time decisions (20)

Recently uploaded (20)

Advertisement

Madrid DataEng - LeanXcale, Simplifying architectures for real time decisions

  1. 1. Simplifying architectures for real-time decisions Handling high volume and high load environments
  2. 2. Decisiones reales en tiempo real “¿Debo incluir más estaciones de producción?”“¿Puedo conceder ese microcrédito?” “¿A qué usuarios debo dirigir mi campaña?” “¿Qué conductor es el más apropiado para atender un viaje?” “¿Debo entrar en esa operación?” ... “¿Es aceptable este riesgo?¿Cuál es la elección más apropiada?¿Es este el mejor momento para actuar?”
  3. 3. Requisitos • Velocidad de ingestión. • Volumen de datos. • Análisis en tiempo real. • Análisis batch.
  4. 4. Solución habitual: Arquitecturas lambda
  5. 5. Arquitecturas lambda • Ventajas: Resuelven el problema. • Desventajas: • Complejidad: • Multiples datastores → Multiples pipelines → Multiples frameworks • Código duplicado • ETLs • Acoplamiento al framework • Dificultad de Mantenimiento. • Baja flexibilidad
  6. 6. Alternativa a lambda • Unificar datastores • Elimina complejidad. • Elimina ETLs. • Elimina código duplicado. • Simplifica el framework • Situación inicial: Requisitos del datastore • Ingestión masiva • Grandes volúmenes de datos • Análisis en tiempo real • Análisis batch
  7. 7. LeanXcale • LeanXcale es una BBDD ultraescalable con capacidades SQL y NoSQL e ingestión masiva. • Características y funcionalidades ● Escalabilidad lineal ● Particionamiento inteligente ● Ingestión masiva ● Capacidades GIS ● Operaciones vectoriales ● Customización ● Estructura de datos híbrida ● Operaciones vectoriales ● … ● Interfaz SQL & NoSQL ● Agregados Online ● HTAP → OLTP + OLAP ● MVCC ● Gestión eficiente de NUMA ● Elasticidad ● Queries políglotas ● ...
  8. 8. Componentes • Query engine: Motor SQL • Basado en Apache Calcite • Interpreta SQL (ANSI 2003) • Genera y optimiza planes de ejecución • Datastore: Kivi • Motor clave/valor • Estructura de datos híbrida (B+Tree ~ LSM Tree) • Capacidad de ejecución de predicados • Transaction Manager • Permite escalado lineal • Implementa el MVCC • Conectores/Drivers: • Proporcionan acceso desde diferentes ecosistemas (JDBC/ODBC, PHP, Kafka, Spark, etc) Query Engine Transaction Manager Data Storage (Kivi) Conector directo Driver SQL
  9. 9. Escalado lineal • Otras BBDD transaccionales • Escalabilidad asintótica → Cada nuevo nodo aporta menos al cluster • Límite de escalabilidad • LeanXcale: • Escalabilidad lineal → Cada nuevo nodo mantiene la aportación cluster • Algoritmo de escalado: https://www.youtube.com/watch?v=ScLthWjXdCE
  10. 10. Particionamiento inteligente Optimizar la inserción sin penalizar la lectura • Mantiene la organización de los datos basada en la clave primaria. •Permite operaciones de scan paralelo • Particiona automáticamente aprovechando la localidad temporal. • Optimiza el uso de la cache para inserción.
  11. 11. Agregados online • El cálculo de agregados es costoso, especialmente en entornos con gran volumen. • Alternativas: • Cálculo en tiempo de consulta: • Requiere procesar el dataset completo en consulta. • En grandes volúmenes cambiantes requiere procesar cada vez. • Cálculo en tiempo de inserción: • Requiere bloqueos para garantizar consistencia → Penaliza la inserción • LeanXcale: Agregados online • Precalcula en inserción (sin bloqueo). • Lectura directa.
  12. 12. Tiempo real vs LeanXcale • Inserción masiva: • API key-value directa al datastore • Particionamiento inteligente • Estructura de datos híbrida • Grandes volúmenes de datos • Escalado lineal • Particionamiento inteligente • Análitica en tiempo real • Agregados online • Análisis batch • Motor SQL • Estructura de datos híbrida
  13. 13. Caso de uso: Análisis de viajes Taxi Viajes - Fecha de Inicio y Fin - Coordenadas de inicio y fin - Conductor - Compañía - Distancia - Puntuación (0 - 5) Arquitectura LeanXcale Indicadores - Número de viajes - Mejores conductores - Datos por compañía - Pasajeros - Viajes - Distribución temporal - Horaria - Diaria - Semanal Tiempo Real
  14. 14. Arquitectura Proceso inserción KVDS KVDS KVDS KVDS KVDS KVDS KVDS KVDS Proceso Java Tiempo real: 100 viajes/s Inserción: 60k viajes/s .csv Viajes Taxi NYC 2013 12 archivos: 15M viajes/mes Total: 160M viajes Score aleatorio Key-value 2 servidores LX - 4 cores - 16 Gb - 300 Gb disco Dashboard Apache Superset Python SQL Particionamiento primario: Información geográfica. Particionamiento automático: Información temporal.
  15. 15. Agregados online • Agregados online: • Número total de viajes. • Información de conductor (viajes realizados, puntuación acumulada) • Información temporal (viajes acumulados por día, hora y semana) • Información de compañía (viajes realizados, pasajeros acumulados).
  16. 16. Modelo de datos • Tabla principal: TRIP_DATA_MEETUP • Agregados online: • TRIP_DATA_MEDALLION: Agregados agrupados por conductor. • TRIP_DATA_VENDOR: Agregados por compañía. • TRIP_DATA_DAILY: Agregados por día de la semana. • TRIP_DATA_HOURLY: Agregados por hora del día. •TRIP_DATA_WEEKLY: Agregados por hora del día. • TRIP_DATA_DELTA: Agregados totales.
  17. 17. Dashboard Demo
  18. 18. From demo to market • Volumen y carga • Escalabilidad y elasticidad • Desarrollo de aplicaciones: • SQL: JDBC / ODBC / SQL Alchemy • Key-Value: Librería Java/Python/PHP/C • Kafka • Spark • Despliegue: • On cloud • On premise •Trial y plan para Startups
  19. 19. Otras aplicaciones • Smart Grid. • Análisis de riesgo al crédito. • Perfilado de usuarios. • Gestión de inversiones. • Smart cities.

×