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

Ähnliche Dokumente
Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Urlaubsregel in David

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

MapReduce und Datenbanken Thema 15: Strom bzw. Onlineverarbeitung mit MapReduce

Objektorientierte Programmierung

Software Engineering Klassendiagramme Assoziationen

Software zum Registrieren und Auswerten von Projektzeiten im Netzwerk

Übungen zu Softwaretechnik

Factory Method (Virtual Constructor)

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Lehrer: Einschreibemethoden

Anpassung einer freien SSL/TLS Implementierung an die Kertasarie VM

Integration, Migration und Evolution

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Fragen Arthur Zaczek. Apr 2015

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Diese Prozesse und noch viele andere Tricks werden in der Digitalfotografie mit Hilfe von Bildbearbeitungsprogrammen, wie z. B. Gimp, bewältigt.

Task: Nmap Skripte ausführen

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Einleitung: Frontend Backend

Zusatzmodul Lagerverwaltung

Datenbanken Kapitel 2

Nutzung des Retain-Archivs

Jederzeit Ordnung halten

e-books aus der EBL-Datenbank

:: Anleitung Hosting Server 1cloud.ch ::

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Lasersteuerung. Themengruppen FTDI - Interface ILDA Format Ausgabensteuerung Figurenerstellung Lasershowerstellung Lasershowarten Software / Community

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Konzepte der Informatik

4. BEZIEHUNGEN ZWISCHEN TABELLEN

User Manual Data 24. Login und Layout

Wir machen neue Politik für Baden-Württemberg

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Objektorientierte Programmierung

Internet Explorer Version 6

Eigene Seiten erstellen

IAWWeb PDFManager. - Kurzanleitung -

Schnittstelle DIGI-Zeiterfassung

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

SMART Newsletter Education Solutions April 2015

SEP 114. Design by Contract

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

1. Weniger Steuern zahlen

Informatik 12 Datenbanken SQL-Einführung

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Tragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben.

Erste Schritte mit

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Metadateneditoren für ArcGIS

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Moodle-Kurzübersicht Kurse Sichern und Zurücksetzen

! APS Advisor for Automic

12. Dokumente Speichern und Drucken

Java: Vererbung. Teil 3: super()

So gehts Schritt-für-Schritt-Anleitung

Lizenzierung von SharePoint Server 2013

Einführung in die Programmierung

Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

THREAD ARCS: An Thread Visualization

Wochenbericht. Firas Zoabi. Studienprojekt A: SIMPL. 28. Dezember 2009 I M P

Verschlüsseln von Dateien mit Hilfe einer TCOS-Smartcard per Truecrypt. T-Systems International GmbH. Version 1.0 Stand

ANLEITUNG - WIE UNTERSTÜTZE ICH AUF STARTNEXT?

Datentypen: Enum, Array, Struct, Union

How to do? Projekte - Zeiterfassung

Das Online-Portal der VON ESSEN Bank

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Die Statistiken von SiMedia

Anwendungsbeispiele Buchhaltung

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Konvertieren von Settingsdateien

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Webalizer HOWTO. Stand:

U08 Entwurfsmuster (II)

SharePoint Demonstration

Zählen von Objekten einer bestimmten Klasse

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Anleitung über den Umgang mit Schildern

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Elektronischer Kontoauszug

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

DOS-Sympas Scope Dateien in Excel einlesen

Welches Übersetzungsbüro passt zu mir?

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Transkript:

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

Inhalt Kriterien Existierende Systeme STREAM Aurora PIPES (SPEX) (MAIDS) Vergleich Fazit Einleitung Überblick Verschiedene Details Kriterienerfüllung

Anfragetypen Ergebnisausgabe Einmalig: Liefert ein Ergebnis zu einem Zeitpunkt. Definitionszeitpunkt Vordefiniert: Anfrage vor Datenverarbeitung bekannt. Kontinuierlich: Liefert kontinuierliche Ergebnisse. Ad-hoc: Anfrage wird zur Laufzeit gestellt. Kriterien sind zueinander orthogonal!

Operatoren Zustandsbehaftete Operatoren: Abhilfe durch Zwischenspeicher: 1, 3, 5, 7 1 4 5 3 + 1 2 5 6 4 1 4 5 3 in M 1 5 3 Blockierende Operatoren: Abhilfe durch (mengen-/zeitbasierte) Fenster: Sliding Window: s7 s6 s5 s4 s3 s2 s2 s1 Tumbling Window: s7 s6 s5 s4 s3 s2 s2 s1

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

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.

Ströme und Relationen Strom S Relation R 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 black R(3) s blue red R(2)...

Datenstruktur Wie werden Relationen in Ströme verwandelt, und umgekehrt? Beiden liegt die gleiche Datenstruktur zugrunde: Tupel Zeitstempel Operation data S timestamp T boolean I Ströme besitzen nur positive Elemente, Relationen bestehen aus beiden: Relation zu Strom s 3 t 3 - s 2 t 2 + s 1 t 1 - Istream s 2 t 2 + Relation Strom

Zustandsbehaftete Operatoren Beispiel: Fensteroperator: Strom zu Relation s 3 t 3 + s 2 t 2 + s 1 t 1 + [Rows 40] s 1 t 1 + Strom Relation 40 Tupel Strom zu Relation s 43 t 43 + s 42 t 42 + s 41 t 41 + [Rows 40] s 1 t 1 - Strom Relation Die zu entferndenden Tripel müssen gespeichert werden!

Synopsen Synopsen sind den Operatoren zugeteilte Zwischenspeicher. Selection Hohe Redundanz: Oftmals haben mehrere Synopsen ähnlichen Inhalt. S 3 Join S 4 Lösung in STREAM: Synopsen-Sharing S 1 [100 Rows] [1 Hour] S 2 A B

