www.wikidata.de-de.nina.az
Die Continuous Query Language CQL ist eine deklarative Anfragesprache fur Datenstrome in Data Stream Management Systemen Sie stellt eine Erweiterung der SQL dar Die CQL wurde bis Januar 2006 im Rahmen des STREAM Projekts an der Stanford University entwickelt Arten der Umwandlungen zwischen Stromen und Relationen in CQLInhaltsverzeichnis 1 Bestandteile 2 Beispiele 3 Die Operatoren im Einzelnen 3 1 Fenster 3 2 Insert Stream 3 3 Delete Stream 3 4 Relation Stream 3 5 Samples 4 Bewertung 5 Siehe auch 6 Literatur 7 WeblinksBestandteile BearbeitenDie wesentliche Erweiterung von CQL gegenuber SQL besteht darin dass zusatzlich zu Relationen Datenbanktabellen auch Datenstrome als Datentypen existieren Datenstrome lassen sich als potentiell unendliche Folgen von Zeit Wertepaaren auffassen CQL definiert ausserdem folgende Operatoren die in den nachfolgenden Abschnitten erlautert werden der Fenster Operator a href Fenster a der Insert Stream Operator a href Insert Stream ISTREAM a der Delete Stream Operator a href Delete Stream DSTREAM a der Relation Stream Operator a href Relation Stream RSTREAM a der Stichproben Operator a href Samples SAMPLE a fur die Auswahl aus einem Datenstrom Fur die Transformation zwischen Relationen konnen die herkommlichen Operatoren aus SQL verwendet werden Die Umwandlung von Stromen in andere Strome findet uber den Umweg von Relationen statt Beispiele BearbeitenEs werden kontinuierlich Wetterdaten gemessen die als Datenstrom in einer Applikation ankommen Der folgende CQL Ausdruck liefert mit Hilfe eines Fenster Operators die Durchschnittstemperatur der letzten 24 Stunden SELECT AVG Temperatur FROM Wetter Range 1 Day Da es sich um eine kontinuierliche Anfrage handelt wird diese per Istream standardmassig wieder in einen Datenstrom umgewandelt Die vollstandige Anfrage lautet also SELECT ISTREAM AVG Temperatur FROM Wetter Range 1 Day In einer anderen Datenbank werden von einem Blitzortungssystem erkannte Blitze mit ihren Koordinaten eingetragen Folgende Anfrage erzeugt daraus einen Datenstrom SELECT ISTREAM position FROM BlitzIn Kombination mit weiteren Daten lasst sich beispielsweise ein Datenstrom von Blitzen in ausgewahlten Gebieten erzeugen und als aktuelle Blitzwarnung ausgeben Die Operatoren im Einzelnen BearbeitenFenster Bearbeiten Zur Umwandlung von Stromen in Relationen wird ein Fenster definiert Die Syntax dafur ist S W wobei S ein Strom und W ein Fenster ist Das Fenster kann durch einen Zeitraum oder durch eine Anzahl von Tupeln angegeben werden Rows 100 liefert beispielsweise die jeweils 100 letzten Tupel Range 5 Seconds liefert beispielsweise die Tupel der letzten 5 SekundenWird kein Fenster angegeben so wird angenommen das heisst die Relation enthalt alle Tupel aus dem Datenstrom bis zum aktuellen Zeitpunkt Zusatzlich kann eine Beschrankung durch eine WHERE Klausel und bei durch Tupelanzahl basierten Fenstern eine Gruppierung mit PARTITION BY angegeben werden In folgendem Beispiel sei ein Strom Bestellung mit den Attributen Kunde und Zahlungsart gegeben Folgende Anfrage liefert jeweils die 5 letzten Bestellungen eines jeden Kunden der mit Kreditkarte gezahlt hat SELECT FROM Bestellungen B br PARTITION BY B Kunde ROWS 5 br WHERE B Zahlungsart Kreditkarte In Verbindung mit dem Operator RSTREAM sind zusatzlich die Schlusselworter NOW und SLIDE moglich siehe dort Insert Stream Bearbeiten Mit dem Operator ISTREAM wird aus einer Relation ein Datenstrom erstellt bei dem jedes Mal wenn ein Tupel in die Relation eingefugt wird eine Kopie an den Datenstrom gesandt wird allerdings nur wenn es sich bei den eingefugten Tupeln nicht um Duplikate handelt Die folgende Anfrage liefert mit jeder neuen Bestellung die Anzahl der Bestellungen innerhalb der letzten Stunde SELECT ISTREAM COUNT FROM Bestellungen B Range 1 Hour Delete Stream Bearbeiten Mit dem Operator DSTREAM wird aus einer Relation ein Datenstrom erstellt bei dem jedes Mal wenn ein Tupel aus einer Relation entfernt wird dieses Tupel an den Datenstrom gesandt wird Die folgende Anfrage liefert die geloschten Kunden als Datenstrom DSTREAM SELECT FROM Kunden Relation Stream Bearbeiten Der Operator RSTREAM wandelt eine gesamte Relation in einen Datenstrom um Das heisst alle Tupel die zum gegenwartigen Zeitpunkt in der Relation enthalten sind werden an den Datenstrom gesandt Das Schlusselwort NOW fur die Lange eines Fensters liefert in Verbindung mit dem Operator RSTREAM den aktuellen Wert In folgendem Beispiel seien zwei Strome Verbindungsaufbau und Verbindungsende gegeben die jeweils den Anfang und das Ende einer Kommunikationsverbindung liefern Die folgende Anfrage liefert fortlaufend alle abgeschlossenen Verbindungen die hochstens 5 Minuten gedauert haben SELECT RSTREAM A FROM Verbindungsaufbau Range 5 Minutes A Verbindungsende Now E WHERE A id E idMit dem Schlusselwort SLIDE kann fur ein Fenster angegeben werden wie oft es aktualisiert werden soll beziehungsweise wann das Fenster verschoben werden soll Die folgende Anfrage liefert beispielsweise taglich das gleitende Monatsmittel der gesamten Bestellsumme aus einem Strom von Bestellungen SELECT RSTREAM AVG B Summe FROM Bestellungen B Range 1 Month Slide 1 Day Samples Bearbeiten Um eine zufallige Auswahl aus einem Stream zu bekommen gibt es den Operator SAMPLE dem eine Prozentzahl ubergeben wird Beispielsweise gibt die Anfrage SELECT FROM T SAMPLE 10 aus dem Stream T jedes Element nur mit einer Wahrscheinlichkeit von 10 aus so dass im Durchschnitt nur jedes zehnte in den Ergebnisstrom ubernommen wird Bewertung BearbeitenEin wesentlicher Vorteil der CQL ist dass sie direkt auf der nur teilweise deklarativen SQL aufbaut und die Anfragen deklarativ formuliert werden konnen Dies setzt jedoch im DSMS effiziente Verfahren zur Umformulierung der Anfrage in einen Anfrageplan voraus Mit STREAM konkurrierende Systeme verwenden entweder direkt ein imperatives Modell zur Formulierung von Anfragen beispielsweise Aurora Borealis oder besitzen eine mit CQL vergleichbare Syntax TelegraphCQ beziehungsweise ermoglichen prinzipiell auch die Ausfuhrung von CQL Anfragen PIPES Die Verarbeitung von Anfragen uber XML Datenstromen stellt ein eigenes Forschungsgebiet dar in dessen Rahmen auf XPath statt auf SQL aufbauende Anfragesprachen entwickelt werden Siehe auch BearbeitenKalkul Datenbank Relationale AlgebraLiteratur BearbeitenBrian Babcock Shivnath Babu Mayur Datar Rajeev Motwani Jennifer Widom Models and Issues in Data Stream Systems PODS 2002 Madison Wisconsin Arvind Arasu Shivnath Babu Jennifer Widom The CQL Continuous Query Language Semantic Foundations and Query Execution Stanford 2003 Technical Report 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 Weblinks BearbeitenStanford Stream Data Manager STREAM englisch CQL Einfuhrung aus STREAM englisch CQL Spezifikation fur STREAM englisch Stream Query Repository eine Sammlung von Anfragen in CQL englisch nbsp Dieser Artikel wurde am 7 Juni 2005 in dieser Version in die Liste der lesenswerten Artikel aufgenommen Abgerufen von https de wikipedia org w index php title Continuous Query Language amp oldid 225333577