www.wikidata.de-de.nina.az
Ein Data Stream Management System DSMS ist ein Software System zur Verwaltung von kontinuierlichen Datenstromen Es ist vergleichbar mit einem Datenbankverwaltungssystem DBMS welches fur Datenbanken eingesetzt wird Im Gegensatz zu einem DBMS in dem Anfragen auf statischen Daten kurzzeitig ausgefuhrt werden muss ein DSMS kontinuierliche Anfragen auf Datenstromen ausfuhren konnen Zur Formulierung von Anfragen konnen spezielle Anfragesprachen wie beispielsweise die Continuous Query Language CQL eingesetzt werden Data Stream Management Systeme sind in der Datenbankwelt noch relativ neu Einige erste Entwicklungen fur allgemeine Zwecke sind Stanford Stream Data Manager STREAM an der Stanford University Aurora an der Brandeis University Brown University und dem MIT TelegraphCQ in Berkeley PipelineDB wie TelegraphCQ ein Ableger von PostgreSQL Daneben gibt es eine wachsende Zahl kleinerer Projekte mit verschiedenen Schwerpunkten Im Gegensatz zu nicht stromenden Daten die fast ausschliesslich mit universellen Datenbankverwaltungssystemen verwaltet werden werden fur stromende Daten allerdings noch in der Regel Systeme verwendet die speziell fur den Anwendungsfall entwickelt oder angepasst werden Inhaltsverzeichnis 1 Unterschiede zu DBMS 2 Grundlegende Konzepte 2 1 Kontinuierliche Anfragen 2 2 Fenster 2 3 One pass Paradigma 3 Verarbeitung von Stromen und Relationen 4 Formulierung Planung und Optimierung von Anfragen 4 1 Beispiel 5 Literatur 6 Weblinks 7 EinzelnachweiseUnterschiede zu DBMS Bearbeiten nbsp Datenverarbeitung in einem DBMS nbsp Datenverarbeitung in einem DSMSIn herkommlichen Datenbanksystemen werden kurzzeitig laufende Anfragen auf eine wahrend der Datenauswertung gleichbleibende Datenbasis gestellt siehe Transaktionssystem Die Anfragen werden gestartet und bleiben solange im System bis die Ergebnisse berechnet und ausgegeben wurden Danach sind die Anfragen nicht mehr im System vorhanden Man spricht auch davon dass die Daten persistent und die Anfragen fluchtig sind In einem Data Stream Management System werden die Anfragen einmalig installiert und bleiben im System bestehen bis sie explizit wieder entfernt werden Die Anfragen werden auf sich laufend andernden Daten ausgewertet namlich auf Datenstromen Die Ergebnisse der Anfragen werden ebenfalls kontinuierlich aktualisiert ergeben also selbst auch einen Datenstrom Man spricht auch davon dass die Anfragen persistent und die Daten fluchtig sind Diese beiden komplementaren Prinzipien sind beispielsweise auch beim Information Retrieval als Ad hoc Anfragen neue Anfragen an gleiche Dokumente und Routing Aufgaben neue Dokumente zu vorgegebenen Anfragen bekannt 1 Die folgende Tabelle gibt einen Vergleich verschiedener Merkmale eines Database Management Systems DBMS und eines Data Stream Management Systems DSMS Database Management System DBMS Data Stream Management System DSMS Persistente Daten Relationen Fluchtige DatenstromeRandom Access Sequentieller ZugriffEinmalige Anfragen Kontinuierliche Anfragen Theoretisch unbeschrankter Sekundarspeicher Beschrankter HauptspeicherNur der aktuelle Zustand ist relevant Berucksichtigung der Eingangs Reihenfolgerelativ niedrige Update Rate moglicherweise extrem hohe Update Ratekeine oder geringe Zeitanforderungen EchtzeitanforderungenExakte Daten werden angenommen Veraltete Ungenaue DatenPlanbare Anfragebearbeitung Variable Datenankunft und merkmaleGrundlegende Konzepte BearbeitenEin DSMS hat wie in der oberen Tabelle bereits ersichtlich einige grundlegende Konzepte die sich von einem herkommlichen DBMS unterscheiden Die wichtigsten Konzepte sind kontinuierliche Anfragen sowie Fenster Kontinuierliche Anfragen Bearbeiten Eine kontinuierliche Anfrage wird einmalig im System installiert und lauft solange bis sie wieder entfernt wird Die Anfrage hat einen oder mehrere Eingangsdatenstrome und einen oder mehrere Ausgangsdatenstrome Das Ergebnis einer solchen Anfrage ist also kein einmaliger Satz an Daten wie bei einer Anfrage in einem DBMS sondern selbst ein Datenstrom Die Ergebnisse sollten in nahezu Echtzeit erstellt werden womit die Latenz zwischen der Ankunft neuer Daten und der Ausgabe eines neuen Ergebnisses von hoher Relevanz ist 2 Wichtig bei einer kontinuierlichen Anfrage ist die Definition wann eine neue Ausgabe produziert wird Ein zeitgetriebenes Modell engl time driven model erzeugt neue Ausgaben anhand des zeitlichen Fortschritts einer Uhr zum Beispiel der Systemzeit So konnte eine neue Ausgabe einmal pro Minute erzeugt werden Ein anderer Ansatz sind ereignisgetriebene Modelle engl event driven model bei denen neue Ausgaben erzeugt werden wenn gewisse Ereignisse im Datenstrom auftreten So konnte z B jedes neue Datenelement in einem Strom eine neue Ausgabe erzeugen da dieses Datenstromelement das Ergebnis fur diesen Zeitpunkt beeinflussen kann Dann spricht man auch von einem tupelgetriebenen Modell engl tuple driven model 2 Fenster Bearbeiten Datenstrome sind potentiell unendlich erzeugen also eine potentiell unendliche Menge an Daten Wahrend der Verarbeitung von kontinuierlichen Anfragen die zumeist im Hauptspeicher passiert steht allerdings nur eine begrenzte Menge an Speicher zur Verfugung Fenster sind eine Moglichkeit die Menge an Daten die im Speicher gehalten werden muss zu begrenzen Eine weitere Motivation fur die Verwendung von Fenstern ist der Verwendungszweck von kontinuierlichen Anfragen Diese sollen Ergebnisse fur die aktuellen Daten liefern die mit dem Datenstrom in das DSMS fliessen Deshalb sind haufig nur die aktuellen Daten relevant wahrend altere Daten nicht mehr fur die aktuellen Ergebnisse benotigt werden Um eine Begrenzung der Gultigkeit von Datenelementen ausdrucken zu konnen werden Fenster verwendet Fenster begrenzen die Sicht auf den Datenstrom auf die neuesten Elemente des Stroms Verbreitet sind zeit und elementbasierte auch tupelbasierte Fenster 2 In zeitbasierten Fenstern werden die Elemente im Datenstrom eine gewisse vorgegebene Zeit im System gehalten zum Beispiel 30 Minuten In einem elementbasierten Fenster enthalt das Fenster maximal eine vorgegebene Menge an Elementen zum Beispiel die neuesten 1000 Elemente Ein Beispiel fur eine Anfrage mit einem zeitbasierten Fenster ist Berechne den Durchschnitt des Attributs x von allen Datenstromelementen der letzten 30 Minuten Element und zeitbasierte Fenster konnen unterschiedlich definiert werden Hier wird hauptsachlich zwischen gleitenden engl sliding und taumelnden bzw springenden engl tumbling Fenstern unterschieden Der Unterschied besteht in der Schrittgrosse des Fensters auch Periodizitat genannt Ein gleitendes Fenster schreitet mit dem Fortschritt des Datenstroms so voran dass die Schrittweite minimal ist In einem elementbasierten Fenster wurde fur ein neues Element dass in das Fenster aufgenommen wird also genau ein Element wieder entfernt werden Die Schrittweite kann soweit verandert werden dass sie die Grosse des Fensters hat dies nennt man dann ein taumelndes Fenster engl tumbling window Hier wird ein Fenster bis zur angegebenen Grosse gefullt Beim Eintreffen des nachsten Elementes womit die angegebene Grosse des Fensters uberschritten werden wurde werden alle vorherigen Elemente gleichzeitig ungultig und das neue Fenster wird schrittweise aufgebaut bis es wieder die maximale Grosse erreicht hat In zeitbasierten Fenstern geschieht dies analog Ein taumelndes Fenster ware zum Beispiel ein Fenster der Grosse von 30 Minuten und einer Schrittweite von 30 Minuten 2 One pass Paradigma Bearbeiten Die Ressourcen im Sinne von Rechenzeit und Speicherplatz zur Berechnung von Ergebnissen auf Datenstromen sind begrenzt Algorithmen die Datenstrome verarbeiten speichern die Daten deshalb typischerweise nicht erst vollstandig und iterieren dann uber den gesamten Datensatz um Ergebnisse zu erzeugen sondern verarbeiten jedes einzelne Element im Datenstrom nur einmal Dies nennt man One Pass Paradigma Ein Datenelement durchlauft einen Algorithmus nur einmal 2 Erreicht ein neues Element den Algorithmus wird das Ergebnis der Berechnung angepasst und es ist kein neuer Zugriff auf das Element zu einem spateren Zeitpunkt mehr notwendig Deshalb muss der Algorithmus keine alten Elemente speichern sondern nur das aktuelle Zwischenergebnis Dies funktioniert zum Beispiel bei einem einfachen Zahler Die Anzahl der Objekte soll gezahlt werden Kommt ein neues Element bei dem Algorithmus an wird der Zahler um eins erhoht gespeichert und das Element kann geloscht werden Nur der aktuelle Zahlerstand muss gespeichert werden Verarbeitung von Stromen und Relationen Bearbeiten nbsp Aufbau eines DSMSWahrend in herkommlichen relationalen Datenbanksystemen die Daten in Tabellen Relationen verwaltet werden kommen in einem DSMS als grundlegende Datenobjekte Datenstrome hinzu Datenstrome konnen als kontinuierliche Folge von Zeit Wertepaaren aufgefasst werden Da Datenstrome prinzipiell unendlich sind mussen sie zur Verarbeitung zwischenzeitlich in Relationen umgewandelt werden Umgekehrt konnen Relationen wieder in Datenstrome umgewandelt werden siehe Abbildung Die Verarbeitung von reinen Relationen kann mit herkommlichen Methoden stattfinden Die Umwandlung von Stromen in andere Strome findet uber den Umweg von Relationen statt Die auf SQL aufbauende Continuous Query Language bietet dazu verschiedene Operatoren an Formulierung Planung und Optimierung von Anfragen BearbeitenEbenso wie in herkommlichen Datenbanksystemen werden Anfragen in einer deklarativen Sprache formuliert und zur Ausfuhrung mit Hilfe eines Anfrageplans optimiert Da moglichst viele Anfragen gleichzeitig abgearbeitet werden sollen werden die gespeicherten Anfragen moglichst geschickt kombiniert so dass Teilanfragen mehrfach verwendet werden konnen Die Komponenten eines Plans sind Operatoren Warteschlangen und Zustande Die Operatoren entsprechen den aus herkommlichen Datenbanken bekannten Operatoren wie beispielsweise die Filterung Sortierung Join mathematische Operatoren etc sowie die Ein und Ausgabe von Datenstromen Die einzelnen Operatoren eines Planes sind durch Warteschlangen verbunden in die Datenobjekte sequentiell hineingeschrieben und in der gleichen Reihenfolge vom nachsten Operator ausgelesen werden Als Zwischenergebnisse gibt es Zustande wie beispielsweise der Inhalt eines festgelegten Fensters Beispiel Bearbeiten nbsp Ein Nachrichtenportal mochte auf seiner Seite aktuelle Nachrichten zu den zurzeit am meisten besprochenen Themen sowie die Nachrichtenmenge eines Tages anzeigen In einem Datenstrom kommen Nachrichten und in einem anderen Datenstrom als Zeitgeist die aktuell wichtigen Themen an Jede Nachricht ist einem Thema zugeordnet Konkret sollen die Nachrichtentitel der letzten Stunde zu den 10 letzten Themen sowie die Anzahl aller dazu passenden Nachrichten innerhalb der letzten 24 Stunden angezeigt werden In CQL formuliert sind dies zwei Anfragen Q1 SELECT Titel FROM Nachrichten N Range 1 HOUR Zeitgeist Z RANGE 10 WHERE N Thema Z ThemaQ2 SELECT COUNT FROM Nachrichten N RANGE 1 DAY Zeitgeist Z RANGE 10 WHERE N Thema Z ThemaDas DSMS erstellt nun aus diesen Anfragen einen moglichst effizienten Plan der beispielsweise wie in nebenstehender Abbildung angegeben aussehen konnte Von den Nachrichten werden zunachst die Titel und Themen projiziert und kommen in eine Warteschlange Die Themen kommen zunachst in eine Warteschlange und von dort in ein Fenster der Lange 10 Nachrichten und Fenster werden durch einen JOIN Operator verknupft und gelangen in ein Fenster das alle Nachrichten eines Tages enthalt Aus diesem Fenster wird uber den COUNT Operator das Ergebnis der Anfrage Q2 ermittelt Fur die Anfrage Q1 schliesst sich an das grossere Fenster ein kleineres Fenster mit dem Umfang einer Stunde an Literatur BearbeitenBrian Babcock Shivnath Babu Mayur Data Rajeev Motwani Jennifer Widom Models and Issues in Data Stream Systems In Proceedings of 21st ACM Symposium on Principles of Database Systems PODS 2002 Don Carney Ugur Centintemel Mitch Cherniack et al Monitoring Streams A New Class of Data Management Applications PDF 685 kB VLDB 2002 Sandra Geisler Data Stream Management Systems Dagstuhl Follow Ups Vol 5 Schloss Dagstuhl Leibniz Zentrum fuer Informatik 2013 Rajeev Motwani Jennifer Widom Arvind Arasu Brian Babcock Shivnath Babu Mayur Datar Gurmeet Manku Chris Olston Justin Rosenstein und Rohit Varma Query Processing Resource Management and Approximation in a Data Stream Management System Stanford 2002 CIDR 2003 Golab L Ozsu M T Issues in data stream management ACM SIGMOD Record Volume 32 Issue 2 S 5 14 Juni 2003 Michael Cammert Christoph Heinz Jurgen Kramer Bernhard Seeger Anfrageverarbeitung auf Datenstromen Datenbank Spektrum 11 5 13 2004 Jurgen Kramer Continuous Queries over Data Streams Semantics and Implementation Dissertation Philipps Universitat Marburg 2007 Jurgen Kramer Bernhard Seeger Semantics and implementation of continuous sliding window queries over data streams ACM TODS 2009 Weblinks BearbeitenSTREAM Stream Team Homepage AURORA StreamBase Systems Inc TelegraphCQ NigaraST Memento vom 13 Oktober 2007 im Internet Archive QStream PIPES RTM Analyzer StreamGlobe Odysseus PipelineDB RethinkDBEinzelnachweise Bearbeiten Data English Test Questions Topics Files List National Institute of Standards and Technology abgerufen am 14 Februar 2019 englisch a b c d e Sandra Geisler Data Stream Management Systems In Phokion G Kolaitis and Maurizio Lenzerini and Nicole Schweikardt Hrsg Dagstuhl Follow Ups Band 5 Schloss Dagstuhl Leibniz Zentrum fuer Informatik Dagstuhl Germany 2013 ISBN 978 3 939897 61 3 S 275 304 doi 10 4230 DFU Vol5 10452 275 dagstuhl de Abgerufen von https de wikipedia org w index php title Data Stream Management System amp oldid 220519660