Unified framework for streaming databases

31
Unified Framework for Streaming Databases Alejandro Grez Profesor Supervisor: Cristian Riveros Colaboración con Martín Ugarte (ULB)

Transcript of Unified framework for streaming databases

Page 1: Unified framework for streaming databases

Unified Framework for Streaming Databases

Alejandro GrezProfesor Supervisor: Cristian Riveros

Colaboración con Martín Ugarte (ULB)

Page 2: Unified framework for streaming databases

Big Data

Page 3: Unified framework for streaming databases

Data Streams (DS)

Page 4: Unified framework for streaming databases

¿Cómo gestionar/consultar los datos de un DS?

¿Consultas SQL?

¿Cómo responder las consultas con “una sola pasada”?

Page 5: Unified framework for streaming databases

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

… …

… …

Page 6: Unified framework for streaming databases

¿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

Page 7: Unified framework for streaming databases

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

Page 8: Unified framework for streaming databases

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

Page 9: Unified framework for streaming databases

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

Page 10: Unified framework for streaming databases

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

Page 11: Unified framework for streaming databases

Estructura

SistemaLenguajeSemánticaEstado

Page 12: Unified framework for streaming databases

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

… …

… …

… …

Page 13: Unified framework for streaming databases

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

Page 14: Unified framework for streaming databases

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”

… …

… …

Page 15: Unified framework for streaming databases

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

Page 16: Unified framework for streaming databases

SPICES - Ejemplos

Page 17: Unified framework for streaming databases

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

… …

Page 18: Unified framework for streaming databases

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

… …

Page 19: Unified framework for streaming databases

Sintaxis del lenguaje simplificado

𝜌=𝑅as 𝑥|𝜌 FILTER𝛼|𝜌∨ 𝜌|𝜌 ;𝜌|𝜌+¿

: Tipo de dato: Variable: Formula booleana

Page 20: Unified framework for streaming databases

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

Page 21: Unified framework for streaming databases

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… …

Page 22: Unified framework for streaming databases

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… …

Page 23: Unified framework for streaming databases

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… …

Page 24: Unified framework for streaming databases

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

Page 25: Unified framework for streaming databases

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

Page 26: Unified framework for streaming databases

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

Page 27: Unified framework for streaming databases

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}

Page 28: Unified framework for streaming databases

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}

Page 29: Unified framework for streaming databases

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

Page 30: Unified framework for streaming databases

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

Page 31: Unified framework for streaming databases

Conclusiones

• Extender lenguaje para incluir todo SPICES

• Estudiar complejidad de operadores

• Implementar algoritmos

Lenguaje restringido de SPICES

Limitación

Trabajo a futuro