Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | jada-hebert |
View: | 45 times |
Download: | 0 times |
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
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
• 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
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
• 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
• 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
Index building Multi-dimensional spatial join Refinement
Spatial Join CQ GRUPPO27
Index building Multi-dimensional spatial join Refinement
Obiettivo: creare indici per le query
Spatial Join CQ GRUPPO27
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
• 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
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
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
0 1
1
LX
RX
Popoliamo lo spazio 2n-dimensionale di punti rappresentanti tutte le query
precaricate
Preliminaries GRUPPO27
GRUPPO27
Facciamo arrivare i dati…
Obiettivo: creare indici per i dati
Spatial Join CQ
Index building
Multi-dimensional spatial join Refinement
GRUPPO27
•Elaborazione in batch
0
1
1LX
RX
Hilbert ordering
Data index
Dati multidimensionali•Ordine di prossimità
Indice monodimensionale
•Data cluster (MBR)
GRUPPO27
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
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
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
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
• 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
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
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
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
• 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
• 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
Nessuna domanda, vero….?!
GRUPPO27
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