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. Requisitos
• Velocidad de ingestión.
• Volumen de datos.
• Análisis en tiempo real.
• Análisis batch.
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. 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. 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. 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. 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. 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. 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. 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
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. 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.
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. Otras aplicaciones
• Smart Grid.
• Análisis de riesgo al crédito.
• Perfilado de usuarios.
• Gestión de inversiones.
• Smart cities.