Thema: Operatoren auf Data Streams

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Partitionierungstechniken in Datenbanksystemen
ER-Datenmodell und Abfragen in SQL
Seminar Service Aspects in ad-hoc and P2P networks Database functionality in P2P-networks von Thorsten Weiberg.
Indizierung von Graphen durch häufige Subgraphen (2)
TelegraphCQ Manuel Hertlein.
[01] - ERM Modellierung I Basiselemente von E-R-Diagrammen kennen
Objekt – Relationales – Modell Tomasz Makowski IN
Genetische Algorithmen für die Variogrammanpassung
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Anfrage-Optimierung und -Bearbeitung in Verteilten DBMS
Lehrstuhl Informatik III, DatenbanksystemeMartin Wimmer Übung zu Architektur und Implementierung von Datenbanksystemen 1 Implementierungen des Join- Operators.
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
Übung Datenbanksysteme SQL-Anfragen (2)
Vorstellung des Streamkonzepts
Geometrische Objekte in Datenbanken Martin Pfeifle Institut für Informatik, Universität München Lehr- und Forschungseinheit für Datenbanksysteme Prof.
Christian Schindelhauer
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Einführung Dateisystem <-> Datenbanksystem
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007.
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
20:00.
Die Grundterminologie
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
1 J4 Hash-Join R und S werden mittels der gleichen Hashfunktion h – angewendet auf R.A und S.B – auf (dieselben) Hash- Buckets abgebildet Hash-Buckets.
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #5 Relationale Anfragesprachen.
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #9 Anfragebearbeitung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Symmetrische Blockchiffren DES – der Data Encryption Standard
00:13 Matthias Ansorg FH Gießen-Friedberg1 / 24 Multidimensionale Datenstrukturen - semantische und logische Modellierung Teilvortrag: logische Modellierung.
Das relationale Modell
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Die Sternenuhr Wir entdecken die Wissenschaften LTAM Steffen M. 2003/04 Kneip R.
Zusammengestellt von OE3DSB
Datenbanksysteme II Vorlesung WS 2006 / 2007 Paul Manthey
Foto: Stephan Marti - FinanzblogFinanzblog Fernwärme.
Structured Query Language
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
1 Polymorphe Operatoren Zunächst: Beschränkung auf Operatoren zum Abfragen der in Relationen enthaltenen Information. Forderung nach mathematischer Exaktheit.
Analyse der Laufzeit von Algorithmen
Einführung Dateisystem <-> Datenbanksystem
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
1 Syntaktische Grundform selectA 1, A 2, …, A n fromR 1, R 2, …, R m wherebedingung w ;
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Seminar zu Datenbanksystemen Sommersemester 2005 Universität Hannover B.Sc. Markus Spehling Vortrag: Based on: Top-k Selection.
Datenbanken abfragen mit SQL
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
 Präsentation transkript:

Thema: Operatoren auf Data Streams Lehrgebiet Datenverwaltungssysteme Seminar Datenbanken und Informationssysteme im Sommersemester 2005 Data Streams Thema: Operatoren auf Data Streams Ou Yi o_yi@informatik.uni-kl.de Technische Universität Kaiserslautern

Operatoren auf Data Streams Überblick Einleitung Probleme der Strom-Verarbeitung Semantik der Operatoren STREAM Aurora Join-Operatoren Zusammenfassung 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Einleitung Merkmale des Datenstrommodells kontinuierlich, potenziell hohe Ankunftsrate potenziell unendlich lang Reihenfolge kann verfälscht sein Grundkonzepte gleitendes Fenster (endliche Teilmenge) Zeitstempel (implizit & explizit) Klassifikation der Anfragen kontinuierliche Anfragen vs. einmalige Anfragen vordefinierte Anfragen vs. "ad hoc"-Anfragen DSMS: rechtzeitige Auswertung der kontinuierlichen Anfragen (eventuell auch Funktionalität von DBMS) 27. März 2017 Operatoren auf Data Streams

Probleme der Strom-Verarbeitung Exakte Antwort unmöglich >> Approximierung Blockierung blockierende Operatoren (z. B. Aggregat-Operator) nicht-blockierende Operatoren (z. B. Filter) >> nicht-blockierende Verfahren + Fenstertechnik verfälschte Reihenfolge (expliziter Zeitstempel) >> Pufferung und Sortierung Kombination mit Relationen unterschiedliches Datenmodell und Verarbeitungsmodell 27. März 2017 Operatoren auf Data Streams