Synopsen-Sharing Eigentliche Daten liegen in den Stores. Zugriff auf die Daten durch Stubs. Selection Stubs stellen eine Sicht auf den Store dar. Store 1 Stub 3 Join Stub 4 Store 2 Aber: Optimierungen beeinflussen evtl. mehrere Operatoren. Stub 1 [100 Rows] [1 Hour] Stub 2 A B

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

Kriterien Kriterien Entwickler Einmalige Anfragen Kontinuierliche Anfragen Vordefinierte Anfragen Ad-hoc-Anfragen Blockierende Operatoren Zustandsbehaftete Operatoren Besonderheiten STREAM Stanford University Ja, auf Relationen Ja, auf Strömen Ja Nein Ja, durch Fenster Ja, durch Synopsen CQL, unterstützung v. Relationen

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.

Anfragegraphen Aufbau eines Anfragegraphs in Aurora: in 1 in 2 Filter Map Filter Union out 1 in 3 Tumble Super Verbindungspunkt out 2 Mehrere unabhängige Teilgraphen möglich! Beachte: Graphen dürfen keine Zyklen enthalten.

Verbindungspunkte Ad-hoc Anfrage an einem Verbindungspunkt: Speicher Verbindungspunkt in 1 out 1 Filter Super out 2 Slide Filter Ad-hoc Anfrage Speicherspezifikation an einem Verbindungspunkt erfolgt durch den Benutzer durch eine Zeitangabe. Anfragen zu Daten aus der Vergangenheit sind möglich.

Optimierungsmöglichkeiten Einfügen v. Projektionen Umordnen der Boxen P X Y X Y Zusammenfassen v. Boxen X Y XY Wie können Teilgraphen zur Laufzeit verändert werden?

Graphoptimierung Verbindungspunkte Filter Map Filter Join Filter Join

Zustandsbehaftete Operatoren Aurora macht keinen Unterschied zwischen zustandslosen und -behafteten Operatoren. Auf jedem Operator folgt eine Queue: Fensterausschnitt Slide X... s7 s6 s5 s4 s3 s2 s1 Tumble Fensterausschnitt Tupel, die älter sind als die Zugriffsfenster können aus der Queue entfernt werden.

Einhaltung der QoS-Kriterien Kann man beobachten, ob die Dienstgütekriterien von Aurora eingehalten werden? Ja, umfangreiches Monitoring System von Aurora: (Aus J. Kern: Aurora Performance Monitoring Tool)

Kriterien Kriterien Entwickler Einmalige Anfragen Kontinuierliche Anfragen Vordefinierte Anfragen Ad-hoc-Anfragen Blockierende Operatoren Zustandsbehaftete Operatoren Besonderheiten Aurora Brown, Brandeis, MIT Nein Ja Ja Ja Ja, durch Fenster Ja, durch Queues QoS-Einhaltung, GUI

PIPES Public Infrastructure for Processing and Senken Exploring Streams Entwickelt von der Universität Marburg Java API Implementiert HMTS, Mittelweg p i p e s!!!!!! Quellen " # "! zwischen GTS und OTS.

Quellen und Senken Source + subscribe(s: Sink) + transfer(o: Object) mysinks * Sink + process(o: Object) 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).

Klassenhierarchie Pipe ist sowohl Quelle wie auch <<interface>> Source <<interface>> Sink Senke. Source, Sink und Pipe sind Schnittstellen. Abstract-Klassen bieten generische Implementierungen. AbstractSource <<interface>> Pipe AbstractPipe AbstractSink

Beispiel: Filter Wir 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); } }

Explizites Scheduling process() process() Filter Map vitueller Operator process() void process(object o) {... transfer(o); } Entkoppelt: Pipe process() Filter BufferPipe Map transfer() BufferPipeScheduler void process(object o) { // Add Object to Queue } BufferPipe

HMTS ThreadScheduler BPS laufen in separaten Threads BPS verwalten ihre zugeordneten BPs. Direkte Interoperabilität weiterhin möglich ThreadScheduler verwaltet Priorität der Threads BPS!!!!!! "!! BPS! # "!! virtueller Operator

Kriterien Kriterien Entwickler Einmalige Anfragen Kontinuierliche Anfragen Vordefinierte Anfragen Ad-hoc-Anfragen Blockierende Operatoren Zustandsbehaftete Operatoren Besonderheiten PIPES Universität Marburg Nein Ja Ja Nein Ja, durch SweepAreas Ja, durch SweepAreas HMTS

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.

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

Kriterien Kriterien Entwickler Einmalige Anfragen Kontinuierliche Anfragen Vordefinierte Anfragen Ad-hoc-Anfragen SPEX Universität München Nein Ja Ja Nein Blockierende Operatoren - Zustandsbehaftete Operatoren - Besonderheiten XML-Ströme

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

Geneigte Fenster Um Daten aus einem möglichst langem Zeitraum zu speichern, verwendet MAIDS geneigte Fenster: DS = Datensatz 1 DS / Monat 1 DS / Tag 1 DS / Stunde 1 DS / Minute Zeit Jetzt Datenstruktur: Minuten 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Viertelstunden 1 2 3 4 Stunden 1 2 3 4 5 6... 19 20 21 22 23 24 Tage 1 2 3 4 5 6... 26 27 28 29 30 31

Vergleich der Systeme Kriterien STREAM Aurora PIPES SPEX Einmalige Anfragen Kontinuierliche Anfragen Vordefinierte Anfragen Ad-hoc-Anfragen Blockierende Operatoren Zustandsbehaftete Operatoren Besonderheiten CQL QoS HMTS XML

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.

Dankeschön! Fragen?