Unified framework for streaming databases
-
Upload
alejandro-grez -
Category
Engineering
-
view
120 -
download
5
Transcript of Unified framework for streaming databases
Unified Framework for Streaming Databases
Alejandro GrezProfesor Supervisor: Cristian Riveros
Colaboración con Martín Ugarte (ULB)
Big Data
Data Streams (DS)
¿Cómo gestionar/consultar los datos de un DS?
¿Consultas SQL?
¿Cómo responder las consultas con “una sola pasada”?
Ejemplo: El Banco
DS son giros y depósitos
Buscamos una subsecuencia de tres o más giros de un mismo usuario seguidasQueremos recibir una alerta apenas ocurra!
Cristian$300.000
Juan$170.000
Martín-$60.000
Martín-$60.000
Martín-$80.000
Martín-$90.000
ALERT
… …
… …
¿Qué necesitamos de un sistema de DS?
Motor de evaluacióneficiente para consultas de DS
Lenguaje de consultas para DStipo SQL
Leer datos “en una pasada”Cada dato se lee una sola vez
Actualización eficiente por datoTiempo constante y espacio sublineal con respecto a los datos
Lo que hay hasta ahora
• HiPac• Ode• Samos• Snoop• TelegrahCQ• NiagaraCQ• OpenCQ• Tribeca• CQL/Stream• Aurora/Borealis• Gigascope
• Padres• DistCED• CEDR• Cayuga• NextCEP• PB-CED• Raced• Amit• Traditional Pub-Sub• Rapide• GEM
• Sase• Sase+• Peex• TESLA/T-Rex• Aleri SP• Coral8 CEP• StreamBase• Oracle CEP• Esper• Tibco BE• IBM System S
Ejemplos Sase+PATTERN SEQ(Giro x, Giro y, Giro z)WHERE x.usr = y.usr AND x.usr = z.usrWITHIN 1 hour
CQL/StreamSELECT *FROM Giro [range 1 hour]GROUP BY usrHAVING COUNT(monto) > 3
Lo que hay hasta ahora
Lo que hay hasta ahora
Muchos lenguajes distintoscada uno con su propia implementación
Semánticas ambiguasdefinidas por la implementación
Difíciles de estudiar/optimizarCarecen de bases teóricas sólidas
Lo que buscamos
Fundamentos teóricospara los sistemas DS
Lenguajes de consulta con semánticaindependientes de la implementación
Optimización de consultas
Pregunta de Investigación
¿Cómo formalizar estos fundamentos?
Algoritmos de evaluación eficientes
Estructura
SistemaLenguajeSemánticaEstado
DSMS – Data Stream Management System
DS: secuencia infinita de datos
Consulta: patrón definido por el usuario
Ej: “Depósito seguido de Transferencia y Giro”
Problema: encontrar todas las ocurrencias de la consultadentro del DS, según algún criterio
D T G D T G T$5 $3 $8 $6 $7 $5 $2
D T G D T G T$5 $3 $8 $6 $7 $5 $2
D T G D T G T$5 $3 $8 $6 $7 $5 $2
… …
… …
… …
Ocurrencias pueden ser no contiguas
Distinto conjunto de resultados dependiendo de lo solicitado por el usuario
DSMS – Data Stream Management System
Ej: todos los resultados, solo posiciones contiguas, etc
D T D G T T G$5 $3 $6 $8 $7 $2 $5
… …
D G T D T G G$5 $8 $3 $6 $7 $5 $2
D G T D T G G$5 $8 $3 $6 $7 $5 $2
… …
… …
v/s
Ejemplo: Banco
Cristian Juan Martín Pedro Martín Martín Cristian Martín Juan Martín
30000 170000 -60000 45000 -80000 -90000 -15000 -80000 10000 -85000
Cristian Juan Martín Pedro Martín Martín Cristian Martín Juan Martín30000 170000 -60000 45000 -80000 -90000 -15000 -80000 10000 -85000
tiempo “secuencia de tres o más giros de un usuario”
… …
… …
Universidad Libre de Bruselas
Lenguaje - SPICES
Múltiples operadores• Filtros• Negación• Joins
• Secuenciación• Iteración• Disyunción
SPICES PROJECT
Scalable Processing and mIning
for SEcurity-AnalyticS
Colaboración junto a Martín Ugarte
SPICES - Ejemplos
DEP TRANS DEP GIRO TRANS GIRO GIRO
Cristian Juan Martín Juan Martín Martín Juan
30000 170000 60000 145000 80000 90000 25000
SPICES - Ejemplos
Ejemplo 1DEPOSITO xTRANSFER y (x.usr = y.usr and x < y)GIRO z (y.usr = z.usr and y < z)
DEP TRANS DEP GIRO TRANS GIRO GIRO
Cristian Juan Martín Juan Martín Martín Juan
30000 170000 60000 145000 80000 90000 25000
… …
SPICES - Ejemplos
Ejemplo 2choose
DEPOSITO x (x.monto > 10000)or
TRANSFER x (x.monto > 10000)loop y
GIRO z (z.usr = x.usr and x < z)where abs(sum(y[z][monto]) – x.monto) < 1000
DEP TRANS DEP GIRO TRANS GIRO GIRO
Cristian Juan Martín Juan Martín Martín Juan
30000 170000 60000 145000 80000 90000 25000
DEP TRANS DEP GIRO TRANS GIRO GIRO
Cristian Juan Martín Juan Martín Martín Juan
30000 170000 60000 145000 80000 90000 25000
… …
Sintaxis del lenguaje simplificado
𝜌=𝑅as 𝑥|𝜌 FILTER𝛼|𝜌∨ 𝜌|𝜌 ;𝜌|𝜌+¿
: Tipo de dato: Variable: Formula booleana
Sintaxis del lenguaje simplificado
Tipo de dato
Filtros con operaciones booleanas
Disyunción, secuenciación e iteración
𝑅 as 𝑥∨¿
𝜌 FILTER𝛼∨¿𝜌∨𝜌∨¿𝜌 ;𝜌∨¿𝜌+¿
𝜌=¿
: Tipo de dato: Variable: Formula booleana
Ejemplo
Ejemplo 1D as x ; T as y ; G as z
D ; T ; G
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000… …
Ejemplo
Ejemplo 2D ; G+
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000… …
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000
Ejemplo
Ejemplo 3(T as x FILTER x.monto > 100000) ; G+
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000… …
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000
Ejemplo
Ejemplo 4D ; ((T ; T) (G ; G))
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000… …
DEP TRANS DEP GIRO TRANS GIRO GIRO
30000 170000 60000 145000 80000 90000 25000
Match de una consulta en un DS
{1,3,6}, {1,3,7}, {1,5,6}, {1,5,7}, {4,5,6}, {4,5,7}
D G T D T G G$5 $8 $3 $6 $7 $5 $2
Match = conjunto de posiciones en el DS que satisfacen el patrón de la consulta
DGTDTGG {1, 5, 6}
… …
= D ; T ; G
1 2 3 4 5 6 7
Actualmente, la semántica formal del lenguaje está basada en la noción de match
Semánticas del lenguaje
Considera todos los matches posibles
D ; ((T ; T) (G ; G))
{1,2,4},{1,2,7},{1,2,9},{1,4,7},{1,4,9},{1,7,9},{1,3,6},{5,7,9}
1. Skip-till-any match
D T G T D G T D T
$5 $8 $3 $6 $7 $5 $2 $3 $3… …
1 2 3 4 5 6 7 8 9
ANY
Semánticas del lenguaje
No salta ninguna posición que pueda agregar
D ; ((T ; T) (G ; G))
2. Skip-till-next match
D T G T D G T D T
$5 $8 $3 $6 $7 $5 $2 $3 $3… …
1 2 3 4 5 6 7 8 9
NEXT{1,2,4},{1,2,7},{1,2,9},{1,4,7},{1,4,9},{1,7,9},{1,3,6},{5,7,9}
Semánticas del lenguaje
Agrega posiciones de manera greedy
D ; ((T ; T) (G ; G))
3. Greedy match
D T G T D G T D T
$5 $8 $3 $6 $7 $5 $2 $3 $3… …
1 2 3 4 5 6 7 8 9
GREEDY{1,2,4},{1,2,7},{1,2,9},{1,4,7},{1,4,9},{1,7,9},{1,3,6},{5,7,9}
Definición formal de semánticas
if
if and for all such that and ,
if for every , such that , and , then
Skip-till-any match
Skip-till-next match
Greedy match
Resultados de la Investigación
• Modelo formal de computación para SPICES– Basado en Teoría de autómatas y
transductores• Algoritmos eficientes para la evaluación
de distintas semánticas– Next– Greedy
• Formalización y estudio de otros operadores– Conjunción– Negación– Diferencia
Conclusiones
• Extender lenguaje para incluir todo SPICES
• Estudiar complejidad de operadores
• Implementar algoritmos
Lenguaje restringido de SPICES
Limitación
Trabajo a futuro