Top Banner
Data Streams: Gegenüberstellung existierender Systeme und Architekturen Marius Renn Betreuer: Jürgen Göres
36

Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Jul 24, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Data Streams: Gegenüberstellung existierender Systeme und

ArchitekturenMarius Renn

Betreuer: Jürgen Göres

Page 2: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Inhalt

• Kriterien

• Existierende Systeme

• STREAM

• Aurora

• PIPES

• (SPEX)

• (MAIDS)

• Vergleich

• Fazit

EinleitungÜberblickVerschiedene DetailsKriterienerfüllung

Page 3: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Anfragetypen

Ergebnisausgabe Definitionszeitpunkt

Einmalig: Liefert ein Ergebnis zu einem Zeitpunkt.

Vordefiniert: Anfrage vor Datenverarbeitung bekannt.

Kontinuierlich: Liefert kontinuierliche Ergebnisse.

Ad-hoc: Anfrage wird zur Laufzeit gestellt.

→ Kriterien sind zueinander orthogonal!

Page 4: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Operatoren

s7 s6 s5 s4 s3 s2 s1s2

s7 s6 s5 s4 s3 s2 s1s2

Sliding Window:

Tumbling Window:

Blockierende Operatoren:Abhilfe durch (mengen-/zeitbasierte) Fenster:

Zustandsbehaftete Operatoren:Abhilfe durch Zwischenspeicher:

2 5 6 41 4 5 3 + 1 1 5 31 4 5 3 in M

1, 3, 5, 7

Page 5: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Optimierung und Adaptierung

• Algebraische Optimierungen wie in DBVS weiterhin eingschränkt möglich.

• Die Anpassung an die Datenlast heisst Adaptierung.

• Load Shedding: Auslassen von Tupeln um Last zu verringern.

• QoS: Einhaltung von Dienstgütekriterien

Page 6: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

STREAM

• STanford StREam DatA Manager, entwickelt von der Stanford University, California

• Unterscheidet zwischen Strömen und Relationen.

• 3 Klassen von Operationen: Relation-zu-Relation, Relation-zu-Strom, Strom-zu-Relation

• Anfragesprache CQL (continuous query language) als Erweiterung zum populären SQL.

Page 7: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Relation RStrom S

Ströme und Relationen

s t

green 1

red 1

orange 1

blue 2

red 2

black 3

yellow 5

purple 5

red 6

S

s

green

red

orange

R(1)

s

blue

red

R(2)

s

black

R(3)

. . .

Page 8: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Datenstruktur“Wie werden Relationen in Ströme verwandelt, und umgekehrt?”

Tupel Zeitstempel Operation

data S timestamp T boolean I

Ströme besitzen nur positive Elemente, Relationen bestehen aus beiden:

s1

t1

-s2

t2

+ s2

t2

+s3

t3

- Istream

Relation Strom

Relation zu Strom

Beiden liegt die gleiche Datenstruktur zugrunde:

Page 9: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Zustandsbehaftete Operatoren

Beispiel: Fensteroperator:

40 Tupel

Die zu entferndenden Tripel müssen gespeichert werden!

s1 t1 + s1 t1 +[Rows 40]

Strom zu Relation

s3 t3 + s2 t2 +

Strom Relation

s1 t1 -s41 t41 + [Rows 40]s43 t43 + s42 t42 +

Strom zu Relation

Strom Relation

Page 10: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Synopsen

[100 Rows] [1 Hour]

Join

Selection

A B

S 1 S 2

S 3 S 4

Synopsen sind den Operatoren zugeteilte Zwischenspeicher.

Hohe Redundanz: Oftmals haben mehrere Synopsen ähnlichen Inhalt.

Lösung in STREAM: Synopsen-Sharing

Page 11: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Synopsen-Sharing

[100 Rows] [1 Hour]

Join

Selection

A B

Store 1

Store 2

Stub 3 Stub 4

Stub 1 Stub 2

Eigentliche Daten liegen in den Stores.

Zugriff auf die Daten durch Stubs.

Stubs stellen eine Sicht auf den Store dar.

