ΔΙΑΧΕΊΡΙΣΗ ΡΟΏΝ ΔΕΔΟΜΈΝΩΝ ΕΙΣΑΓΩΓΉ ΣΤΑ ΣΥΣΤΉΜΑΤΑ ΔΙΑΧΕΊΡΙΣΗς ΡΟΏΝ ΔΕΔΟΜΈΝΩΝ B. Μεγαλοοικονόμου, Π. Κορβέσης ΤΜΗΥΠ Βάσεις Δεδομένων ΙΙ
Εισαγωγή Σενάριο: Διαθέτουμε Ν αισθητήρες για την παρακολούθηση της κατάστασης μιας λίμνης. Οι αισθητήρες καταγράφουν πληροφορίες όπως η στάθμη, η θερμοκρασία, επίπεδα μόλυνσης κ.λ.π.. Πρόβλημα: Καθώς διαβάζουμε τα δεδομένα από τους αισθητήρες επιθυμούμε να τρέχουμε κάποιους αλγόριθμους ανάλυσης
Εισαγωγή Προδιαγραφές Alerts: υπερχείλιση, μόλυνση Summarization: Ποια είναι τρέχουσα κατάσταση της λίμνης Πρόβλεψη μεταβλητών όπως η στάθμη Ανακάλυψη προτύπων στην εξέλιξη των μεταβλητών ή/και της κατάστασης
Διαχείριση Ροών Δεδομένων Notification Receiver Notification Receiver Sensor Sensor Sensor Data Management, Data Processing and Decision Making Notification Receiver Sensor Storage Queries
Εισαγωγή Ροές Δεδομένων Τι είναι ροή δεδομένων (data stream)? Ποιο είναι το βασικό χαρακτηριστικό των ροών δεδομένων?
Εισαγωγή Ροές Δεδομένων Χαρακτηριστικά ροών δεδομένων: υψηλοί ρυθμοί μετάδοσης των δεδομένων οι ρυθμοί μπορεί να είναι διαφορετικοί για κάθε αισθητήρα ραγδαία αύξηση του όγκου των δεδομένων Άλλα παραδείγματα Διάφορα Events (System Monitoring, security) Web User data (e.g. Twitter)
Εισαγωγή Απαιτήσεις Βασικές ανάγκες σε εφαρμογές ροών δεδομένων Αποδοτική επεξεργασία πρόσφατων δεδομένων Γιατί? Αποδοτική αποθήκευση του συνόλου των δεδομένων
Εισαγωγή Θα πρέπει να υποστηρίξουμε την επεξεργασία με διάφορα εργαλεία διαχείρισης δεδομένων
Στόχος της διαχείρισης (I) Οργάνωση των δεδομένων έτσι ώστε να πραγματοποιούμε: Γρήγορη προσπέλαση πρόσφατων δεδομένων Αποτελεσματική ανάκτηση προηγούμενων δεδομένων Αποδοτική αποθήκευση/συμπίεση
Στόχος της διαχείρισης (ΙΙ) Αποτελεσματική Υποστήριξη Αλγορίθμων Εξόρυξης Γνώσης Χρήση αλγορίθμων με τα ακόλουθα χαρακτηριστικά: Χαμηλή πολυπλοκότητα Όσο το δυνατό μεγαλύτερη ακρίβεια Αξιοποίηση πληροφορίας από ένα σύνολο πηγών πληροφορίας, λαμβάνοντας υπόψη την ταυτόχρονη εξέλιξη
ΜΈΡΟς Ι: ΔΙΑΧΕΊΡΙΣΗ ΔΕΔΟΜΈΝΩΝ
Διαχείριση Ροών Δεδομένων (Data Stream Management) Γιατί όχι παραδοσιακά DBMS; Τα παραδοσιακά DBMS έχουν στόχο την αποθήκευση δεδομένων για εφαρμογές που αποτελούνται από τέσσερα βασικά στάδια: 1. Αποθήκευση Δεδομένων 2. Ανάκτηση Δεδομένων 3. Επεξεργασία Δεδομένων 4. Αποθήκευση Δεδομένων Data source Query Process Store
Διαχείριση Ροών Δεδομένων (Data Stream Management) Αντίθετα, οι τυπικές εφαρμογές πάνω σε ροές δεδομένων αποτελούνται συνήθως από τα παρακάτω στάδια: 1. Εισαγωγή Δεδομένων στην εφαρμογή 2. Επεξεργασία δεδομένων 3. Αποθήκευση Δεδομένων Data In Process Η επεξεργασία των δεδομένων γίνεται συνήθως πριν την αποθήκευση Store
Διαχείριση Ροών Δεδομένων Ερωτήματα - Queries Πολλές εφαρμογές ροών δεδομένων απαιτούν την εκτέλεση SQL ερωτημάτων Τα ερωτήματα αυτά εκτελούνται πάνω σε δεδομένα που ανανεώνονται συνεχώς Τα συγκεκριμένα ερωτήματα έχουν βασικές ιδιαιτερότητες που προκύπτουν τόσο από την φύση των δεδομένων όσο και από τον τύπο της ανάλυσης που πραγματοποιείται
Queries: Βασικές Απαιτήσεις [GO03] Time Based Queries Continuous Queries Short Term Queries Long Term Queries Τα κλασσικά DataBase Management Systems δεν παρέχουν τέτοιου είδους λειτουργίες ή καλύτερα, δεν είναι optimized για τέτοιου τύπου διαδικασίες.
Βάσεις Δεδομένων - Queries Static vs Continuous Στατικό Query Επέστρεψε τον αριθμό των φοιτητών που έχουν Μέσο Όρο Πάνω από 8.5 Συνεχές Query Επέστρεψε την μέση τιμή του δείκτη μόλυνσης (+Χρονικοί Περιορισμοί) Επιπλέον: Η έξοδος του συνεχούς query μπορεί να αποτελεί μια καινούρια ροή (stream) Τα συνεχή queries μπορεί να αποτελούνται από subqueries, όπως στις συνηθισμένες βάσεις δεδομένων
Continuous Query - Παράδειγμα Το παρακάτω query (Linq) εκτελείται συνεχώς και παράγει ένα νέο stream var polutionsensorvalue = from e in sensorstream where e.id == 312343 select e.value; int id; double value; double value; sensorstream Query (above) PollutionSensorValue
Ζητήματα σε ροές δεδομένων (Ι) Μερικά προβλήματα ακόμη.. Όταν ξεκινά η εκτέλεση του Query ενδέχεται να μην υπάρχουν όλα τα δεδομένα. Το μέγεθος μιας ροής είναι απεριόριστο. Οι συχνότητες με τις οποίες καταφθάνουν δεδομένα από διαφορετικές ροές δεν είναι κοινές. Δεν είναι ξεκάθαρο: Πότε είναι έτοιμη η έξοδος ενός ερωτήματος? Με ποια σειρά έρχονται τα δεδομένα? Για πόσο χρονικό διάστημα θα πρέπει να περιμένουμε καινούργια δεδομένα?
DSMS Data Stream Management System Data Stream Management System DSMS Διαχείριση ροών δεδομένων λαμβάνοντας υπόψη τις προαναφερθείσες προδιαγραφές
Managemet Systems Data Base vs Data Stream DBMS DSMS Στατικά Δεδομένα On-Demand εκτέλεση ερωτημάτων Ακριβή αποτελέσματα Αποθήκευση σε δίσκους Παράδειγμα Πρόβλημα Υπολογισμός μέσης τιμής της στάθμης της λίμνης Συνεχή Δεδομένα Συνεχής Εκτέλεση Ερωτημάτων Αποτελέσματα: Συνήθως Προσεγγιστικά Αποθήκευση στην κύρια μνήμη
DSMS: Data Stream Management System DSMS General Architecture [GO03]
DSMS - Queries Blocking Operators Πρόβλημα Οι πράξεις: Sort Join Group Είναι blocking Λύσεις Random Subsets Fixed and Sliding Windows Punctuation
DSMS - Παράθυρα Στις περισσότερες εφαρμογές που επεξεργάζονται ροές δεδομένων πραγματοποιούνται υπολογισμοί πάνω σε δεδομένα που αφορούν συνεχή χρονικά διαστήματα Π.χ. υπολογισμός της στάθμης της λίμνης κάθε 5 λεπτά Βασική λειτουργία των DSMS είναι η δυνατότητα επεξεργασίας δεδομένων σε χρονικά παράθυρα που ορίζονται από τους προγραμματιστές
DSMS Παράθυρα Hopping Window value w1 w2 w3 w4 w5 w6 w7 time Βασικές Παράμετροι: Window Size Hop Size
DSMS Παράθυρα Time-based windows Ορισμός του μεγέθους του παραθύρου με βάση τη χρονική διάρκεια, π.χ. 15 δευτερόλεπτα Count-Based windows Ορισμός του μεγέθους του παραθύρου με βάση τον αριθμό των δειγμάτων, π.χ. κάθε 50 δείγματα
DSMS - Queries Query Scheduler Στο Query Repository υπάρχουν τα queries που έχουν τεθεί Βασικό πρόβλημα είναι η σειρά με την οποία θα τρέξουν τα ερωτήματα αυτά Optimization Πρόβλημα: Ελάχιστος χρόνος εκτέλεσης Ελάχιστη μνήμη
DSMS - Queries Query Scheduler Τέσσερις Διαστάσεις του προβλήματος [SLC08] Καθορισμός στόχων και υλοποίηση πολιτικών για την υλοποίηση τους (π.χ., ελάχιστη καθυστέρηση, λιγότερη μνήμη) Window-Based CQs - δρομολόγηση πολύπλοκων ερωτημάτων όπως τα joins Βελτιστοποίηση εκτέλεσης αξιοποιώντας κοινά subqueries Υλοποίηση Scheduler με βέλτιστο τρόπο απαραίτητο για online συστήματα
DSMS Load Shedding Όταν το σύστημα είναι υπερφορτωμένο και δεν είναι δυνατόν να επεξεργαστούν όλα τα δεδομένα, ένα DSMS πρέπει να παρέχει μια στρατηγική για να «κόψει» κάποιο από το φορτίο με την μικρότερη απώλεια σε ακρίβεια (Tatbul et al., 2003] και [Babcock et al., 2004]).
DSMS - Storage Απαραίτητη η καλή οργάνωση του ιστορικού για long term queries κυρίως για data warehouses Κλασσικές μέθοδοι όπως B-Trees υποστηρίζουν πολλά data types Για χρονοσειρές? Προσωρινή Αποθήκευση?
DSMS - Systems and Query Languages Overview [GO03] Aqsios [SCLP08] AQuery [LS03] Aurora [AC+03] CQL/STREAM [ABW06] XStream [GMN+08] DataDepot [GJSS09] StreaQuel Tribeca Διαφέρουν κυρίως ως προς: την εφαρμογή που προσανατολίζονται τους operators που υποστηρίζουν
DSMS - Systems and Query Languages [GO03]
User Defined Functionality Τα DSMS προσφέρουν κυρίως SQL λειτουργίες σε ροές δεδομένων. Συνήθως στις εφαρμογές θέλουμε να πραγματοποιήσουμε σύνθετους υπολογισμούς. Πώς? User defined Functions User defined Aggregates User defined Operators
DSMS User Defined Functions Μετασχηματισμός των δεδομένων χρησιμοποιώντας συναρτήσεις var polutionsensorvalue = from e in sensorstream where e.id == getpollutionsensorid() select e.value; var polutionsensorvalue = from e in sensorstream where e.id == 3232123123 select abs(e.value);
DSMS User Defined Aggregates Aggregate: επιστρέφει μία τιμή για ένα σύνολο τιμών. Π.χ. SUM(), AVG(), MIN(), MAX() var polutionsensorvalue = from e in sensorstream.window() select userdefinedaggregate(e => e.value);
DSMS User Defined Operators Operator: Επιστρέφει ένα σύνολο τιμών για ένα σύνολο τιμών var polutionsensorvalue = from e in sensorstream.window() select e.userdefinedoperator();
Παραδείγματα
Microsoft StreamInsight Data Inputs: Input/Output Adapters Observable and Enumerable sources/sinks. Processing within StreamInsight is commonly performed by writing queries in Linq (Language Integrated Query) User Defined Operators (UDOs), User Defined Functions (UDFs) and User Defined Aggregates (UDAs). StreamInsight offers different types of windows, such as hopping, count and snapshot.
Microsoft StreamInsight StreamInsight Event Sources Input Adapter Event Targets Devices Input Adapter Query Logic Output Adapter Monitoring Devices Sensors Input Adapter Query Logic Output Adapter Databases Databases Input Adapter Query Logic
XStream DSMS [GMN+08] DSMS για Σήματα Signal Oriented DSMS Βασικά Χαρακτηριστικά WaveScript Γλώσσα Προγραμματισμού SigSeg data type Υψηλές Επιδόσεις Distributed Execution Engine Βασική Προϋπόθεση: Ισόχρονα Δεδομένα
XStream DSMS [GMN+08] Unified Query Language Memory Managing Query Plans Query Optimization Distributed Execution
Data Stream Management Systems Συμπεράσματα/Συζήτηση Γιατί DSMS; SQL λειτουργίες στα DSMS Ιδιαίτερη βαρύτητα στον scheduler Προσανατολισμός στα short term queries Διάφορα data types/applications
Αναφορές (Ι) Abadi, D. J., Carney, D., Ηetintemel, U., Cherniack, M., Convey, C., Lee, S., Stonebraker, M., Tatbul, N., and Zdonik, S. (2003). Aurora: a new model and architecture for data stream management. The VLDB Journal, 12:120 139. Arasu, A., Babcock, B., Babu, S., Cieslewicz, J., Datar, M., Ito, K., Motwani, R., Srivastava, U., and Widom, J. (2004). Stream: The stanford data stream management system. Technical Report 2004-20, Stanford InfoLab. Babcock, B., Babu, S., Datar, M., Motwani, R., and Widom, J. (2002). Models and issues in data stream systems. In Proceedings of the twenty-first ACM SIGMODSIGACT- SIGART symposium on Principles of database systems, PODS 02, pages 1 16, New York, NY, USA. ACM. Babcock, B., Babu, S., Motwani, R., and Datar, M. (2003). Chain: operator scheduling for memory minimization in data stream systems. In Proceedings of the 2003 ACM SIGMOD international conference on Management of data, SIGMOD 03, pages 253 264, New York, NY, USA. ACM. Babcock, B., Datar, M., and Motwani, R. (2004). Load shedding for aggregation queries over data streams. Data Engineering, International Conference on, 0:350.
Αναφορές (ΙΙ) Girod, L., Mei, Y., Newton, R., Rost, S., Thiagarajan, A., Balakrishnan, H., and Madden, S. (2008). Xstream: a signal-oriented data stream management system. In Data Engineering, 2008. ICDE 2008. IEEE 24th International Conference on, pages 1180 1189. Golab, L. and Fzsu, M. T. (2003). Issues in data stream management. SIGMOD Rec., 32:5 14. Sharaf, M. A., Labrinidis, A., and Chrysanthis, P. K. (2008).Scheduling continuous queries in data stream management systems. Proc. VLDB Endow., 1:1526 1527. Tatbul, N., Ηetintemel, U., Zdonik, S., Cherniack, M., and Stonebraker, M. (2003). Load shedding in a data stream manager. In Proceedings of the 29th international conference on Very large data bases - Volume 29, VLDB 2003, pages 309 320. VLDB Endowment. Zhu, Y. and Shasha, D. (2002). Statstream: statistical monitoring of thousands of data streams in real time. In Proceedings of the 28th international conference on Very Large Data Bases, VLDB 02, pages 358 369. VLDB Endowment.