280 likes | 417 Views
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. GRUPPO 27. Approccio classico. Metodo query-initiative
E N D
Continuos Query Processing in Data StreamsUsing Duality of Data and Queries Hyo-Sang Lim, Jae-Gil Lee, Min-Jae Lee,Kyu-Young Whang, Il-Yeol Song GRUPPO 27Marco Lombardo (relatore)Mattia PetrosinoMattia Piraccini
GRUPPO27 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 query data set data data
Data stream GRUPPO27 • Velocità • Quantità • Ordine • Elaborazione in tempo reale • È impossibile memorizzare tutti i dati • Moltissime interrogazioni complesse da effettuare su ogni singolo dato in arrivo
GRUPPO27 Una prima idea 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 index data query set query query
Strategie GRUPPO27 • 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
Nuovo Metodo GRUPPO27 • Si restituiscono tutte le coppie dato-query in cui il dato soddisfa la query query index data data data set data index query set data-query data-query
Spatial Join CQ GRUPPO27 Index building Multi-dimensional spatial join Refinement
Spatial Join CQ GRUPPO27 Index building Refinement Multi-dimensional spatial join Obiettivo: creare indici per le query
Query index building GRUPPO27 • Si rappresenta la query come una regione 2. La regione è approssimata al corrispettivo MBR Y 1 SELECT * FROM R WHERE 0.2 < X < 0.5 AND 0.2 < Y < 0.5 AND X > Y MBR 0.5 0.2 X 0 0.2 0.5 1
Corner transformation GRUPPO27 • Si passa da oggetti con dimensione in uno spazio n-dimensionale a punti in uno spazio 2n-dimensionale. • Il punto rappresentante l’intervallo è dato dagli estremi dell’intervallo 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. RX rx lx 1 0 1 q rx p 0 1 p Sotto la diagonale non ci sono dati (perché ovviamente l’estremo sinistro è sempre minore o al più uguale a quello destro) 0 1 LX lx
Partizionamento dello spazio GRUPPO27 1 • 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 l’intervallo [lx,rx] • C,D: tutti gli intervalli con un estremo all’interno di [lx,rx] e l’altro all’esterno, rispettivamente a sinistra e a destra, di [lx,rx]. • E,F: tutti gli intervalli esterni, rispettivamente a sinistra e a destra, di [lx,rx] F rx lx B D 0 q 1 rx A A C D C B E F lx E 0 lx rx 1
Query index building GRUPPO27 • Si rappresenta la query come una regione 2. La regione è approssimata dal MBR Y SELECT * FROM R WHERE 0.2 < X < 0.5 AND 0.2 < Y < 0.5 AND X > Y MBR 0.5 Corner transformation ( 0.2 ,0.2 ,0.5 ,0.5 ) 0.2 X 0.2 0.5 3. Corner transformation per rappresentare la regione come un punto 2n-dimensionale 4. Inserisco il punto nell’indice L’indice è multidimensionale, quindi si possono sfruttare strutture tipo R-Tree
Preliminaries GRUPPO27 Popoliamo lo spazio 2n-dimensionale di punti rappresentanti tutte le query precaricate RX 1 LX 0 1
GRUPPO27 Facciamo arrivare i dati…
Spatial Join CQ GRUPPO27 Index building Multi-dimensional spatial join Refinement Obiettivo: creare indici per i dati
Data index GRUPPO27 • Elaborazione in batch RX Dati multidimensionali 1 • Ordine di prossimità Indice monodimensionale Hilbert ordering • Data cluster (MBR) LX 0 1
Spatial join CQ GRUPPO27 Index building Multi-Dimensional Spatial join Refinement Obiettivo: trovare coppie di dati e query che si sovrappongono nello spazio ( sono possibili falsi positivi )
Spatial Join Window (SJW) GRUPPO27 • 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. RX 1 B SJW C D Data cluster 0 1 LX
Multi-Dimensional spatial join GRUPPO27 Per ogni cluster di dati si recuperano tutte le query contenute nella relativa spatial join window RX RX 1 1 0 0 1 LX 1 LX
Spatial Join CQ: refinement GRUPPO27 Index building Multi-dimensional spatial join Refinement Obiettivo: controllare se i dati soddisfano effettivamente la query relativa Ricordiamo che le query sono approssimate ad un MBR
Esempio di processing (1) GRUPPO27 • 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 (2) GRUPPO27 Corner transformation delle query e loro indicizzazione. Ricordiamo passo fatto, in generale, precedentemente Query2 (q2): R.Temp >= 7 and R.Temp <= 9 Query1 (q1): R.Temp >= 3 and R.Temp <= 5 1 0 0.20 0.40 0.60 0.80 1 0 1
Esempio di processing (3) GRUPPO27 Dati in arrivo (elaborazione in batch con buffer da 15 elementi): 1.7 2.5 2.7 3.2 3.5 4.1 4.5 5.9 4.9 5.5 6.8 7.1 7.9 7.7 8.6 Normalizzazione dei dati (per trattamento a livello teorico): 0.17 0.25 0.27 0.32 0.35 0.41 0.45 0.59 0.49 0.55 0.68 0.71 0.79 0.77 0.86 0.17 0.25 0.27 0.32 0.35 0.41 0.45 0.49 0.55 0.59 0.68 0.71 0.77 0.79 0.86 Indicizzazione (ordinamento) dei dati
Esempio di processing (4) GRUPPO27 dc = Data cluster dc1 dc2 dc3 dc4 dc5 0.17 0.25 0.27 0.32 0.35 0.41 0.45 0.49 0.55 0.59 0.68 0.71 0.77 0.79 0.86 1 q2 fase di refinement tra dc2 e q1 fase di refinement tra dc4 e q2 fase di refinement tra dc3 e q1 fase di refinement tra dc5 e q2 0.80 0.60 RISULTATO(coppie): q1 (0.32,q1),(0.35,q1),(0.41,q1) 0.40 (0.45,q1),(0.49,q1) (0.71,q2) 0.20 (0.77,q2),(0.79,q2),(0.86,q2) 0 0.20 0.40 0.60 0.80 1
Sliding Window GRUPPO27 • 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 all’algoritmo che è in grado di verificare la correlazione che può esistere tra l’accesso al server A e l’accesso al server B. Operazioni da eseguire: • Verificare la join condition tra il dato in arrivo e la sliding window dell’altro stream • Inserire il dato nella propria sliding window • Eliminare i dati obsoleti dalla propria sliding window Stream A D7 D6 D5 D4 D3 D2 D1 Spatial Join CQ JOIN D6 D5 D4 D3 D2 D1 Stream B
Risultati sperimentali GRUPPO27 • Incremento rispetto agli algoritmi esistenti • 3 volte nel caso immediate processing • 36 volte nel caso batch processing !!!!! • Le prestazioni aumentano con l’aumentare 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
GRUPPO27 Nessuna domanda, vero….?!
Continuos Query Processing in Data StreamsUsing Duality of Data and Queries Hyo-Sang Lim, Jae-Gil Lee, Min-Jae Lee,Kyu-Young Whang, Il-Yeol Song GRUPPO 27Marco Lombardo (relatore)Mattia PetrosinoMattia Piraccini