continuos query processing in data streams using duality of data and queries

28
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

Upload: jada-hebert

Post on 31-Dec-2015

52 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Continuos Query Processing in Data Streams

Using Duality of Data and QueriesHyo-Sang Lim, Jae-Gil Lee, Min-Jae Lee,Kyu-Young Whang, Il-Yeol Song

GRUPPO 27Marco Lombardo (relatore)

Mattia PetrosinoMattia Piraccini

Page 2: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

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

data

query

GRUPPO27

Page 3: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

• 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 GRUPPO27

Page 4: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

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

quer

y

dataquery

Una prima idea GRUPPO27

Page 5: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

• 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 GRUPPO27

Page 6: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

• Si restituiscono tutte le coppie dato-query in cui il dato soddisfa la query

query set

data setquery index

data data

data index

data-query

data-query

Nuovo Metodo GRUPPO27

Page 7: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Index building Multi-dimensional spatial join Refinement

Spatial Join CQ GRUPPO27

Page 8: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Index building Multi-dimensional spatial join Refinement

Obiettivo: creare indici per le query

Spatial Join CQ GRUPPO27

Page 9: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

SELECT *FROM RWHERE 0.2 < X < 0.5 AND

0.2 < Y < 0.5 AND X > Y

X

Y

0.50.2

0.2

0.5MBR

Query index building1. Si rappresenta la query come una regione

2. La regione è approssimata al corrispettivo MBR

GRUPPO27

1

10

Page 10: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

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

lx rx0 1

lx

rxq

0 1

1

0 1p

p

Sotto la diagonale non ci sono dati (perché ovviamente l’estremo sinistro è sempre minore o al più uguale a quello destro)

Corner transformationGRUPPO27

RX

LX

Page 11: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

lx rx0 1

lx

rxq

01

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]

A

B

C

D

rxlx

E

F

A

B

DC

E F

Partizionamento dello spazio

GRUPPO27

Page 12: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

1. Si rappresenta la query come una regione

L’indice è multidimensionale, quindi si possono sfruttare strutture tipo R-Tree

SELECT *FROM RWHERE 0.2 < X < 0.5 AND 0.2 < Y < 0.5 AND X > Y

X

Y

0.50.2

0.2

0.5MBR

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 nell’indice

Query index buildingGRUPPO27

Page 13: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

0 1

1

LX

RX

Popoliamo lo spazio 2n-dimensionale di punti rappresentanti tutte le query

precaricate

Preliminaries GRUPPO27

Page 14: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

GRUPPO27

Facciamo arrivare i dati…

Page 15: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Obiettivo: creare indici per i dati

Spatial Join CQ

Index building

Multi-dimensional spatial join Refinement

GRUPPO27

Page 16: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

•Elaborazione in batch

0

1

1LX

RX

Hilbert ordering

Data index

Dati multidimensionali•Ordine di prossimità

Indice monodimensionale

•Data cluster (MBR)

GRUPPO27

Page 17: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

RefinementIndex building Multi-Dimensional Spatial join

Obiettivo: trovare coppie di dati e query che si sovrappongono nello spazio ( sono possibili falsi positivi )

Spatial join CQ GRUPPO27

Page 18: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

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

B C

D

SJW

GRUPPO27

Page 19: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

0

1

1

Per ogni cluster di dati si recuperano tutte le query contenute nella relativa spatial join window

Multi-Dimensional spatial join

01

1

LX

RX RX

LX

GRUPPO27

Page 20: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Index building

Obiettivo: controllare se i dati soddisfano effettivamente la query relativaRicordiamo che le query sono approssimate ad un MBR

Multi-dimensional spatial join Refinement

Spatial Join CQ: refinementGRUPPO27

Page 21: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

• 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)GRUPPO27

Page 22: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

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

0 0.20 0.40 0.60 0.80 1

Esempio di processing (2)

0

1

1

GRUPPO27

Page 23: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Dati in arrivo (elaborazione in batch con buffer da 15 elementi):

Normalizzazione dei dati (per trattamento a livello teorico):

Indicizzazione (ordinamento) dei dati

0.49 0.55 0.59 0.68 0.770.71 0.790.25 0.27 0.32 0.410.350.17 0.45 0.86

0.59 0.49 0.55 0.68 0.790.71 0.770.25 0.27 0.32 0.410.350.17 0.45 0.86

5.9 4.9 5.5 6.8 7.97.1 7.72.5 2.7 3.2 4.13.51.7 4.5 8.6

Esempio di processing (3)GRUPPO27

Page 24: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Esempio di processing (4)

0.49 0.55 0.59 0.68 0.770.71 0.790.25 0.27 0.32 0.410.350.17 0.45 0.86

0

1

10.80

0.60

0.80

0.600.40

0.40

0.20

0.20

dc = Data cluster dc2 dc3 dc4 dc5dc1

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 q1fase di refinement tra dc4 e q2fase di refinement tra dc5 e q2

q1

q2

GRUPPO27

Page 25: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

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

Stream A

Stream B

D7

D6

D6D5D4D3D2D1

D5D4D3D2D1

Operazioni da eseguire:1) Verificare la join

condition tra il dato in arrivo e la sliding window dell’altro stream

2) Inserire il dato nella propria sliding window

3) Eliminare i dati obsoleti dalla propria sliding window

Sliding Window GRUPPO27

Spatial Join CQJOIN

Page 26: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

• 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

Risultati sperimentaliGRUPPO27

Page 27: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Nessuna domanda, vero….?!

GRUPPO27

Page 28: Continuos Query Processing  in Data Streams Using Duality of Data and Queries

Continuos Query Processing in Data Streams

Using Duality of Data and QueriesHyo-Sang Lim, Jae-Gil Lee, Min-Jae Lee,Kyu-Young Whang, Il-Yeol Song

GRUPPO 27Marco Lombardo (relatore)

Mattia PetrosinoMattia Piraccini