Semantik der Operatoren in STREAM Ziel: kontinuierlichen Anfragen auf Datenströmen und Relationen Def.: Strom S eine möglicherweise unendliche Multimenge von Elementen <s, t> Datenanteil s: feste Attributmenge Zeitstempel t: Zeitdomäne T, diskret und geordnet Def.: Relation R eine Abbildung von einer Zeitdomäne auf eine endliche, aber unbegrenzte Multimenge von Tupeln zu jedem Zeitpunkt t  T bestimmt R eine Multimenge R(t) Ströme Relationen Strom-zu-Relation Relation-zu-Strom Relation-zu-Relation 27. März 2017 Operatoren auf Data Streams

STREAM - Operatorklassen Implementierte Operatoren Strom-zu-Relation-Opertoren seq-window (zeitbasiert, tupelbasiert und partitioniert) Relation-zu-Strom-Operatoren i-stream, d-stream, r-stream Relation-zu-Relation-Operatoren select, project, joins, union, intersect, aggregate etc. abgeleitet vom Relationenmodell, ähnliche Semantik System-Operatoren für die Semantik einer Anfrage irrelevant isolieren Anfrage-Operatoren von Aspekten der unteren System-Ebenen 27. März 2017 Operatoren auf Data Streams

STREAM – Strom-zu-Relation-Operatoren Zeitbasiertes Fenster Eingabe: Strom S, Parameter: Zeitintervall Z, Ausgabe: Relation R Extremfall Z = 0, Fenster = [t, t] Beispiel: Eingabe-Strom-Schema: <Datenanteil, Zeitstempel> Eingabe-Strom: <a, 0>, <b, 0>, <c, 1>, <c, 2>, <d, 2>, <e, 3>, <f, 4>, <f, 5>... Parameter: Z = 2 [max(t-Z, 0), t]: [0, 0] [0, 1] [0, 2] [1, 3] [2, 4]   Ausgabe-Relation: R(t) R(0) R(1) R(2) R(3) R(4) ... <a> <c> <b> <d> <e> <f> 27. März 2017 Operatoren auf Data Streams

STREAM – Strom-zu-Relation-Operatoren (2) Tupelbasiertes Fenster Eingabe: Strom S, Parameter: Integer N, Ausgabe: Relation R R(t): die jüngsten N Tupel Beispiel: Eingabe-Strom-Schema: <Datenanteil, Zeitstempel> Eingabe-Strom: <a, 0>, <b, 0>, <c, 1>, <c, 2>, <d, 2>, <e, 3>, <f, 4>, <f, 5>... Parameter: N = 2 Partitioniertes Fenster (tupelbasiert) zusätzlich eine Attributmenge (ähnlich zum GroupBy im RM) R(t): Vereinigung der tupelbasierten Fenster über allen Subströmen R(0) R(1) R(2) R(3) R(4) ... <a> <a> or <b> <c> <c> or <d> <e>   <b> <d> <f> 27. März 2017 Operatoren auf Data Streams

STREAM – Relation-zu-Strom-Operatoren Rstream (relation stream) Eingabe R, Ausgabe S <s, t>  S immer dann, wenn s  R(t) Beispiel: Eingabe-Relation R(t): Ausgabe-Strom: <a, 0>, <b, 0>, <c, 1>, <c, 2>, <d, 2> ... Istream (insert stream) Dstream (delete stream) R(0) R(1) R(2) ... <a> <c>   <b> <d> 27. März 2017 Operatoren auf Data Streams

STREAM – Relation-zu-Relation-Operatoren Keine Strom-zu-Strom-Operatoren Vorteil: Wiederverwendung der formalen Grundlagen und Implementierungstechniken des Relationenmodells Ströme Relationen Strom-zu-Relation Relation-zu-Strom Relation-zu-Relation 27. März 2017 Operatoren auf Data Streams

Semantik der Operatoren - Aurora Strom-zu-Strom-System, Relationen nicht explizit unterstützt Anfrage-Algebra Stream Query Algebra Sieben primitive Operatoren Reihenfolgeirrelevant Filter, Map und Union ähnlich zu Selektion, Projektion und Mengenvereinigung im RM Reihenfolgesensitiv BSort, Aggregate, Join und Resample Ausführung mit begrenztem Speicherplatz und in begrenztem Zeitraum nur möglich, wenn eine Ordnung auf einem Attribut vorliegt (Beispiel: Join kann auf Sortierung basieren) 27. März 2017 Operatoren auf Data Streams

