Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4...

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

Transcript of Data Streams: Gegenüberstellung existierender Systeme und ... · A B Store 1 Store 2 Stub 3 Stub 4...

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?