ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Προσδιορισµός Παραθύρων σε Ρεύµατα εδοµένων Κ. Πατρούµπας Κοινή εργασία µε τον καθ. Τ. Σελλή 7 εκεµβρίου 2004 7/12/2004 Θεωρία Βάσεων εδοµένων 1
Ρεύµατα δεδοµένων Βάσεις δεδοµένων Ρεύµατα δεδοµένων «Παθητικός» χώρος αποθήκευσης Τα εφήµερα δεδοµένα ενεργοποιούν στατικών δεδοµένων (pull model) τα ερωτήµατα (push model) Ερωτήµατα στιγµιοτύπου (One-time queries) Τυχαία προσπέλαση πλειάδων (random access) «Απεριόριστος» αποθηκευτικός χώρος (λ.χ. δίσκοι) Ενδιαφέρει το τρέχον στιγµιότυπο της βάσης Σχετικά χαµηλός ρυθµός αλλαγών στα δεδοµένα, έπειτα από δοσοληψίες των χρηστών Ερωτήµατα διαρκείας (Continuous queries) ιαδοχική προσπέλαση πλειάδων (sequential access) Πεπερασµένη ποσότητα µνήµης Ενδιαφέρει η σειρά άφιξης των πλειάδων στο σύστηµα Πιθανόν να καταφθάνει ραγδαία µεγάλος όγκος δεδοµένων (πολλά GB από τις πηγές) 7/12/2004 Θεωρία Βάσεων εδοµένων 2
Σύστηµα διαχείρισης ρευµάτων δεδοµένων Γενική αρχιτεκτονική θεώρηση Περιλήψεις Ρεύµατα εισόδου Ενδιάµεσος χώρος τήρησης δεδοµένων (buffers) Επεξεργαστής ερωτηµάτων Ρεύµατα εξόδου Σχεσιακοί πίνακες Ερωτήµατα διαρκείας 7/12/2004 Θεωρία Βάσεων εδοµένων 3
Ερωτήµατα διαρκείας Συνεχής ροή δεδοµένων προς το σύστηµα ιαρκής εκτέλεση ενεργών ερωτηµάτων επί µακρόν Σταδιακός υπολογισµός των αποτελεσµάτων ONLINE Αλγόριθµοι ενός περάσµατος για προσεγγιστικές απαντήσεις Οι απαντήσεις µπορεί να είναι επίσης ρεύµατα δεδοµένων Παρεµποδιστικοί παράγοντες στην εκτέλεση: Ανεπαρκής ποσότητα µνήµης Ανασχετικοί τελεστές: Ταξινόµηση, Συνάθροιση Τελεστές διατήρησης κατάστασης: Τοµή, Σύνδεση ρευµάτων Πολλαπλά ερωτήµατα ζητούν απάντηση 7/12/2004 Θεωρία Βάσεων εδοµένων 4
Απεµπλοκή εκτέλεσης ερωτηµάτων διαρκείας Περιλήψεις (summaries): η «ουσία» των περιεχοµένων του ρεύµατος Σκίτσα δεδοµένων (sketches) Τυχαία δειγµατοληψία (sampling) Κυµατίδια (wavelets) Ιστογράµµατα Αποβολή φόρτου (load shedding) Επιβολή περιορισµών στο σχήµα ξένα κλειδιά µεταξύ ρευµάτων συγχρονισµός πλειάδων ή ταξινόµηση ως προς κάποιο γνώρισµα Σηµεία στίξης (punctuations) εµβόλιµες τεχνητές πλειάδες οριοθετούν «υποτµήµατα» του ρεύµατος το ρεύµα διάστικτο από «σηµάδια» ως προς επιλεγµένα γνωρίσµατα Παράθυρα (windows) απόσπαση πεπερασµένου αριθµού πλειάδων από το αχανές ρεύµα 7/12/2004 Θεωρία Βάσεων εδοµένων 5
Προσδιορισµός παραθύρων σε ρεύµατα δεδοµένων ιάγραµµα της υπόλοιπης παρουσίασης Θεµελίωση µοντέλου ρευµάτων δεδοµένων Σηµασιολογία ερωτηµάτων διαρκείας Κατηγορίες παραθυρικών δοµών Χαρακτηριστικοί τύποι παραθύρων Παραθυρικές εκδοχές αλγεβρικών τελεστών ιατύπωση παραθυρικών ερωτηµάτων διαρκείας Ερευνητικά ζητήµατα 7/12/2004 Θεωρία Βάσεων εδοµένων 6
Εισαγωγές Μοντέλο στοιχείων ρεύµατος στο δεδοµένων R-δένδρο (συνέχεια) Σχήµα πλειάδων e 1, e 2, e L σύνολο L γνωρισµάτων A i, καθένα µε ένα πεδίο ορισµού D i πλειάδα: στιγµιότυπο του σχήµατος µε συγκεκριµένες τιµές Πεδίο ορισµού χρόνου (Time Domain) διατεταγµένο, άπειρο σύνολο διακριτών τιµών τ Τ (Τ N ) χρονικό διάστηµα [τ 1, τ 2 ] Τ από διακριτές τιµές µε τ 1 τ τ 2 Ρεύµα δεδοµένων (Data Stream) απεικόνιση S : Τ 2 R για τις πλειάδες του R µε κοινό σχήµα χρονικά ορόσηµα σε κάθε πλειάδα: γνώρισµα A τ µε τιµές τ Τ κοινός χρονισµός πλειάδων βάσει του Τ επιτρέπονται διπλότυπα και το ρεύµα περιλαµβάνει ένα πεπερασµένο πολυσύνολο στοιχείων µε το ίδιο ορόσηµο τ Τ 7/12/2004 Θεωρία Βάσεων εδοµένων 7
Χρονική διάταξη ρεύµατος Τρέχον περιεχόµενο ρεύµατος S(τ i ) άπειρο σύνολο πλειάδων µε ορόσηµα τ τ i Τρέχον στιγµιότυπο ρεύµατος I(τ i ) πεπερασµένο πολυσύνολο στοιχείων µε τρέχον ορόσηµο τ i Τ Χρονική διάταξη πλειάδων (temporal total order) απεικόνιση f O : D S Τ ύπαρξη οροσήµων: s S, τ Τ, ώστε f O (s) = τ. µονοτονία: s 1,s 2 S, αν s 1.A τ s 2.A τ τότε f O (s 1 ) f O (s 2 ) 7/12/2004 Θεωρία Βάσεων εδοµένων 8
Σηµασιολογία ερωτηµάτων διαρκείας Ερώτηµα διαρκείας (Continuous Query) ερώτηµα Q υποβάλλεται τη στιγµή τ ο Τ στο ρεύµα S αποτελέσµατα Q c µέχρι τη στιγµή τ i : τ i Τ, Q c (S(τ i )) = Αποτίµηση ερωτήµατος πρακτικά ασύµφορη τ i Τ Q(S(τ)) περιοδικά µε βήµα τ, οπότε στην k στή επανάληψη: τ U 0 τ Q = Q c (S(τ 0 + k τ)) Q c (S(τ 0 + (k-1) τ)) τ i U Q = Q(S(τ)) τ τ τ + k τ 0 0 U τ τ τ + ( 1) τ 0 0 k Q(S(τ))...αλλά ΟΧΙ πάντα ορθά αποτελέσµατα! 7/12/2004 Θεωρία Βάσεων εδοµένων 9
Μονοτονία ερωτηµάτων διαρκείας Μη ασφαλή αποτελέσµατα: νεότερες απαντήσεις µπορεί να ακυρώσουν προηγούµενες... Για ορθά αποτελέσµατα µε σταδιακό υπολογισµό: στην απάντηση ΜΟΝΟ προσθήκες (append-only) ΟΧΙ διαγραφές ή τροποποιήσεις σε προηγούµενα αποτελέσµατα Μονότονο ερώτηµα διαρκείας Q(S(τ i )) πλειάδες του τρέχοντος περιεχοµένου S (τ i ) που ικανοποιούν το ερώτηµα διαρκείας Q κατά τη στιγµή τ i Τ τ 1, τ 2 Τ, αν S(τ 1 ) S(τ 2 ), τότε Q(S(τ 1 )) Q(S(τ 2 )) Προσεγγίσεις αν επιτραπούν τροποποιήσεις στο ρεύµα δεν ισχύει µονοτονία των αποτελεσµάτων αναδιατύπωση ερωτήµατος ως διαφορά ερωτηµάτων 7/12/2004 Θεωρία Βάσεων εδοµένων 10
Παράθυρα σε ερωτήµατα διαρκείας τ 0 τ 0 + (k-1) τ τ 0 + k τ χρόνος Άχρηστες πλειάδες παλαιότερη πλειάδα αναγκαία για: έλεγχος στον όγκο των στοιχείων εξοικονόµηση πόρων συστήµατος (µνήµη) σηµασιολογία ερωτηµάτων: ενδιαφέρον για πρόσφατα δεδοµένα...αλλά όχι πάντοτε ικανά: νεότερη πλειάδα Ρεύµα δεδοµένων Παράθυρο µεγέθους w τί συµβαίνει όταν αυξάνουν δίχως όρια; (υπέρβαση µνήµης) µπορεί το µέγεθος του παραθύρου να µικρύνει, αλλά τα αποτελέσµατα του ερωτήµατος να αυξηθούν! (απαλοιφή διπλοτύπων) 7/12/2004 Θεωρία Βάσεων εδοµένων 11
Παραθυρικός τελεστής Παράθυρο επί ρεύµατος δεδοµένων: τ i Τ, τ i τ 0, W E (S( τ i ))={s S(τ i ): E(s) είναι αληθής} E µια συζευκτική συνθήκη επιλογής πλειάδων έναρξη εφαρµογής κατά τη στιγµή τ 0 Τ n N οσοδήποτε µεγάλο, αλλά πάντοτε πεπερασµένο ώστε W E (S( τ i )) n οµή παραθύρου: Αφετηρία Εύρος Πέρας Τρόπος µεταβολής περιεχοµένων Αποτέλεσµα: συµπαγές σύνολο πλειάδων W E (S( τ i )) S( τ i ) δηλαδή... ένας πεπερασµένος προσωρινός σχεσιακός πίνακας 7/12/2004 Θεωρία Βάσεων εδοµένων 12
Τυπολογία παραθύρων Μετατόπιση άκρων: σταθερά άκρα, λ.χ. παράθυρα οροσήµου (landmark windows) µεταβλητά άκρα, λ.χ. κυλιόµενα παράθυρα (sliding windows) Μέτρηση περιεχοµένων: λογική µονάδα χρονικά παράθυρα (time-based windows) φυσική µονάδα παράθυρα πλειάδων (tuple-based windows) Βήµα προόδου: µοναδιαίο κυλιόµενα παράθυρα (sliding windows) µε άλµατα επάλληλα παράθυρα (tumbling windows) Πώς εκφράζονται τα κριτήρια: συνάρτηση εµβέλειας (scope) παραθύρου σύνθετοι τύποι παραθύρων, λ.χ. value-based windows 7/12/2004 Θεωρία Βάσεων εδοµένων 13
Φυσικά παράθυρα Παράθυρα πλειάδων (tuple-based windows): Κυλιόµενο παράθυρο για τις N πιο πρόσφατες πλειάδες του S W n (S, τ, N ) = {s S(τ) : τ 1 T, τ 1 τ {s S(τ) τ 1 s.a τ τ } N } υπολογισµός «µε την όπισθεν» τ Τ επιπλοκές: χειρισµός διπλοτύπων; πώς θα συµπληρωθεί ο αριθµός N στην αφετηρία; Μεριστικά παράθυρα (partitioned windows): λίστα γνωρισµάτων οµαδοποίησης L = {A i, A j,, A n } N πιο πρόσφατες πλειάδες κάθε οµάδας τιµών τ Τ W p (S,τ, L,N) = {s S(τ): A k L, s.a k =a k a k D i, τ 1 T, τ 1 τ {s S(τ): s.a k =a k τ 1 s.a τ τ } N} 7/12/2004 Θεωρία Βάσεων εδοµένων 14
Λογικά παράθυρα συνάρτηση εµβέλειας (scope): scope : T {[τ 1, τ 2 ] : τ 1, τ 2 T, τ 1 τ 2 } Παράθυρα χρονικού οροσήµου (landmark windows): πάγια αφετηρία τ l, ανοιχτό πέρας τ W l (S, τ, τ l ) = {s S (τ) : s.a τ scope l ( τ, τ l )} κινούµενη αφετηρία τ, φραγµένο πέρας τ u W u (S, τ, τ u ) = {s S (τ) : s.a τ scope u ( τ, τ u )} 7/12/2004 Θεωρία Βάσεων εδοµένων 15
Μεταβλητά λογικά παράθυρα Κυλιόµενα χρονικά παράθυρα (time-based sliding windows): W s (S, τ, ω, δ) = {s S(τ) : s.a τ scope s ( τ, ω, δ )} βήµα δ, εύρος ω, και ισχύει δ < ω Επάλληλα χρονικά παράθυρα (tumbling windows): ίδια συνάρτηση εµβέλειας, αλλά υπολογισµός κατά άλµατα δ = ω W t (S, τ, ω) = {s S(τ) : s.a τ scope s ( τ, ω, ω)} 7/12/2004 Θεωρία Βάσεων εδοµένων 16
Σχεσιακοί τελεστές µε χρήση παραθύρων Παραθυρική σύνδεση ρευµάτων (window-join): S 1 S 2 ={ s 1, s 2, τ m : s 1 W 1 (S 1 (τ)), s 2 W 2 (S 2 (τ)) W E (s 1, s 2 ) τ m = max( s 1.A τ, s 2.A τ )} Χρονικό ορόσηµο για τα αποτελέσµατα: το πιο πρόσφατο από εκείνα του ζεύγους των πλειάδων Παραθυρική συνάθροιση (window-aggregates): λίστα γνωρισµάτων οµαδοποίησης L = {A i, A j,, A n } συνάρτηση συνάθροισης f : COUNT, SUM, MIN, MAX, AVG Χρονική ένδειξη αποτελεσµάτων: το τρέχον τ Τ γ f L,W (S, τ ) = { a i,a j,, a n,f (a i,a j,, a n ), τ : A k L, a k D k, s W(S (τ)) a k =s.a k } 7/12/2004 Θεωρία Βάσεων εδοµένων 17
Συνολοθεωρητικές πράξεις µε χρήση παραθύρων Σηµασιολογία πολυσυνόλων (Bag semantics) Παραθυρική ένωση ρευµάτων (window-union): S 1 W S = { s, k : k 2 1, k 2 N, s, k 1 W 1 (S 1 (τ)) s, k 2 W 2 (S 2 (τ)) k = k 1 + k 2 k 0 } Παραθυρική τοµή ρευµάτων (window-intersection): S 1 U I S = { s, k : k 2 1, k 2 N, s, k 1 W 1 (S 1 (τ)) W s, k2 W 2 (S 2 (τ)) k = min (k 1, k 2 ) k 0} Παραθυρική διαφορά ρευµάτων (window-difference): S 1 S 2 = { s, k : k 1, k 2 N, s, k 1 W 1 (S 1 (τ)) W s, k2 W 2 (S 2 (τ)) k=max (0, k 1 k 2 ) k 0} 7/12/2004 Θεωρία Βάσεων εδοµένων 18
Βελτιστοποίηση παραθυρικών ερωτηµάτων Κανόνες αναδιατύπωσης παραθυρικών συνδέσεων: αντιµεταθετική S 1 S 2 = S 2 S 1 W W προσεταιριστική ( S 1 S 2 ) S 3 = S 1 ( S 2 S 3 ) W W W W επιµεριστική ως προς επιλογή σ F (S 1 S 2 )=σ F (S 1 ) σ F (S 2 ) W W προβολή π L (S 1 S 2 )=π L ( π L1 (S 1 ) π L2 (S 2 )) W W Κανόνες αναδιατύπωσης συνολοθεωρητικών πράξεων: για παραθυρική ένωση ή τοµή αντιµεταθετική προσεταιριστική 7/12/2004 Θεωρία Βάσεων εδοµένων 19
ιατύπωση ερωτηµάτων µε χρήση παραθύρων σε Continuous Query Language (STREAM): «Εντόπισε όλα τα ταξί που βρέθηκαν τα τελευταία 10 λεπτά εντός περιοχής ενδιαφέροντος» (π.χ. κέντρο της Αθήνας) SELECT V1.vID,V1.vType,V1.x,V1.y FROM Vehicles V1 RANGE 10 MINUTES WHERE V1.x>=475000 AND V1.x<=480000 AND V1.y>=4204000 AND V1.y<=4208000 AND V1.vType="TAXI" Κυλιόµενο παράθυρο πριν τις συνθήκες (predicates) 7/12/2004 Θεωρία Βάσεων εδοµένων 20
ιατύπωση ερωτηµάτων µε χρήση παραθύρων σε StreaQuel (TelegraphCQ): «Εντόπισε όλα τα ταξί που βρέθηκαν τα τελευταία 10 λεπτά εντός περιοχής ενδιαφέροντος» (π.χ. κέντρο της Αθήνας) DECLARE portion CURSOR FOR FETCH FORWARD 100 IN portion SELECT vid, vtype, x, y, TCQTIME FROM Vehicles V1 WHERE (V1.pos @ polygon '(475000,4204000,480000,4208000)' ) = TRUE AND V1.vType ='TAXI' WINDOW V1 ['10 minutes'] Κυλιόµενο παράθυρο σε χωριστό όρο ροµείς (Cursors) χρησιµοποιούνται για να φέρνουν σταδιακά τα αποτελέσµατα 7/12/2004 Θεωρία Βάσεων εδοµένων 21
Επεξεργασία παραθυρικών ερωτηµάτων πολλαπλά ερωτήµατα διαρκείας µε σύνδεση παραθύρων δροµολόγηση πολλαπλών συνδέσεων (multi-way join) δεικτοδότηση (indexing) κυλιόµενων παραθύρων στατική βελτιστοποίηση συζευκτικών ερωτηµάτων διαρκείας πολλαπλές παραθυρικές συναθροίσεις 7/12/2004 Θεωρία Βάσεων εδοµένων 22
Ερευνητικά θέµατα σε ρεύµατα δεδοµένων βελτιστοποίηση πολλαπλών ερωτηµάτων διαρκείας προσαρµοστικότητα προσχεδίων εκτέλεσης ερωτηµάτων διαρκείας σε ευµετάβλητες συνθήκες παροχή προσεγγιστικών αποτελεσµάτων σε πραγµατικό χρόνο (λ.χ. µε περιλήψεις) µοντελοποίηση ρευµάτων δεδοµένων (XML, δίκτυα αισθητήρων, συνδροµητικά δίκτυα κλπ.) αποδοτική διαχείριση πόρων συστήµατος (µνήµη) 7/12/2004 Θεωρία Βάσεων εδοµένων 23
Προσδιορισµός Παραθύρων σε Ρεύµατα εδοµένων Κύριες Παραποµπές [AW04] A. Arasu and J. Widom. A Denotational Semantics for Continuous Queries over Streams and Relations. ACM SIGMOD Record, 33(3):6-12, September 2003. [ABW03] A. Arasu, S. Babu, and J. Widom. An Abstract Semantics and Concrete Language for Continuous Queries over Streams and Relations. In Proceedings of the 9th International Conference on Data Base Programming Languages, Berlin, Germany, September 2003. [BBD+02] B. Babcock, S. Babu, M. Datar, R. Motwani, and J. Widom. Models and Issues in Data Stream Systems. In Proceedings of the 21st ACM Symposium on Principles of Database Systems, pp.1-16, Madison, Wisconsin, May 2002. [Bar99] D. Barbará. The Characterization of Continuous Queries. International Journal of Cooperative Information Systems, 8 (4): 295-323, December 1999. [CKM+03] S. Chandrasekaran, S. Krishnamurthy, S. Madden, A. Deshpande, M.J. Franklin, J.M. Hellerstein, and M. Shah. Windows Explained, Windows Expressed. Technical Report, UC Berkeley, July 2003. 7/12/2004 Θεωρία Βάσεων εδοµένων 24