Aurora - Reihenfolgespezifikation Reihenfolgespezifikation O = Order (On A, Slack n, GroupBy B1, ..., Bm) A: welches Attribut ist geordnet n (optional): die Anzahl der jüngeren Tupel, die vor einem verspäteten Tupel ankommen dürfen B1, ..., Bm (optional): Partitionierung Beispiel Eingabe-Strom-Schema: (A, B) Eingabe-Strom: ..., (1, x), (2, x), (2, y), (2, y), (5, x), (4, x), (5, y), (3, x), (6, x), ... O = Order ( on A, Slack 1, GroupBy B ) in zwei Subströme (B = x und B = y) partitioniert erlaubt: (4, x), verworfen: (3, x) 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Aurora - BSort BSort Puffer-basierte approximierte Sortierung BSort (Assuming O) (S), mit O = Order (On A, Slack n, GroupBy B1, ..., Bm) O spezifiziert die Qualität der Ausgabe äquivalent zu n-Durchläufe-Bubblesort Puffer von n+1 Tupeln: immer das "kleinste" Tupel ausgeben je größer der Puffer, desto genauer die Sortierung, aber größere Verzögerung 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Aurora – BSort (2) BSort (Forts.) Beispiel: n = 2 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Aurora - Aggregate Aggregate Aggregate ( F, Assuming O, Size s, Advance i ) ( S ) O spezifiziert eine Ordnung für S Order (On A, Slack n, GroupBy B1, ..., Bm) F: Aggregat-Fkt in SQL-Stil oder UDF, auf Fenster Ausgabe-Tupel: ( A = a, B1 = u1, ..., Bm = um ) + + ( F ( W ) ) W: Fenster spezifiziert durch s und i s: Fenstergröße bzgl. A, Eingabe-Tupel t mit t.A  [a, a+s-1] i: Größe der Fensterbewegung Beispiel 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Aurora – Aggregate (2) Beispiel (Forts.) Eingabe-Strom-Schema: (StockId, Time, Price) berechne die stündlichen durchschnittlichen Preise für jede Aktie Aggregate(Avg(Price), Assuming O, Size 1 hour, Advance 1 hour)(S), mit O = Order(On Time, GroupBy StockId) ... 11.(MSF, 2:00, 22) 10.(INT, 2:00, 16) 9. (IBM, 2:00, 17) 8. (IBM, 1:45, 13) 7. (INT, 1:30, 12) 6. (MSF, 1:30, 24) 5. (IBM, 1:30, 23) 4. (IBM, 1:15, 20) 3. (IBM, 1:00, 24) 2. (INT, 1:00, 16) 1. (MSF, 1:00, 20) MSF: 1-1:59 Tupel: 1, 6 INT: 1-1:59 Tupel: 2, 7 IBM: 1-1:59 Tupel: 3, 4, 5, 8 MSF: 2-2:59 Tupel: 11,... INT: 2-2:59 Tupel: 10,... IBM: 2-2:59 Tupel: 9,... Eingabe-Strom Fenster Ausgabe-Strom 3. (MSF, 1:00, 22) 2. (INT, 1:00, 14) 1. (IBM, 1:00, 20) 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Join-Operatoren ressourcenaufwändig, potenziell alle Tupel der Eingabe zu durchlaufen, unmöglich für Strom-Verarbeitung klassische Algorithmen Nested-Loop-Join, Hash-Join, Sort-Merge-Join hash-basierte Joins auf Gleichheitsprädikat eingeschränkt Symmetrischer Hash-Join (SHJ) nach dem Prinzip des "Pipelining" Hauptspeicher-Algorithmus, für große Datenmengen nicht geeignet XJoin (Erweiterung von SHJ) nicht mehr auf den Hauptspeicher eingeschränkt behandelt unstabile Eingabe 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Join-Operatoren (2) sortierbasierte Joins nicht auf Gleichheitsprädikat eingeschränkt Sort-Merge-Join (SMJ) ganze Eingabe in der Sortierphase einlesen (blockierend) Progressive Merge Join (PMJ) nicht-blockierende Variante von SMJ kann schon in der Sortierphase Ergebnis-Tupel erzeugen mit Fenstertechnik kann auf Strom adaptiert werden (TPMJ) 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Join-Operatoren (3) Join in Aurora simuliert Band-Join der Relationenalgebra Join (P, Size s, Left Assuming O1, Right Assuming O2) (S1, S2) P: Join-Prädikat O1 bzgl. A für S1, O2 bzgl. B für S2 t  S1 und u  S2 werden verbunden, falls |t.A – u.B|  s  P(t, u) Beispiel: Aktienpreisinfos aus zwei Märkten, X und Y, mit Schema (StockId, Time, Price) finde Aktien-Paare, deren Preise innerhalb 10 Min in zwei Märkten gleich sind 27. März 2017 Operatoren auf Data Streams

