Event Stream Processing & Complex Event Processing. Dirk Bade



Ähnliche Dokumente
Complex Event Processing (CEP)

Complex Event Processing. Sebastian Schmidbauer

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Complex Event Processing (CEP)

Esper - Open Source Complex Event Processing

Complex Event Processing (CEP) mit Esper

Monitoringvon Workflows in einer BPEL-Engine

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

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

Hardware- und Softwareanforderungen für die Installation von California.pro

Oracle: Abstrakte Datentypen:

Informatik 12 Datenbanken SQL-Einführung

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

IV. Datenbankmanagement

Seminarthemen WS 14/15

SimPDM Datenmodell im Kontext zu Teamcenter und PLMXML

Klausur Interoperabilität

CEPaaS. Complex Event Processing as a Service. Bernhard Seeger Philipps-Universität Marburg RTM Realtime Monitoring GmbH

Dokumentation zur Anlage eines JDBC Senders

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Complex Event Processing für intelligente mobile M2M- Kommunikation

Unterabfragen (Subqueries)

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Der Cloud Point of Purchase. EuroCloud Conference, 18. Mai 2011 (Christoph Streit, CTO & Co-Founder ScaleUp)"

Workflow, Business Process Management, 4.Teil

JDBC. Allgemeines ODBC. java.sql. Beispiele

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Abschlussarbeiten für StudentInnen

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Sie sollen eine Datenbank für Befragungen mittels Online-Fragebögen zu unterschiedlichen Themen erstellen:

Datenbankstammtisch. Replikation in heterogenen Datenbankumgebungen am Beispiel des Sybase Replication Servers. 1. Februar 2006

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Built in Function. BIF Compatibility. Eine anonymisierte Kundenpräsentation. von Siegfried Fürst SOFTWARE ENGINEERING GmbH

Hilfe, ich verstehe meine APEX Seite nicht mehr! DOAG Development Konferenz, Düsseldorf

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Allgemeines zu Datenbanken

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

PostgreSQL in großen Installationen

Java Enterprise Architekturen Willkommen in der Realität

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Übersicht über Datenbanken

Ich liebe Java && Ich liebe C# Rolf Borst

SQL: statische Integrität

SQL structured query language

Build in Function BIF Compatibility. Udo Puschkarsky DB2-Guide

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

QS solutions GmbH. präsentiert das Zusammenspiel von. Ihr Partner im Relationship Management

Jürgen Schwab, debis Systemhaus

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

SQL und MySQL. Kristian Köhntopp

Application Performance Management. Auch eine Frage des Netzwerkes?

Refactoring relationaler Datenbank. Shaoke Wu

Options- und Freitext-Modul Update-Anleitung

Dr. Klaus Körmeier BlueBridge Technologies AG

SQL Intensivpraktikum SS 2008

Bibliografische Informationen digitalisiert durch

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

adcubum ACADEMY. Die Vertiefung von Hochstehendem. SQL-Datenbankkurse

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

7. Übung - Datenbanken

Datenbanksysteme für Business, Technologie und Web. Nutzerdefinierte Replikation zur Realisierung neuer mobiler Datenbankanwendungen DB I S

Business Intelligence Praktikum 1

Anforderungen an die HIS

EAI - Enterprise Application Integration

Praxishandbuch BPMN 2.0

Michaela Weiss 01. April Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL

Grundlagen Datenbanken Sommersemester 2008

PostgreSQL und memcached

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Ereignisgesteuertes Ressourcenmanagement mit der Oracle SOA-Suite

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

SOA im Zeitalter von Industrie 4.0

Quelle: TU Dresden, Fakultät Informatik, Institut für Systemarchitektur, Professur für Datenbanken, Dr.-Ing. B. Keller

Business Process Model and Notation

Java und XML 2. Java und XML

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

105.3 SQL-Datenverwaltung

Secure Network Communications (BC-SEC-SNC)

Browserbasiertes, kollaboratives Whiteboard

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Aktuelle Entwicklungen

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

Blitzlicht: MES Produktionsplanung und Unternehmensmodelle IEC Integration von Unternehmensführungs und Leitsystemen

An integrated total solution for automatic job scheduling without user interaction

ONET: FT-NIR-Netzwerke mit zentraler Administration & Datenspeicherung. ONET Server

Predictive Modeling Markup Language. Thomas Morandell

Erstellen einer Datenbank. Datenbankabfragen

e-business - Patterns Stefan Brauch (sb058) -- Julian Stoltmann (js057)

IVS Arbeitsgruppe Softwaretechnik Abschnitt Management komplexer Integrationslösungen

bix BOE Java Tools bix Consulting GmbH & Co. KG BusinessITPeople

Hochschule Prof. Dr. Martin Leischner Bonn-Rhein-Sieg Netzwerksysteme und TK Modul 7: SNMPv3 Netzmanagement Folie 1

Transkript:

Event Stream Processing & Complex Event Processing Dirk Bade Die Folien sind angelehnt an eine Präsentation der Orientation in Objects GmbH, 2009 Motivation Business Activity Monitoring Sammlung, Analyse und Präsentation von Echtzeitdaten, die bei der Ausführung von Aktivitäten in Organisationen (+ Kunden und Partner) anfallen. Ziele Überwachen des Status und der Ergebnisse verschiedener Operationen, Prozesse und Transaktionen Schnelle Problemidentifikation, z.b. Erkennen von Überlast Überschreitung von Service-Level-Agreements #2