Aber: Optimierungen beeinflussen evtl. mehrere Operatoren.

Page 12: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

STREAM GUI

Um Einblicke in STREAM zu bekommen, liegt ein kostenfreies Testsystem zum Herunterladen bereit.

Page 13: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

KriterienKriterien STREAM

Entwickler Stanford University

Einmalige Anfragen Ja, auf Relationen

Kontinuierliche Anfragen Ja, auf Strömen

Vordefinierte Anfragen Ja

Ad-hoc-Anfragen Nein

Blockierende Operatoren Ja, durch Fenster

Zustandsbehaftete Operatoren Ja, durch Synopsen

Besonderheiten CQL, unterstützung v. Relationen

Page 14: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Aurora

• Entwickelt von den Universitäten Brown, Brandeis und MIT, alle im Nordosten der USA.

• Einziges hier vorgestelltes kommerzielles System.

• Grafische Anfrageerstellung durch ein System von “Boxes and Arrows”.

• Reine Stromverarbeitung.

• Unterstützt die Einhaltung von Dienstgütekriterien.

Page 15: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

AnfragegraphenAufbau eines Anfragegraphs in Aurora:

Filter

in 1

Map

Filter

Tumble Super

Union

in 2

in 3

out 1

out 2Verbindungspunkt

Mehrere unabhängige Teilgraphen möglich!

Beachte: Graphen dürfen keine Zyklen enthalten.

Page 16: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Verbindungspunkte

Filter Super

in 1 out 1

Verbindungspunkt

Speicher

Slide Filter

out 2

Ad-hoc Anfrage

Ad-hoc Anfrage an einem Verbindungspunkt:

Speicherspezifikation an einem Verbindungspunkt erfolgt durch den Benutzer durch eine Zeitangabe.

Anfragen zu Daten aus der Vergangenheit sind möglich.

Page 17: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Optimierungsmöglichkeiten

Wie können Teilgraphen zur Laufzeit verändert werden?

Einfügen v. Projektionen

YX

P

Umordnen der Boxen

YX

Zusammenfassen v. Boxen

XY

YX

Page 18: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Filter Map Filter

Join

Join

Verbindungspunkte

Filter

Graphoptimierung

Filter

Page 19: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Zustandsbehaftete Operatoren

• Aurora macht keinen Unterschied zwischen zustandslosen und -behafteten Operatoren.

• Auf jedem Operator folgt eine Queue:

Slide

Tumble

s7 s6 s5 s4 s3 s2 s1

Fensterausschnitt

...

Fensterausschnitt

Tupel, die älter sind als die Zugriffsfenster können aus der Queue entfernt werden.

X

Page 20: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Einhaltung der QoS-Kriterien“Kann man beobachten, ob die Dienstgütekriterien von Aurora eingehalten werden?”

(Aus J. Kern: Aurora Performance Monitoring Tool)

Ja, umfangreiches Monitoring System von Aurora:

Page 21: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

KriterienKriterien Aurora

Entwickler Brown, Brandeis, MIT

Einmalige Anfragen Nein

Kontinuierliche Anfragen Ja

Vordefinierte Anfragen Ja

Ad-hoc-Anfragen Ja

Blockierende Operatoren Ja, durch Fenster

Zustandsbehaftete Operatoren Ja, durch Queues

Besonderheiten QoS-Einhaltung, GUI

Page 22: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

PIPES

• PublicInfrastructure for Processing and Exploring Streams

• Entwickelt von der Universität Marburg

• Java API

• Implementiert HMTS, Mittelweg zwischen GTS und OTS.

!

!

!! "

"

!

#!!

Senken

Quellen

p i p

e s

Page 23: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Quellen und SenkenSource

+ subscribe(s: Sink)+ transfer(o: Object)

Sink

+ process(o: Object)*

mySinks

void subscribe(Sink sink) { mySinks.add(sink);}

void transfer(Object o) { for(Sink sink: mySinks) { sink.process(o); }}

PIPES nennt diese Art der direkten Weiterleitung Direkte Interoperabilität (direct interoperability).

Page 24: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Klassenhierarchie

<<interface>>

Source<<interface>>