Ausgabe-Strom von Join Join-Operatoren (4) Beispiel (Forts.): Join (P, Size 10 Min, Assuming Left O, Assuming Right O) (X, Y) wobei P(x, y) <=> x.Price = y.Price und O = Order(On Time) X Y Ausgabe-Strom von Join 01. (IBM, 2:00, 3) 01. (SMS, 1:55, 3) 01. (IBM, 2:00, 3, SMS, 1:55, 3) 02. (MSF, 2:00, 1) 02. (SAP, 1:55, 4) 02. (IBM, 2:00, 3, SMS, 2:05, 3) 03. (INT, 2:00, 1) 03. (BMW, 1:55, 5) 03. (IBM, 2:05, 4, SAP, 1:55, 4) 04. (IBM, 2:05, 4) 04. (DML, 1:55, 6) 04. (IBM, 2:05, 4, SAP, 2:05, 4) 05. (MSF, 2:05, 2) 05. (SMS, 2:05, 3) 05. (IBM, 2:05, 4, SMS, 2:15, 4) 06. (INT, 2:05, 1) 06. (SAP, 2:05, 4) 06. (IBM, 2:05, 4, SAP, 2:15, 4) 07. (IBM, 2:10, 4) 07. (BMW, 2:05, 5) 07. (IBM, 2:10, 4, SAP, 2:05, 4) 08. (MSF, 2:10, 3) 08. (DML, 2:05, 6) 08. (IBM, 2:10, 4, SMS, 2:15, 4) 09. (INT, 2:10, 1) 09. (SMS, 2:15, 4) 09. (IBM, 2:10, 4, SAP, 2:15, 4) 10. (IBM, 2:15, 2) 10. (SAP, 2:15, 4) 10. (MSF, 2:10, 3, SMS, 2:05, 3) 11. (MSF, 2:15, 4) 11. (BMW, 2:15, 5) 11. (MSF, 2:15, 4, SAP, 2:05, 4) 12. (INT, 2:15, 1) 12. (DML, 2:15, 6) 12. (MSF, 2:15, 4, SMS, 2:15, 4) ... 13. (MSF, 2:15, 4, SAP, 2:15, 4)   27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams STREAM vs. Aurora Ähnlichkeit Stromorientiert, unterstützen die Auswertung kont. Anfragen auf DS Modellierung eines Stroms: feste Attributmenge und min. ein geordnetes Attribut explizite Zeitstempel (für Semantik eines Operators) Fenstertechnik Unterschied Unterstützung von Relationen Behandlung des Reihenfolgeproblems Fenster auf jedem geordneten Attribut (Aurora) STREAM: <s, t> Aurora: (a1, ..., am) 27. März 2017 Operatoren auf Data Streams

Operatoren auf Data Streams Zusammenfassung Operatoren in DBMS sind im DSMS vorhanden und werden dort erweitert oder simuliert bei unendlicher Eingabe: Approximierung und Fenstertechnik Zeitstempel für Strom-Verarbeitung erforderlich Bestimmung des Fensters notiert die Reihenfolge, für blockierende Operatoren wichtig keine standardisierte "Strom-Algebra" verschiedene Mengen von Operatoren verschiedene Datentypen 27. März 2017 Operatoren auf Data Streams

Vielen Dank für ihre Aufmerksamkeit! Fragen?

Operatoren auf Data Streams Zusatz Zusammenspiel der Operatoren im STREAM Beispiel: Aktienpreisinfos als Daten-Elemente <s, t> s gehört zu S(StockId, Price), t gehört zur Zeitdomäne T finde solche Aktien, deren Preis höher als 50 ist CQL-Anfrage: Select Rstream(*) From S [Now] Where Price > 50 Strom-zu-Relation: zeitbasiertes Fenster mit Z = 0, [t,t] Relation-zu-Relation: Filter nach der Bedingung Price > 50 Relation-zu-Strom: Rstream 27. März 2017 Operatoren auf Data Streams

Zusatz Zusammenspiel der Operatoren im Aurora Daten fließen durch einen azyklischen gerichteten Graph von Operatoren Beispiel generiere eine Nachricht, wenn die Preise von mehr als m Aktien gleichzeitig über eine Grenze k gehen. Eingabe-Strom: (StockId, Time, Preis) Filter (Price  k) Aggregate (CNT, Assuming O, Size 1, Advance 1) Filter (CNT  m) O = Order ( On Time, Slack n) (Time,CNT) 27. März 2017 Operatoren auf Data Streams