1 / 28

Continuos Query Processing in Data Streams Using Duality of Data and Queries

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

jada-hebert
Download Presentation

Continuos Query Processing in Data Streams Using Duality of Data and Queries

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. Spatial Join CQ GRUPPO27 Index building Multi-dimensional spatial join Refinement

  8. Spatial Join CQ GRUPPO27 Index building Refinement Multi-dimensional spatial join Obiettivo: creare indici per le query

  9. 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

  10. 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

  11. 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

  12. 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

  13. Preliminaries GRUPPO27 Popoliamo lo spazio 2n-dimensionale di punti rappresentanti tutte le query precaricate RX 1 LX 0 1

  14. GRUPPO27 Facciamo arrivare i dati…

  15. Spatial Join CQ GRUPPO27 Index building Multi-dimensional spatial join Refinement Obiettivo: creare indici per i dati

  16. Data index GRUPPO27 • Elaborazione in batch RX Dati multidimensionali 1 • Ordine di prossimità Indice monodimensionale Hilbert ordering • Data cluster (MBR) LX 0 1

  17. 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 )

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. GRUPPO27 Nessuna domanda, vero….?!

  28. 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

More Related