Motivation Real Time Business Intelligence The process of delivering information about business operations without any latency [Wikipedia 2009] Ohne Latenz? Datenlatenz Analyselatenz Aktionslatenz #3 Motivation Real Time Business Requirements Sehr hohe Anforderungen TPC-C Spitzenreiter: IBM, mit 101.419 Transaktion/Sek. OLTP-Datenbanken in der Praxis: ebay, Amazon 1,000-10,000 TPS International web application 100-1,000 TPS Small internal OLTP 10-100 TPS Sehr hohe Anzahl an Events (>> 100.000) #4

Event-driven Architecture Vier logische Ebenen 1. Event Generator 2. Event Channel 3. Event Processing Engine 4. Downstream event-driven Activity Grundprinzipien Lose Kopplung Asynchroner Nachrichtenaustausch #5 Event-driven Architecture #6

Event-driven Architecture Event Bedeutende Zustandsänderung Quittierung einer Autorisierungsprüfung Antwortzeit der letzten Anfrage Messwert eines Sensors im Haus Aktienpreisänderung Beginn/Ende der Ausführung eines Dienstes #7 Event Processing Simple Event Processing Betrifft Ereignisse, die direkt in Beziehung zu einer bestimmten, messbaren Zustandsänderung stehen, z.b. Temperaturänderung Event Stream Processing Betrifft Ströme primitiver Ereignisse Nicht jedes Ereignis ist von Interesse, sondern der Strom selbst Z.B. Temperaturänderung innerhalb eines Zeitraumes Complex Event Processing Komplexe Muster (z.b. kausale, temporale oder räumliche Beziehungen) in verschiedenen Ereignisströmen erkennen. Z.B. Temperaturoszillation innerhalb eines Zeitraumes nachdem die Heizung eingeschaltet wurde #8

Esper Komponente für ESP & CEP Anwendungen In Java und.net realisiert SQL-ähnliche Event Pattern Language Hoch performant: 500.000 Events/Sek., < 3ms Latenz mit 1000 registrierten Statements auf 2 Ghz. Dual-CPU http://esper.codehaus.org Umfangreiche Dokumentation Viele Beispiele und Abfragemuster #9 Esper Verarbeitungsmodell Kontinuierliche Verarbeitung Datenbank inside-out Anfragen in EQL/EPL Anfragen werden bei EP Runtime registriert Listener registrieren sich für Anfragen Ereignisse fließen durch die Anfragen Push-basierte Listener-Benachrichtigung #10

Esper Big Picture #11 Esper Esper 1x1 (1) String expression = SELECT * FROM Withdrawal ; (2) EPServiceProvider engine = EPServiceProviderManager.getDefaultProvider(); (3) EPStatement stmt = engine.getepadministrator().createeql(expression); (4) stmt.addlistener(new UpdateListener() { public void update(eventbean[] newevents, EventBean oldevents) { /* do something */ } }); (5) engine.getepruntime().sendevent(new Withdrawal(31337)); #12

Esper EQL/EPL Analogie zu SQL Ereignisströme sind Tabellen Ein Ereignis entspricht einem Datensatz Attribute eines Ereignisses entsprechen Datenfeldern [insert into insert_into_def] select select_list from stream_def [as name] [, stream_def [as name]] [where search_conditions] [group by grouping_expression_list] [having grouping_search_conditions] [output output_specification] [order by order_by_expression_list] [limit num_rows] #13 Esper EQL Event-Repräsentation POJO Maps XML EQL-Anfragenlassensichgrobeinteilenin ESP-Anfragen CEP-Anfragen #14

ESP-Anfragen ESP: Abfragen über Einzelne Ereignisse Ereignisse in einem Zeit-Fenster Ereignisse in einem Mengen-Fenster #15 ESP-Anfragen SELECT * FROM Withdrawal #16

ESP-Anfragen SELECT * FROM Withdrawal.win:length(5) #17 ESP-Anfragen SELECT * FROM Withdrawal(amount>=200).win:length(5) #18

ESP-Anfragen SELECT * FROM Withdrawal.win:time(4 sec) #19 CEP-Anfragen CEP: Abfragen über Muster zwischen Ereignissen / Ereignisströmen Verwendeter Begriff pattern select * from pattern [ every s=startevent -> a=abortevent(a.id=s.id) where timer:within(30sec) ] Wiederholungsangabe: every Logische Operatoren: and, or, not Kausaler Operator: -> (followed-by) Guards: timer:within() Observer: timer.interval() oder timer.at() #20

CEP-Anfragen Guards & Observer (A or B) where timer:within(5sec) Ein A oder B in den nächsten 5 Sekunden (every A) where timer:within(10sec) Alle A in den nächsten 10 Sekunden A->timer:interval(10sec) Nach A 10 Sekunden warten every timer:at(5,8:17,*,*,*) Alle 5 Minuten nach der vollen Stunde von 8-17 Uhr #21 Beispiel-Szenario Self-Service Terminal Event-Typen: Checkin, Cancelled,Completed, OutOfOrder, LowPaper, Status select * from pattern [ every a=checkin -> (OutOfOrder(term.id=a.term.id) and not (Cancelled(term.id=a.term.id) or Completed(term.id=a.term.id)) )] select 'terminal 1 is offline' from pattern [every timer:interval(60 sec) -> (timer:interval(65 sec) and not Status(term.id = 'T1'))] insert into CountPerType select type, count(*) as countpertype from BaseTerminalEvent.win:time(10 minutes) group by type output all every 1 minutes #22