250 likes | 418 Vues
Stream Base & Stream SQL. Stream Base Systems When NOW means RIGHT NOW. Σίμος Γερασίμου 883576. Εισαγωγή. Τι εννοούμε με τον όρο Stream ? Μια σταθερή ροή ή αλληλουχία ενός υλικού . π.χ. αέρας, νερό, ραδιο-σήματα, λέξεις, internet radio, broadband web tv . Συνεπώς....
E N D
Stream Base & Stream SQL StreamBase Systems When NOW means RIGHT NOW ΣίμοςΓερασίμου 883576 University Of Cyprus Καθηγητής: Δ. Ζειναλιπούρ
Εισαγωγή • Τι εννοούμε με τον όρο Stream? • Μια σταθερή ροή ή αλληλουχία ενός υλικού. π.χ. αέρας, νερό, ραδιο-σήματα, λέξεις, internet radio, broadband web tv. Συνεπώς.... Stream Base είναι μια μηχανή – λογισμικό με υψηλή απόδοση που ‘ δημιουργεί ’ εφαρμογές οι οποίες αναλύουν, επεξεργάζονται και ενεργούν σε δεδομένα πραγματικού χρόνου. Βασικοί Κατευθυντήριοι Άξονες: * Γρήγορη Ανάπτυξη Μέσω της βιομηχανικής event-flow γλώσσας. * Γρήγορη Παρουσίαση Με μικρότερο χρόνο λανθάνουσας κατάστασης, μεγαλύτερο throughput στον server * Ευρεία Σύνδεση Επιτάχυνση συνένωσης δεδομένων πραγματικού χρόνου και δεδομένων που βρίσκονται αποθηκευμένα στη βάση. University Of Cyprus
Εισαγωγή συν... • Παραδοσιακή SQL επεξεργάζεται σχέσεις (πίνακες) , οι οποίες είναι πεπερασμένου μεγέθους, • StreamSQLείναι μια γλώσσα ερωτήσεων που επεκτείνει την παραδοσιακή SQL ως προς τη δυνατότητα να επεξεργάζεται δεδομένα πραγματικού χρόνου. • StreamSQL επεκτείνεται όσον αφορά την επεξεργασία streams, που είναι άπειρες σειρές πλειάδων και δεν είναι όλα διαθέσιμα την ίδια χρονική στιγμή. 1) Επιτρέπει queries απεριόριστα σε χρονική διάρκεια, αριθμό μηνυμάτων και break points. 2) Παρέχει τη δυνατότητα να επεξεργαστούν δεδομένα που φτάνουν στην εφαρμογή εκτός της καθορισμένης σειράς. 3) Τελεστές για τα streams μπορούν να χρησιμοποιηθούν αμέσως και να επεκταθούν αναλόγως (sum, max, min,average) Εναλλακτικές Επιλογές: Coral8, Αleri, Progress Abama University Of Cyprus
Ιστορική Αναδρομή • Δημιουργήθηκε από τον Δρ. Mike Stonebraker, 30 άλλους καθηγητές και φοιτητές του ΜIT. • Συνεργασία μεταξύ Brandeis University, Brown University και ΜΙΤ. • Εργάστηκαν στο project Aurora από το 2001 εώς το 2003. • Aurora Project • Σκοπός:Δημιουργία υποδομής που ικανοποιεί τις απαιτήσεις – περιορισμούς stream based εφαρμογώνγια διαχείριση τεράστιων ποσοτήτων συνεχής ροής δεδομένων σε πραγματικό χρόνο, επεξεργασίας τους και εξαγωγής αποτελεσμάτων. • παρακολούθηση του περιβάλλοντος – χλωρίδας & πανίδας • διαχείριση δεδομένων τηλεπικοινωνιών • οικονομικές συναλλαγές • Στη συνέχεια αντικαταστάθηκε από το project Borealis που είναι μια distributed multi-processor έκδοση του Aurora. University Of Cyprus
Ιστορική Αναδρομή συν… • StreamBase SystemsInc • Ιδρύθηκε από τον Δρ. Mike Stonebraker. • Εδρεύει στο Lexington στηMassachusett. • Παρέχει λογισμικό που βοηθά τους οργανισμούς να αναλύσουν δεδομένα πραγματικού χρόνου και να έχουν άμεση και στιγμιάια απόκριση για σημαντικά ζητήματα. • Ηγετική εταιρεία στη υψηλή απόδοση – επίδοση όσον αφορά Complex Event Processing (CEP). • Αύξηση εσόδων, λιγότερο κόστος, ελαχιστοποίηση ρίσκου όσον αφορά τις συναλλαγές. • Προμηθεύει μεγάλους επενδυτικούς οργανισμούς, τραπεζικούς οργανισμούς παγκόσμιας εμβέλειας, κυβερνητικές – στρατιωτικές μονάδες. • Συνένωση της stream μηχανής με τις υπάρχουσες ΒΔ μπορεί να γίνει μέσω υπάρχοντων interfaces όπως TIBCO Rendezvous, διαθέσιμα Java and C++ APIs, και ODBC. University Of Cyprus
Πλεονεκτήματα • Παραγωγικότητα • Δημιουργία συστημάτων πραγματικού χρόνου 10 φορές γρηγορότερα σε σχέση με εναλλακτικές λύσεις. • Επίδοση • Επεξεργασία μηνυμάτων σε ποσοστά εώς εκατοντάδων χιλιάδων μηνυμάτων / second σε ένα μόνο CPU. • Έυκολη Συνένωση • Ελάχιστος χρόνος επιτυχίας με μικρό βαθμό ρίσκου. • Ωρίμότητα • Αξιοπιστία, ευρωστία, ασφάλεια προιόντος λόγω σημαντικών – κρίσιμων συστημάτων της βιομηχανίας στα οποία βασίστηκε. • Κέρδος • Περισσότερα έσοδα, μείωση κόστους και ρίσκου. • Συνεπώς, αποτελεσματικότερες στιγμιαίες αποφάσεις. University Of Cyprus
Πλεονεκτήματα συν... Για να επιτύχεις low-latency, εκτέλεσε την επεξεργασία δεδομένων χωρίς να τα έχεις αποθηκεύσει πρώτα και μετά να τα ανακτήσεις. In-stream Processing Traditional Data Processing Event Data Alerts Actions Memory Disk Queries • Low latency • Χωρίς Καθυστέρηση • Τα αποτελέσματα παράγονται on the fly. University Of Cyprus
Mειονεκτήματα • Είναι απαραίτητο μόνο αν πρόκειται για εφαμογές που διαχειρίζονται streams δεδομένων. • Aν πρόκεται για στατιστικά στοιχεία ή αποθηκευμένα δεδόμενα τότε είναι καλή και η παραδοσιακή SQL. • "StreamSQL unifies the processing of stored and streaming data, empowering developers to use one high-level, extensible language to dynamically query and run computations on a variety of types of data." Dr. Michael Stonebraker Database luminary & pioneer of database research and technology University Of Cyprus
Εγκατάσταση • Υποστηρίζει λειτουργικά συστήματα όπως Windows(32-64), Linux, Solaris. • Απαιτήσεις Hardware: • CPU clock speed > 1GHz • RAM > 1GB • Processor: Ανάλογα με λειτουργικό σύστημα • Disk Space: ~750MB • Απαραίτητο: Sun JDK 1.5.0_15 και μετέπειτα • ΗΤΜL Browser • κ.α. • Για να εγκατασταθεί απαιτείται το StreamBase for Windows CD και ένας έγκυρος αριθμός αδείας. University Of Cyprus
Integrated environment for building, testing, deploying StreamBase Studio • Eclipse-based IDE • Drag-and-connect with workflow orientation • Built-in load simulation for easy testing • Stream Record/Playback • Custom C++ or Java operators • Debugger & performance monitor University Of Cyprus
Πως μπορώ... • Να αποφασίσω ότι η δραστηρίοτητα ενός χρήστη στο διαδίκτυο έχει τελειώσει? • Να διακρίνω τις κερδοφόρες μετοχές στο χρηματιστήριο πριν από τον ανταγωνιστή μου? • Να παρακολουθήσω 25,000 αισθητήρες σε στρατιωτικές δυνάμεις κατά τη διάρκεια της μάχης? • Να δημιουργήσω μια νέα τιμή για δεδομένα εισόδου βασιζόμενος σε ένα παράγοντα και για διάφορες μέρες? • Να συντονίσω 10,000 αισθητήρες καιρού για να προβλέψω μια καταιγίδα όσο το δυνατόν πιο σύντομα? University Of Cyprus
Παραδείγματα: 1 • ClickStream Analysis Demo • Αποφασίζει πότε η δραστηριότητα ενός χρήστη σε μια εφαμοργή διαδικτύου έχει λήξει βάσει threshold και των clicks που έχει κάνει. University Of Cyprus
Παραδείγματα: 1 συν... -- Εισερχόμενο stream όπου η εφαρμογή λαμβάνει τα updates. • CREATE INPUT STREAM ClickStream( userID string(16),timestamp timestamp ); -- Πίνακας που διατηρεί την κατάσταση του χρήστη • CREATE TABLE UserActivity(userID string(16) PRIMARY KEY, lastActivity timestamp ); -- Δημιουργία timeout threshold προσθέτοντας το ClickStream. CREATE STREAM ThresholdStream AS SELECT userID,seconds(15) AS timeoutThreshold,now() as timestamp FROM ClickStream; University Of Cyprus
Παραδείγματα: 1 συν... -- Διάβασμα τελευταίας δρατηριότητας του χρήστη CREATE STREAM ReadUserActivity AS SELECT ThresholdStream.userID AS userID, ThresholdStream.timeoutThreshold AS timeoutThreshold, ThresholdStream.timestamp AS timestamp, UserActivity.lastActivity AS lastActivity FROM ThresholdStream OUTER JOIN UserActivity WHERE ThresholdStream.userID == UserActivity.userID; University Of Cyprus
Παραδείγματα: 1 συν... -- Διαγραφή όλων των δραστηριοτήτων μικρότερων από το threshold του τρέχοντος timestamp. CREATE STREAM UserSessionEnding AS DELETE FROM UserActivity USING ThresholdStream WHERE UserActivity.lastActivity <= timestamp-timeoutThreshold RETURNING timestamp AS timeEventTriggered, UserActivity.userID ASuserID, UserActivity.lastActivity AS lastActivity; University Of Cyprus
Παραδείγματα: 1 συν... -- Εξερχόμενο Stream που περιλαμβάνει non null activity και userIDs. CREATE OUTPUT STREAM UserSessionEnded AS SELECT * FROM UserSessionEnding WHEREnotnull(UserSessionEnding.userID) && notnull(UserSessionEnding.lastActivity); --Ανανέωση της τελευταίας δραστηριότητας του συγκεκριμένου userID με νέο timestamp. INSERT INTO UserActivity (userID, lastActivity) SELECT userID,timestamp FROM ThresholdStream ON DUPLICATE KEY UPDATE lastActivity = timestamp; University Of Cyprus
Παραδείγματα: 1 συν... -- Δημιουργία νέου session (implemented as a filter query). CREATE STREAM DetectNewSession AS SELECT * FROM ReadUserActivity WHERE isnull(lastActivity) || (timestamp-lastActivity) > timeoutThreshold; -- Cleanup output schema by explicitly outputing three fields. CREATE OUTPUT STREAM UserSessionBegins AS SELECT userID,timestamp,timeoutThreshold FROM DetectNewSession; University Of Cyprus
Παραδείγματα: 2 • Σενάριο: • Κάθε λεπτό για κάθε μετοχή που συναλλάσομαι : • Υπολόγισε το VWAP (vol. weighted avg. price) για τις μετοχές μουκαι όλες τις μετοχές. • Ειδοποία με όποτε η προσωπική εκτέλεση ανταλλαγής είναι κατώτερη του εμπορίου • Λύση: • 5 StreamBaseτελεστές, 30 λεπτά για να ετοιμαστεί University Of Cyprus
(unit#, x, y) Count; Window = 1 min Count > 3 (x.y) across line and enemy Lookup (unit#) (unit#, x, y, enemy?) Παραδείγματα: 3 • Σενάριο • Η κυβέρνηση θέλει να να φιλτράρει τα δεδομένα και τις αναφορές από τα αναγνωριστικά αεροσκάφη όσον αφορά την δραστηριότητα των φιλίκών και εχθρικών δυνάμεων. • Προσδιορισμός φιλικών και εχθρικών δυνάμεων, τανκς, αεροσκαφών σε πραγματικό χρόνο. • Λύση • Εγκατάσταση αισθητήτων για προσδιορισμό όλων των κινήσεων του εχθρού. Example of combat military monitoring of friendly and enemy forces in real-time with StreamBase University Of Cyprus
Παραδείγματα: 4 • Σενάριο - Δημιούργησε την νέα τιμή του split για tick σε μια είσοδο για διάφορες μέρες. Twoinput streams: Tick (symbol, price, volume, date, time) Splits (symbol, date, time, split_factor) University Of Cyprus
Παραδείγματα: 4 συν... Stored table: Store (symbol, factor) Feeds: Tick and Split _________________________________________ UPDATEStore (SET factor = factor * S.split_factor) FROMSplit S WHERE symbol = S.symbol SELECT T.symbol, price = T.price * S.factor, T.volume, T.date, T.time FROMTick T, Store S WHERE S.symbol = T.symbol Mixing Stream and Table Mixing Stream and Table University Of Cyprus
Παραδείγματα: 4 συν... Tick (symbol, price, volume, date, time) (read) T.price * S.factor Store (Symbol, Factor) Splits (symbol, date, time, split_factor) (write) factor * S.split_factor University Of Cyprus
Συμπεράσματα • Stream Base – StreamSQLπιο έυχρηστη και ευκολότερη από την παραδοσιακή SQL. • Έχει περισσότερες εφαρμογές στην καθημερινή ζωή • κυβερνητικές μονάδες, στρατιωτικές επιχειρήσεις, οικονομικά ζητήματα, οικολογικά θέματα • Ελαχιστοποίηση ρίσκου και απωλειών. • Μικρό κόστος αλλά επιφέρει σημαντικά έσοδα και κέρδη. University Of Cyprus
Βιβλιογραφία • http://www.streambase.com • http://www.linkedin.com/companies/streambase-systems • http://products.databasejournal.com/dbtools/dar/StreamBase-Systems-StreamBase.html • http://en.wikipedia.org/wiki/StreamSQL • http://www.streambase.com/developers-library-code.htm#top University Of Cyprus
Ευχαριστώ Ερωτήσεις / Απορίες ??? University Of Cyprus