Sink

<<interface>>

Pipe

AbstractSource AbstractSink

AbstractPipe

• Pipe ist sowohl Quelle wie auch Senke.

• Source, Sink und Pipe sind Schnittstellen.

• Abstract-Klassen bieten generische Implementierungen.

Page 25: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Beispiel: FilterWir wollen eine Filter-Pipe implementieren:

public class Filter extends AbstractPipe{ protected Predicate myPred; public Filter(Predicate p) { myPred = p; } public void process(Object o) { if( myPred.check(o) ) transfer(o); }}

Page 26: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Explizites Scheduling

vitueller Operator

process()

Filter Map

process() process()

void process(Object o) { ... transfer(o);}

Pipe

Filter BufferPipe Map

process()

BufferPipeScheduler

transfer()

void process(Object o) { // Add Object to Queue}

BufferPipe

Entkoppelt:

Page 27: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

HMTSThreadScheduler

BPS

!

!

! !

!

!

!

!

"

BPS

!

!

"

#

!

virtu

elle

r O

pe

rato

r

• BPS laufen in separaten Threads

• BPS verwalten ihre zugeordneten BPs.

• Direkte Interoperabilität weiterhin möglich

• ThreadScheduler verwaltet Priorität der Threads

Page 28: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

KriterienKriterien PIPES

Entwickler Universität Marburg

Einmalige Anfragen Nein

Kontinuierliche Anfragen Ja

Vordefinierte Anfragen Ja

Ad-hoc-Anfragen Nein

Blockierende Operatoren Ja, durch SweepAreas

Zustandsbehaftete Operatoren Ja, durch SweepAreas

Besonderheiten HMTS

Page 29: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

SPEX

• Entwickelt von der Universität München

• Verarbeitet XML-Datenströme

• Anfragen werden in XPath gestellt

• Beinhaltet eine grafische Benutzeroberfläche

• Konvertierung der XPath Anfrage in einen physischen Anfrageplan erfolgt in 3 Schritten.

Page 30: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

SPEX ViewerSPEX bietet eine grafische Benutzeroberfläche namens SPEX Viewer:

Page 31: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

KriterienKriterien SPEX

Entwickler Universität München

Einmalige Anfragen Nein

Kontinuierliche Anfragen Ja

Vordefinierte Anfragen Ja

Ad-hoc-Anfragen Nein

Blockierende Operatoren -

Zustandsbehaftete Operatoren -

Besonderheiten XML-Ströme

Page 32: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

MAIDS

• In der Entwicklung an der University of Illinois

• Soll Data-Mining auf Datenströmen realisieren

• Besitzt mehrere Module um Daten zu verarbeiten.

Data Stream Collector

Anfrage-Engine

Datenklassifizierer

Mustererkennung

Cluster-Analyse

Visualisierung

Page 33: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Geneigte FensterUm Daten aus einem möglichst langem Zeitraum zu speichern, verwendet MAIDS geneigte Fenster:

Datenstruktur:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 2 3 4

1 2 3 4 5 6 ... 19 20 21 22 23 24

1 2 3 4 5 6 ... 26 27 28 29 30 31

Minuten

Viertelstunden

Stunden

Tage

1 DS / Minute1 DS / Stunde1 DS / Tag1 DS / Monat

DS = Datensatz

JetztZeit

Page 34: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Vergleich der SystemeKriterien STREAM Aurora PIPES SPEX

Einmalige Anfragen

Kontinuierliche Anfragen

Vordefinierte Anfragen

Ad-hoc-Anfragen

Blockierende Operatoren

Zustandsbehaftete Operatoren

Besonderheiten CQL QoS HMTS XML

Page 35: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Fazit

• Ansätze unterschiedlich, hohe Diversität

• Noch gibt es keinen klaren Sieger

• MAIDS: Die Killer-Applikation von Morgen?

• Datenströme mit Sicherheit zunehmend wichtig! Forschung ist daher von großer Bedeutung.

Page 36: Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4 Stub 1 Stub 2 Eigentliche Daten liegen in den Stores. Zugriff auf die Daten ...

Dankeschön!

Fragen?