Continuos Query Processing in Data Streams Using Duality of Data and Queries Hyo-Sang Lim, Jae-Gil Lee, Min-Jae Lee,Kyu-Young Whang, Il-Yeol Song GRUPPO 27 Marco Lombardo (relatore) Mattia Petrosino Mattia Piraccini
Approccio classico Metodo query-initiative Dati già memorizzati e indicizzati Ad-hoc queries Eseguite una sola volta su dati precaricati Si restituiscono tutti i dati che soddisfano una certa query data index data set data query GRUPPO 27
Velocità Quantità Ordine Elaborazione in tempo reale È impossibile memorizzare tutti i dati Moltissime interrogazioni complesse da effettuare su ogni singolo dato in arrivo Data stream GRUPPO 27
Metodo data-initiative Query già memorizzate e indicizzate Continuous queries Precaricate ed eseguite su ogni dato in arrivo Si restituiscono tutte le query che sono soddisfatte da un certo dato query set query index query data query Una prima idea GRUPPO 27
Immediate processing Si processano tutte le continuous queries su ogni dato in arrivo Inadatto per stream veloci Elaborazione in real time Batch processing Le continuous queries sono eseguite su di un set di dati bufferizzati Migliori prestazioni Elaborazione differita Strategie GRUPPO 27
Si restituiscono tutte le coppie dato-query in cui il dato soddisfa la query query set data set query index data data index data-query Nuovo Metodo GRUPPO 27
Data: d 1 = (1,2) d 2 = (2,3) d 3 = (3,1) d 2 (2,3) d 1 (1,2) d 3 (3,1) R.x R.y Data in duality model GRUPPO 27
q 2 [0,2] x [0,1] Query : q 1 = (2 R.x 4) and (1 R.y 4) q 2 = (0 R.x 2) and (0 R.y 1) R.x R.y q 1 [2,4] x [1,4] Query in duality model GRUPPO 27
Index buildingMulti-dimensional spatial joinRefinement Spatial Join CQ GRUPPO 27
Index building Multi-dimensional spatial join Refinement Obiettivo : creare indici per le query Spatial Join CQ GRUPPO 27
SELECT * FROM R WHERE 0.2 < X < 0.5 AND 0.2 < Y < 0.5 AND X > Y X Y MBR Query index building 1.Si rappresenta la query come una regione 2. La regione è approssimata al corrispettivo MBR GRUPPO
Si passa da oggetti con dimensione in uno spazio n-dimensionale a punti in uno spazio 2n- dimensionale. Il punto rappresentante lintervallo è dato dagli estremi dellintervallo stesso su ogni dimensione. Un range n-dimensionale viene mappato in un punto 2n-dimensionale sopra la diagonale, mentre un punto viene mappato sulla diagonale. lx rx 01 lx rx q p p Sotto la diagonale non ci sono dati (perché ovviamente lestremo sinistro è sempre minore o al più uguale a quello destro) Corner transformation GRUPPO 27 RX LX
lx rx 0 1 lx rx q Il range lx-rx trasformato nel punto divide lo spazio in 6 parti distinte: –A: tutti i range contenuti nel range [lx,rx] –B: tutti i range contenenti lintervallo [lx,rx] –C,D: tutti gli intervalli con un estremo allinterno di [lx,rx] e laltro allesterno, rispettivamente a sinistra e a destra, di [lx,rx]. –E,F: tutti gli intervalli esterni, rispettivamente a sinistra e a destra, di [lx,rx] A B C D rxlx E F A B DC EF Partizionamento dello spazio GRUPPO 27
1.Si rappresenta la query come una regione Lindice è multidimensionale, quindi si possono sfruttare strutture tipo R-Tree SELECT * FROM R WHERE 0.2 < X < 0.5 AND 0.2 < Y < 0.5 AND X > Y X Y MBR 2. La regione è approssimata dal MBR 3. Corner transformation per rappresentare la regione come un punto 2n-dimensionale Corner transformation ( 0.2,0.2,0.5,0.5 ) 4. Inserisco il punto nellindice Query index building GRUPPO 27
0 1 1 LX RX Popoliamo lo spazio 2n-dimensionale di punti rappresentanti tutte le query precaricate Preliminaries GRUPPO 27
Facciamo arrivare i dati…
Obiettivo : creare indici per i dati Spatial Join CQ Index building Multi-dimensional spatial joinRefinement GRUPPO 27
Elaborazione in batch LX RX Hilbert ordering Data index Dati multidimensionali Ordine di prossimità Indice monodimensionale Data cluster (MBR) GRUPPO 27
Refinement Index building Multi-Dimensional Spatial join Obiettivo : trovare coppie di dati e query che si sovrappongono nello spazio ( sono possibili falsi positivi ) Spatial join CQ GRUPPO 27
0 1 1 La SJW(P) per la regione P è la minima regione nello spazio S trasformato in TS(S) dove possono risiedere tutti gli oggetti che si sovrappongono con P. Data cluster Spatial Join Window (SJW) LX RX BC D SJW GRUPPO 27
0 1 1 Per ogni cluster di dati si recuperano tutte le query contenute nella relativa spatial join window Multi-Dimensional spatial join LX RX LX GRUPPO 27
Index building Obiettivo : controllare se i dati soddisfano effettivamente la query relativa Ricordiamo che le query sono approssimate ad un MBR Multi-dimensional spatial join Refinement Spatial Join CQ: refinement GRUPPO 27
Un sistema di controllo della temperatura di una cella di raffreddamento vuole eseguire query su dati in arrivo dal sensore Si vuole monitorare quando la temperatura è compresa tra i 3°-5° e i 7°-9° (su un intervallo totale da 0 a 10 gradi centigradi) Query1 ( q1 ): R.Temp >= 3 and R.Temp <= 5 Query2 ( q2 ): R.Temp >= 7 and R.Temp <= 9 Esempio di processing (1) GRUPPO 27
Corner transformation delle query e loro indicizzazione. Ricordiamo passo fatto, in generale, precedentemente Query1 (q1): R.Temp >= 3 and R.Temp <= 5 Query2 (q2): R.Temp >= 7 and R.Temp <= Esempio di processing (2) GRUPPO 27
Dati in arrivo (elaborazione in batch con buffer da 15 elementi): Normalizzazione dei dati (per trattamento a livello teorico): Indicizzazione (ordinamento) dei dati Esempio di processing (3) GRUPPO 27
Esempio di processing (4) dc = Data cluster dc2dc3dc4dc5dc1 fase di refinement tra dc2 e q1 RISULTATO(coppie ): (0.32,q1),(0.35,q1),(0.41,q1) (0.45,q1),(0.49,q1) (0.71,q2) (0.77,q2),(0.79,q2),(0.86,q2) fase di refinement tra dc3 e q1 fase di refinement tra dc4 e q2 fase di refinement tra dc5 e q2 q1 q2 GRUPPO 27
Scenario: 2 server web A e B con un log file che registra gli IP dei client. I dati dei log vengono inviati in streaming allalgoritmo che è in grado di verificare la correlazione che può esistere tra laccesso al server A e laccesso al server B. Stream A Stream B D7 D6 D5D4D3D2D1 D5D4D3D2D1 Operazioni da eseguire: 1)Verificare la join condition tra il dato in arrivo e la sliding window dellaltro stream 2)Inserire il dato nella propria sliding window 3)Eliminare i dati obsoleti dalla propria sliding window Sliding Window GRUPPO 27 Spatial Join CQ JOIN
Incremento rispetto agli algoritmi esistenti 3 volte nel caso immediate processing 36 volte nel caso batch processing !!!!! Le prestazioni aumentano con laumentare delle query registrate, della frequenza dei dati, del numero degli attributi !!! I risultati sperimentali servono anche a trovare il valore ottimo del numero di elementi contenuti nel data cluster. Esempio: se il valore ottimo dei dati nel data cluster è circa 400. Risultato interessante: le performance diminuiscono solo di un 10% se si varia il data cluster da 200 a 1200 !!! Non è necessario conoscere il valore ottimo del data cluster !!! Dati con 4 attributi Dati con 8 attributi Risultati sperimentali GRUPPO 27
Nessuna domanda, vero….?! GRUPPO 27
Continuos Query Processing in Data Streams Using Duality of Data and Queries Hyo-Sang Lim, Jae-Gil Lee, Min-Jae Lee,Kyu-Young Whang, Il-Yeol Song GRUPPO 27 Marco Lombardo (relatore) Mattia Petrosino Mattia Piraccini