ProjINF - Reduzierung der Netzwerklast von CEP unter Zuhilfenahme von Datenbanken

Größe: px
Ab Seite anzeigen:

Download "ProjINF - Reduzierung der Netzwerklast von CEP unter Zuhilfenahme von Datenbanken"

Transkript

1 ProjINF - Reduzierung der Netzwerklast von CEP unter Zuhilfenahme von Datenbanken Benjamin Braun, Karsten Schatz, und Vethiga Srikanthan Abstract Die Bedeutung von Complex Event Processing (CEP) nimmt heutzutage immer weiter zu. Sei es bei der Analyse bzw. Überwachung von Börsendaten oder bei der Beobachtung von Geschäftsprozessen. Für solche Fälle verwendet man meist stark verteilte Systeme, da zum Beispiel bei der Überwachung des Weltmarktes Daten aus vielen verschiedenen Quellen weltweit benötigt werden. In aktuellen CEP-Systemen werden jedoch zumeist alle erzeugten Daten übertragen, um die Verfügbarkeit aller relevanten Werte zu gewährleisten. Dies kann unter Umständen eine sehr hohe Netzwerklast verursachen. In dieser Arbeit präsentieren wir einen Ansatz, der die anfallenden Daten in Klassen von hochfrequenten und niederfrequenten Datenströmen einteilt, um mit Hilfe dieser Einteilung die Netzwerklast zu verringern. Hierbei werden die hochfrequenten, also für die Netzwerklast schlechteren, Datenströme nicht versandt, sondern in einer Datenbank zurückgehalten. Wird das Eintreffen von niederfrequenten Daten detektiert, werden die relevanten hochfrequenten Daten aus der Datenbank abgefragt. Bei entsprechendem Verhältnis von niederfrequenten zu hochfrequenten Daten kann dies die Netzwerklast um über 90% vermindern, wie wir auch in einigen Experimenten zeigen. Index Terms Complex Event Processing, Verringerung von Netzwerklast. 1 EINFÜHRUNG Complex Event Processing (kurz CEP) bezeichnet Techniken, Methoden und Werkzeuge, die Ereignisse zeitnah verarbeiten. Dabei werden sogenannte Events bearbeitet. Es gibt zwei Arten von Events: Einfache Events und komplexe Events. Einfache Events enthalten Werte von z.b. Sensoren. Werden diese Events vom CEP-System gefiltert, zusammengefügt und miteinander verglichen, stellen die Ergebnisse dann komplexe Events dar. Diese komplexen Events können wiederum zu einem komplexen Event weiterverarbeitet werden. Das CEP- System verarbeitet Eventströme von einer oder mehreren Informationsquellen. Diese Eventströme enthalten zeitlich geordnete Werte, also Events, die sowohl eine fachliche Information, als auch einen Zeitstempel enthalten. Abbildung 1: Beispiel für CEP Betrachten wir nun folgende Situation: Der Winterdienst möchte anhand von Wetterdaten bestimmen, ob Schneegefahr besteht. Dazu benötigt man die aktuelle Temperatur und die Menge des Niederschlags. Diese Werte werden als einfache Events empfangen. Man muss jedoch festsetzen, bei welchen Werten Schnee möglich ist. Dazu verwendet man komplexe Events, die z.b. aussagen, dass der Niederschlag über 10l/m 2 und die Temperatur unter 4 C sein muss. Um komplexe Events zu berechnen, werden Operatoren verwendet. Ein Operator nimmt einfache Events entgegen und überprüft, ob die Bedingungen für komplexe Events erfüllt sind. Sind diese Bedingungen erfüllt, so meldet der Operator das Eintreten des komplexen Events. Um Operatoren zu beschreiben, werden in der Praxis Event Processing Languages (EPLs) verwendet, die in der Regel ähnlich zu SQL sind. Operatoren wiederum werden in CEP-Engines ausgeführt. In dieser Arbeit wird als CEP-Engine Esper verwendet. Das ge- samte CEP-Systems besteht aus einem Netzwerk von mehreren CEP- Engines, die miteinander kommunizieren. Bei ständiger Übertragung der Events ist die Netzwerklast sehr hoch. Im System werden Events übertragen, die für die Erkennung von komplexen Events nicht notwendig sind. Es muss eine Lösung gefunden werden, durch die die Last im Netzwerk reduziert werden kann, ohne relevante Informationen zu verlieren, indem man diese nicht relevanten Events nicht überträgt. In unserem Anwendungsbeispiel soll die Temperatur das hochfrequente Event und der Niederschlag das niederfrequente Event sein. Ein Niederschlagswert über 10l/m 2 tritt nicht so häufig auf, wie ein Temperaturwert unter 4 C. Es entstehen also viele Temperaturwerte, die nicht relevant für den Schneefall sind, da der Niederschlag nicht so häufig über 10l/m 2 ist. Es müsste also genügen die Temperatur nur bei einem Niederschlagswert über 10l/m 2 auszulesen und auf die Bedingung für ein komplexes Event hin zu prüfen. Um die Netzwerklast zu reduzieren, müssen wir also einen Weg finden, bei dem Ereignisse, die häufig auftreten, abgespeichert und bei Bedarf entnommen werden. Ereignisse, die nicht so häufig auftreten, sollen kontinuierlich weitergeleitet werden. In unserem Fall sollte der Temperaturwert nicht verloren gehen, aber auch nicht ständig übertragen werden. Hier führen wir eine Datenbank ein. In dieser Datenbank werden Temperaturwerte gespeichert. Sie werden also abrufbereit gelagert. Tritt dann ein Niederschlagswert ein, bei dem Schneefall möglich ist, wird die Temperatur aus der Datenbank erfragt. So werden nur die Events übertragen, die relevant sein könnten. Im Folgenden klären wir in Sektion 2 (Systemmodell) einige grundlegenden Begriffsbedeutungen und die allgemeine Funktion unseres Systems. In Sektion 3 geben wir eine genaue Erklärung für unser System wie Datenbank und Trigger genau funktionieren. Zusätzlich erläutern wir auch Hindernisse, die wir dabei entdeckt haben. In Sektion 4 stellen wir unsere Testergebnisse für unser System dar. Hierbei betrachten wir sowohl die Netzwerklast, als auch die Berechnungsdauer unseres Systems im Vergleich zur Methode ohne Datenbank. In Sektion 5 geben wir noch einen Überblick über verwandte Arbeiten auf diesem Gebiet und stellen dar, wie die aktuelle Situation aus wissenschaftlicher Sicht ist. In Sektion 6 fassen wir unsere Arbeit zusammen und geben einen kurzen Ausblick auf Dinge, mit der wir unsere Arbeit erweitern könnten. Benjamin Braun Karsten Schatz Vethiga Srikanthan 2 SYSTEMMODELL Das System, das uns vorliegt, ist ein CEP-System. Es ist ein Netzwerk von Operatoren, welche durch Eventströme verbunden sind. Über diese Eventströme werden Events verschickt. Sowohl der Sender, als auch 1

2 Abbildung 2: Systemmodell der Empfänger sind also Operatoren, die in CEP-Engines ausgeführt werden. Der Operator, der als Sender fungiert, verschickt die gemessenen oder erzeugten Werte. Der Empfänger erhält die in Events enthaltenen Werte und verarbeitet diese zu neuen, komplexen Events. Leitet der zweite Operator das Event erneut weiter, funktioniert in diesem Fall der Operator sowohl als Empfänger, als auch als Sender. Somit haben wir eine Verarbeitungskette. Die Verbindung zwischen allen Sendern und Empfängern ist also unser Netzwerk (Abbildung 2). Operatoren im System implementieren somit eine Funktion, die den Eingang auf den Ausgang bildet. Seien e 1 und e 2 Events, die vom Sender verschickt werden. Somit führen die Operatoren folgendes aus: f (e 1,e 2 ). Doch bei diesem System ist erkennbar, dass die Last auf den Eventströmen bei ständiger Übertragung sehr hoch ist. Unser Ziel ist es, eine Lösung zu finden, durch die bereits nahe dem Sender Events abgefangen werden und somit eine geringe Netzwerklast zu erreichen. Dazu wird für jeden Eventstrom überprüft, ob eine kontinuierliche Übertragung notwendig ist, oder ob die Netzwerklast durch zurückhalten des Stroms effektiv optimiert werden kann. 3 SYSTEMANSATZ Um unseren Ansatz zu beschreiben, betrachten wir im Folgenden einen einzelnen Operator des CEP-Systems. Sei o 3 aus Abbildung 2 der betrachtete Operator. Dieser besitzt zwei Eingangsströme, welche verarbeitet werden. Einer dieser Eingangsströme ist hochfrequent (angenommen o 1 ), der andere niederfrequent (o 2 ). Da immer Events beider Ströme gekoppelt und gemeinsam verarbeitet werden, werden nur wenige Events des hochfrequenten Stroms wirklich verwendet. Deshalb können wir alle Events des hochfrequenten Stroms in einer Datenbank abspeichern und bei Bedarf entnehmen. Niederfrequente Events werden, wie in Abbildung 3 skizziert, an einen Trigger übergeben, jedoch nicht in der Datenbank gespeichert. Zuvor werden diese Events von einer erste CEP-Engine (Engine Instanz 1) überprüft. An dieser Stelle wäre nicht zwangsläufig eine CEP-Instanz notwendig um das schlichte Eintreffen von Events zu detektieren, jedoch kann hier eine Vorfilterung durchgeführt werden, um später die Netzwerklast noch weiter einschränken zu können. Wird nun ein niederfrequentes Event festgestellt, werden sowohl das niederfrequente als auch das hochfrequente Event aus der Datenbank von einer zweiten CEP-Engine (Engine Instanz 2) überprüft, um festzustellen, ob die Bedingungen für ein komplexes Event erfüllt sind. Deren Auftreten wird dann dem System mitgeteilt. 4 SYSTEMIMPLEMETIERUNG Der in Kapitel 3 vorgestellte Ansatz wurde prototypisch implementiert. Dabei kamen die Esper Korellationsengine als CEP-Engine, und eine SQL Datenbank zum Einsatz. Dazu wurde ein Trigger erstellt, der Abbildung 3: Aufbau unseres Systems nach der ersten Esper-Instanz die Ansteuerung der Datenbank durchführt. Sobald ein niederfrequentes Event durch die erste CEP-Instanz, der Esper-Instanz, festgestellt wird, wird eine SQL-Abfrage für die Datenbank vom Trigger erstellt und durchgeführt. Diese erfragt von der Datenbank alle für die registrierten komplexen Eventbeschreibungen nötigen Events. Nach Erhalt der Events aus der Datenbank werden diese in den Eventstrom der zweiten Esper-Instanz eingespeist gefolgt vom verursachenden Event. Die zweite Esper-Instanz überprüft an den Events aus dem zweiten Eventstrom, ob die Bedingungen für ein komplexes Event erfüllt sind und teilt dem System, wie bereits erwähnt, deren Auftreten mit. Das Netzwerk ist beim verteilten CEP üblicherweise stark ausgelastet und soll mit Hilfe der Datenbank entlastet werden. Die Datenbank enthält einfache Events, die momentan nicht zur Weiterverarbeitung benötigt werden. Alle Events werden nach der Reihe, wie sie bei der Datenbank eintreffen, sortiert. Jedes Event bekommt eine ID und einen Zeitstempel, die zur Weiterverarbeitung benötigt werden. 4.1 Datenbank Die Datenbank ist in diesem Konzept einzig und allein zur Abspeicherung von schnell hintereinander eintreffenden Events ausgelegt. Esper bietet drei unterschiedliche Eventrepräsentationen an. Die am einfachsten umzusetzende dieser drei ist das Java-Objekt. Die Abspeicherung von XML-Events beispielsweise, würde eine XML-Datenbank erfordern, was nachweislich den Netzwerktraffic in die Höhe treiben würde, da zusätzlich zu den reinen Daten auch noch die XML- Beschreibung übertragen werden müsste. Es existiert eine ganze Reihe von Java-Bibliotheken, die die Abspeicherung von Objekten in Datenbanken anbieten. Unsere Wahl fiel auf EclipseLink. Die einzige Restriktion dieser Bibliothek ist die Einschränkung auf weitgehend primitive Datentypen. Events bestehen fast definitionsgemäß nur aus primitiven Werten bzw. Datentypen, somit ist dies nicht hinderlich. Außerdem muss es sich bei dem übergebenen Objekt um ein JavaBean handeln. Diese spezielle Form eines Java-Objekts stört Esper nicht in dessen Ausführung, bietet aber für die weitere Verarbeitung im Trigger noch weitere Vorteile, womit dies 2

3 auch keine wirkliche Einschränkung darstellt. So wird für jede Art von schnellem Event eine eigene Tabelle in der Datenbank angelegt. Dies vereinfacht die spätere Abfrage der Events stark. Es ist jedoch notwendig, noch zwei weitere Restriktionen einzuführen. Da wir mit der Einspeicherung in der Datenbank quasi die Einspeisung des Events in Esper modellieren wollen und Esper sich die Ankunftszeit eines jeden Events merkt, muss jedes Event einen Zeitstempel besitzen, welcher bei Einspeicherung in die Datenbank gesetzt wird. So können später Anfragen, die sich auf die Ankunftszeit beziehen, leicht abgehandelt werden. Des weiteren fordern wir einen eindeutigen, nach der Ankunftszeit fortlaufenden Schlüssel, also einen Primary Key. Aufgrund der schnellen Verarbeitungszeiten ist dieser notwendig, da Events teils so schnell abgespeichert werden, dass sie denselben Zeitstempel besitzen und dieser somit nicht als Primary Key dienen kann. Im folgenden wird nun der Trigger beschrieben, dass Schlüsselelement des Systems. 4.2 Trigger Der Trigger ist der Hauptbestandteil unseres Konzepts. Er verwaltet eintreffende Events aus der ersten Esper-Instanz, führt die entsprechenden Datenbankanfragen durch und leitet dann die abgefragten Events and die zweite Esper-Instanz weiter Grundprinzip Der Listener, der aktiv wird, wenn in der ersten Esper-Instanz ein hereinkommendes Event detektiert wurde, leitet dieses Event komplett an den Trigger weiter, daraufhin wird dieser aktiv. Es wird überprüft, ob die zweite Instanz EPL-Statements hält, für welche das hereinkommende Event relevant wäre. Ist dies der Fall, startet das umschreiben der EPL-Statements. Hierbei machen wir uns die Ähnlichkeit der Esper-EPL zu SQL zunutze und manipulieren die Statements so, dass das Ergebnis eine äquivalente SQL-Anfrage darstellt. Soll z.b. bei Auftreten eines Events A das letzte Event B detektiert werden und B ausgegeben werden, so wäre der zugehörige EPL-Ausdruck: s e l e c t b from B. s t d : l a s t e v e n t ( ) as b, A. s t d : l a s t e v e n t ( ) as a where b. b e f o r e ( a ) Die äquivalente MySQL-Anfrage wäre nun (wenn der Timestamp von A : 45 : 23 ist): s e l e c t b from B b where b. timestamp < : 4 5 : 2 3 order by b. i d desc l i m i t 1 Befehle der Esper-Intervallalgebra wie b.be f ore(a) sind in unserem Falle redundant, da wir fordern, dass jedes Event ein Timestamp- Feld besitzt. Kennt man die Eintrittszeit der Events können alle Befehle der Intervallalgebra leicht nachgebildet werden. So kann hier z.b. where b.be f ore(a) durch where b.timestamp < a.timestamp ersetzt werden. Im Folgenden soll darauf eingegangen werden, wie wir mit den einzelnen Komponenten des Ausdrucks umgehen, um ihn in eine äquivalenten SQL-Ausdruck umzuwandeln. Zum einen wird auf Window Views eingegangen. Dies sind bestimmte EPL-Ausdrücke, die die Anzahl der betrachteten Events einschränken können. Zum anderen wird berichtet, wie man den bereits vorhandenen Where-Clause der Esper- EPL in eine SQL-Anfrage übernehmen kann Window Views Zu den Window Views zählen in der Esper-EPL Ausdrücke wie.std : lastevent(),.win : time() oder.win : length(). Diese lassen sich in zwei grundlegende Arten einteilen. Zum einen existieren Views, die sich auf die (Ankunfts-)Zeit von Events beziehen, zum anderen existieren Views die sich auf deren Anzahl beziehen. Es wäre zwar möglich gewesen deren Funktionalität auf SQL- Views abzubilden, jedoch ist das mit EclipseLink eine umständliche Aufgabe. Es erschien naheliegender, den Where-Clause der Anfrage zu erweitern bzw. die Anzahl der Ergebnisse einzuschränken, was jedoch zu ganz eigenen Problemen führt. So fordert z.b. die Verwendung von B.win : length(4) nicht die letzten 4 Events für die der Where-Clause gilt, sondern es schränkt den Sichtbereich prinzipiell im Vorhinein auf die Anzahl 4 ein. Die SQL-Anfrage hingegen, bei der mittels order by B.id desc limit 4 die letzten 4 Ergebnisse angezeigt werden, gibt als Ergebnis nicht die letzten 4 Events aus und überprüft dann, ob der Where-Clause gilt. Sie überprüft vielmehr zuerst den Where-Clause und schränkt dann die Anzahl der Ergebnisse auf die letzten 4 ein. Somit würden beide Varianten unterschiedliche Ergebnisse produzieren. Gelöst wird dieses Problem, indem zunächst die maximale Event-Id aus der spezifischen Datenbank abgefragt wird, um diese dann für den Where-Clause weiterzuverwenden. Da dieser zuerst überprüft wird, erhält man nun das gewollte Ergebnis. Das produziert zwar einen leichten Netzwerk-Overhead, jedoch ist dieser so gut wie vernachlässigbar, da nur die verhältnismäßig sehr kleine Id und die Anfrage danach übertragen wird. Die Handhabung von Views, die sich nicht auf die Anzahl der Events sondern auf die Zeit beziehen, in der sie ankamen, unterscheidet sich davon stark. Da wir fordern, dass jedes Event einen Zeitstempel mit sich führt, kann beispielsweise bei dem View B.win : time(5 min 3 sec) der Zeitausdruck geparst werden und ein neuer Zeitstempel berechnet werden. Dieser liegt dann die geforderten 5 Minuten und 3 Sekunden vor der Ankunftszeit des auslösenden langsamen Events und kann nun mit den Zeitstempeln der in der Datenbank befindlichen Events verglichen werden Where-Clauses Nicht nur die Views sondern auch die Where-Clauses fordern hier eine Bearbeitung. So kann in einer EPL-Anweisung eine Referenz auf ein langsames Event enthalten sein, dessen Eventklasse nicht in der Datenbank abgespeichert wird. So würde die Datenbank versuchen, mit ihr unbekannten Daten zu arbeiten, was natürlich unmöglich ist. Es ist also erforderlich, die vom langsamen Event schon bekannten Werte in die Anfrage anstatt der zugehörigen Variablen einzusetzen. Das erfordert eine Erkennung der Aliase die im f rom-teil des Ausdrucks beschrieben werden. Diese ist recht einfach zu implementieren. Wie schon in Abschnitt präsentiert wird dann der Platzhalter (a.timestamp) durch den bekannten Wert ersetzt ( : 45 : 23 ). Die leicht abgeändert Anfrage von dort sei hier nochmal aufgeführt: s e l e c t b from B. s t d : l a s t e v e n t ( ) as b, A. s t d : l a s t e v e n t ( ) as a where b. timestamp < a. timestamp and a. n i e d e r s c h l a g > 5 and b. t e m p e r a t u r e < 4 Die Where-Clauses können auch, wie der eben gezeigte, nach dem Einsetzen der bekannten Werte überflüssige Abschnitte erhalten. Beispielsweise könnte unser Verfahren den Ausdruck and 3 > 5 produzieren. Dieser kann augenscheinlich von keinem Event erfüllt werden, obwohl die komplette Datenbankabfrage zweifelsfrei korrekt ist. Sie produziert nur zusätzlichen Netzwerktraffic, ohne ein relevantes Resultat zu liefern. Für solche schon im Vorhinein bei der Erstellung des Ausdrucks erkennbaren Fälle ist die erste Esper-Instanz als Problemlösung vorgesehen. Die Erkennung solcher Fälle muss jedoch anwenderseitig geschehen. Wird hier dieser Problemfall erkannt, kann and a.niederschlag > 5 aus dem Ausdruck gestrichen werden. Jedoch muss dann bei der ersten Instanz der ursprüngliche Erkennungsausdruck select f rom A zu s e l e c t a from A a where a. n i e d e r s c h l a g > 5 3

4 erweitert werden. Dies filtert zuverlässig irrelevante Events und spart sowohl Netzwerktraffic als auch Rechenzeit, da der Trigger mit den so herausgefilterten Events nicht mehr arbeiten muss. Im nächsten Abschnitt wollen wir nun die Effizienz der soeben beschriebenen Methoden durch Messungen belegen. 5 EVALUATION Nun werden wir in Esper unterschiedliche Bedingungen testen. Wir werden evaluieren, wie man im Durchschnitt die geringste Netzwerklast erreicht, aber auch wie die geringste Rechendauer erreicht werden kann. Zu den Tests wurde als Testmaschine, auf der Esper läuft, ein Intel Core i7-2600k bei 4,0 GHz mit 16Gb RAM verwendet. Als Datenbankserver wurde ein Intel Pentium IV Rechner bei 3,0 GHz mit 1GB RAM verwendet. 5.1 Netzwerklast Zuerst werden wir unser Konzept, also die Netzwerklast von Esper mit angeschlossener Datenbanken, betrachten. Hierbei gehen wir davon aus, dass immer nur ein Event aus der Datenbank abgefragt wird, deren Netzwerklast sinkt, wenn das langsamere Event, das nicht in die Datenbank gespeichert wird, um einiges langsamer ist als das schnelle Event, welches in der Datenbank gespeichert wird. Die Kurve nähert sich immer weiter der 0 an, wie in Abbildung 4 zu sehen ist. Die zusätzliche Netzwerklast, die durch Verwendung bestimmter Window Views entsteht ist hierbei schon berücksichtigt. Hieraus sieht man nun das mit größer werdender Differenz der Häufigkeit, Esper mit Datenbank eine geringere Netzwerklast hat. Der Schnittpunkt der Netzwerklasten von Esper mit Datenbank und Esper ohne Datenbank liegt in unserem Experiment bei einem Verhältnis von einem langsamen Event zu 3 schnellen Events. Das bedeutet, dass sich die Datenbank erst ab einem Verhältnis von ca. 1:3 lohnt, wie im nachfolgenden Abbildung 6 ersichtlich wird. Abbildung 6: Kombinierter Netzwerktraffic aus Abbildung 4 und 5 Betrachtet man nun die prozentuale Einsparung von Esper mit Datenbank gegenüber Esper ohne Datenbank sieht man, dass ab einem Verhältnis von 1:3 die prozentuale Einsparung logarithmisch ansteigt. Esper mit Datenbank spart bei einem Verhältnis von 1:5 die Hälfte der Netzwerklast und bei einem Verhältnis von 1:10 werden sogar 90% an Netzwerklast eingespart, wie in Abbildung 7 ersichtlich wird. Abbildung 4: Unser Ansatz: Netzwerktraffic Abbildung 7: Unser Ansatz: Einsparung von Netzwerktraffic Dabei erkennt man, dass Esper mit Datenbank bei der Netzwerklast, mit zunehmend größerem Verhältnis zwischen schnellen und langsamen Events, konstant besser wird, als Esper ohne Datenbank. Abbildung 5: Esper: Netzwerktraffic Wenn mehr als ein Event aus der Datenbank abgefragt wird, verschiebt sich die Kurve pro Event um ca. 60 B/s nach oben. Die Netzwerklast bei Esper ohne Datenbank hingegen nimmt mit größer werdendem Unterschied der Häufigkeit der beiden Eventströme konstant zu. Was in Abbildung 5 illustriert wird. 5.2 Berechnungsdauer Die Berechnungsdauer von Esper ist kürzer wenn keine Datenbank verwendet wird, da keine zusätzliche Zeit für Datenbankabfragen benötigt wird. Hierzu haben wir Tests durch geführt und die Berechnungsdauer für eine Anzahl von 1-50 Anfragen gemessen. Diese liegen bei Esper ohne Datenbank auf unserem System im Schnitt bei etwa 2,3ms pro Anfrage, wie aus Abbildung 10 ersichtlich wird. Die hier zu sehenden Ausreißer können im Zuge der Messtoleranz und geringen Störungen vernachlässigt werden. Vergleicht man diese Messungen mit den Ergebnissen der Messung auf unserem System bei Esper mit Datenbank, sieht man sofort, dass die Variante mit Datenbank immer eine längere Berechnungszeit besitzt, was auf die zusätzliche Zeit für die Abfrage der Datenbank zurückzuführen ist. Aber im 4

5 Abbildung 8: Rechendauer von Esper Abbildung 10: Verhältnis von abgefragten Events zur Rechendauer bei einer lokalen Event-Datenbank Gegensatz zu Esper ohne Datenbank nimmt die Bearbeitungszeit bei Esper mit Datenbank, bei einer höheren Anzahl von Eventanfragen, konstant zu, wie in Abbildung 9 gut zu sehen ist. Abbildung 9: Verhältnis von abgefragten Events zur Rechendauer bei einer entfernten Event-Datenbank Obiges Diagramm zeigt nun die Ergebnisse eines Tests, in dem Esper die Events über ein Netzwerk auf einem externen Server abfragt. Da dies einiges länger dauert als ohne Datenbank, werden wir nun auch noch einen Testfall betrachten, in dem wir die Datenbank mit der Engine auf dem gleichen Rechner haben. Auch hier bekommen wir eine konstant ansteigende Kurve, genau wie beim vorigen Test mit der Datenbank, wie in Abbildung 10 deutlich zu sehen ist. Bei der lokalen Datenbank ist die Kurve flacher als bei der entfernten Datenbank, was daran liegt das die Events bei der lokalen Datenbank eine geringere Übertragungsdauer haben als die Events einer entfernten Datenbank. Eine lokale Datenbank ist die schlechteste der möglichen Lösungen, da hier natürlich keinerlei Netzwerklast durch die Datenbank gespart werden kann. Somit würde nur die Berechnungsdauer erhöht ohne weiteren Nutzen und eine Variante ohne Datenbank wäre effizienter. Deswegen sollte man die Datenbank natürlich direkt beim Sender installieren. Damit wird keine weitere Netzwerklast benötigt, um die Events in die Datenbank zu speichern. 5.3 Wertung Wenn man nun die drei Methoden vergleicht, erkennt man leicht, dass die Variante ohne Datenbank in Hinsicht auf die Rechenzeit natürlich am Effizientesten ist, wie in Abbildung 11 zu sehen ist. Ab einem bestimmten Verhältnis, in unserem Testfall ca. 1 : 3, verursacht dies mehr Netzwerklast, was es ja zu verhindern gilt. Natürlich ist Esper mit einer Datenbank langsamer, aber auch effizienter in Hinsicht auf die Netzwerklast. Deswegen ist Esper mit Datenbank bestens Abbildung 11: Verhältnis von abgefragten Events zur Rechendauer Sterne: Unser Ansatz, entfernte Datenbank Striche: Unser Ansatz, lokale Datenbank Rauten: Esper ohne Datenbankeinsatz dazu geeignet, Netzwerklast zu sparen, wenn das Verhältnis von langsamen zu schnellen Events über ca. 1 : 3 liegt. 6 RELATED WORK Die Wichtigkeit von Complex Event Processing Systemen nimmt ständig zu, somit sind diese auch ein wichtiger Forschungsgegenstand. Insbesondere nimmt hier die Bedeutung von verteilten Systemen zu, sei es zur Überwachung von Finanzmärkten oder zur schnellen Verarbeitung von Sensordaten. So wird in [5] auf CEP in Unternehmenssystemen eingegangen. Werden Events von vielen verschiedenen Quellen bezogen, kann es möglich sein, Erkennungspläne festzulegen, die die Performance des CEP-Systems erhöhen, auch bezüglich der Netzwerkauslastung. Diese können sich stark von naiven komplexen Events unterscheiden [1]. Um solche Erkennungspläne zu erstellen, können beispielsweise deterministische endliche Automaten als Hilfsmittel herangezogen werden. Ein ähnliches Ziel wird auch in [7] verfolgt, jedoch wird hier nicht die Verringerung der Netzwerklast als eines der Hauptziele angestrebt. Vielmehr wird darauf eingegangen, möglichst viele Beschreibungen komplexer Events gleichzeitig verarbeiten zu können. Bei beiden vorangegangen Ansätzen werden zwar, ebenso wie bei unserem, CEP-Queries umgeschrieben, nur wird keine Klassifikation der unterschiedlichen Events vorgenommen, wie es bei uns der Fall ist. Ein weiterer Unterschied ist, dass in dieser Arbeit der Prozess des Umschreibens einem anderen Zweck dient. Wir schreiben um, um eine SQL-Query zu erhalten, mit der man die Events aus der Datenbank auslesen kann. In den beiden Arbeiten werden die EPL-Queries 5

6 in äquivalente EPL-Queries umgeschrieben, um eine bessere Performance zu erzielen. Die Wichtigkeit der Platzierung von Operatoren wie unserer Datenbank in Netzwerken wird in [6] untersucht. Es wird eine Erweiterung für eine Netzwerkschicht präsentiert, die die Platzierung der Operatoren eigenständig regeln kann. Wichtig für diese Arbeit ist jedoch nur die Methodik, nach der dies geschieht. Mit der Übertragung von Dateien im Allgemeinen (in unserem Fall sind dies natürlich Events) beschäftigt sich [3]. Hierbei wird nicht nur auf das titelgebende Publish/Subscribe eingegangen, welches einen wichtigen Mechanismus für CEP-Systeme darstellt, sondern auch auf Techniken wie Remote Procedure Calls oder Message Queuing. Nichtsdestotrotz waren bei unserem Ansatz andere Kommunikationswege vonnöten, um das angestrebte Ziel zu erreichen. Relevant für diese Arbeit waren natürlich auch die Dokumentationen der verwendeten Software bzw. Bibliotheken. In [2] wird eine komplette Beschreibung der Funktionsweise von Esper und der Esper- EPL vorgenommen. Auch wird eine Einführung in Complex Event Processing präsentiert. Die Beschreibung von EclipseLink und der Technik der Abspeicherung von Objekten in Datenbanken wird in [4] getätigt. [1] M. Akdere, U. Çetintemel, and N. Tatbul. Plan-based complex event detection across distributed sources. Proc. VLDB Endow., 1(1):66 77, Aug [2] EsperTech. Esper Reference Documentation Version reference/en/pdf/esper_reference.pdf, [Online; accessed 15-April-2012]. [3] P. T. Eugster, P. A. Felber, R. Guerraoui, and A.-M. Kermarrec. The many faces of publish/subscribe. ACM Comput. Surv., 35(2): , June [4] E. Foundation. EclipseLink Documentation. eclipse.org/eclipselink/documentation_center, [Online; accessed 15-April-2012]. [5] D. C. Luckham. The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, [6] P. Pietzuch, J. Ledlie, J. Shneidman, M. Roussopoulos, M. Welsh, and M. Seltzer. Network-aware operator placement for stream-processing systems. In Data Engineering, ICDE 06. Proceedings of the 22nd International Conference on, page 49, april [7] N. P. Schultz-Møller, M. Migliavacca, and P. Pietzuch. Distributed complex event processing with query rewriting. In Proceedings of the Third ACM International Conference on Distributed Event-Based Systems, DEBS 09, pages 4:1 4:12, New York, NY, USA, ACM. 7 ZUSAMMENFASSUNG Um die Netzwerklast zu reduzieren führen wie eine Datenbank ein. Darin werden häufig auftretende Events abgespeichert und bei auftreten noch niederfrequente Events abgerufen. Dieses System kann mit zwei Esper-Instanzen erstellt werden. Hierzu entnimmt die erste Esper-Instanz ein niederfrequentes Event und leitet diese an die zweite Instanz weiter, wenn die Bedingungen für ein komplexes Event erfüllt sind. Anschließend werden die letzten hochfrequenten Events ebenfalls aus der Datenbank an die zweite Esper-Instanz weitergeleitet. Diese Methode ist bei einem Verhältnis von niederfrequenten zu hochfrequenten Events von 1 : 3 in der Netzwerklast besser als bei Esper ohne Datenbank. Dabei hat Esper mit Datenbank zwar eine längere Rechenzeit, spart jedoch signifikant viel Netzwerklast ein. Man kann noch weitere wenige Verbesserungen einführen, um Esper mit Datenbank noch effizienter zu machen. Zum Beispiel könnte man einen Eventpuffer bzw. einen Eventcache hinzufügen, damit die Events, die bereits abgefragt wurden, nicht noch ein weiteres mal abgefragt werden. Man könnte auch die gesamten Informationen aus der Datenbank auf mehrere Datenbanken verteilen oder mehrere Datenbanken unterstützen, dass jeder Event-Sender eine eigene Datenbank besitzt. Damit würde sich sowohl die Zugriffszeit als auch der Netwerktraffic noch weiter verringern. ACKNOWLEDGMENTS Zuletzt möchten wir uns noch bei unseren Betreuern, Björn Schilling und Beate Ottenwälder für die stetige Beratung und ihre schier endlos erscheinende Geduld bedanken. LITERATUR 6

Reduzierung der Netzwerklast von CEP unter Zuhilfenahme von Datenbanken

Reduzierung der Netzwerklast von CEP unter Zuhilfenahme von Datenbanken Projekt INF Reduzierung der Netzwerklast von CEP unter Zuhilfenahme von Datenbanken Benjamin Braun, Karsten Schatz, Vethiga Srikanthan 27. September 2012 Complex Event Processing (CEP) Techniken, Methoden

Mehr

Ein XML Dokument zeichnet sich im Wesentlichen durch seine baumartige Struktur aus:

Ein XML Dokument zeichnet sich im Wesentlichen durch seine baumartige Struktur aus: RDF in wissenschaftlichen Bibliotheken 5HWULHYDODXI5') Momentan existiert noch keine standardisierte Anfragesprache für RDF Dokumente. Auf Grund der existierenden XML Repräsentation von RDF liegt es jedoch

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

Mehr

Event Stream Processing & Complex Event Processing. Dirk Bade

Event Stream Processing & Complex Event Processing. Dirk Bade 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

Mehr

Saros: Verbesserung des algorithmischen Kerns gleichzeitiges Editieren. von Norman Warnatsch Diplomarbeit

Saros: Verbesserung des algorithmischen Kerns gleichzeitiges Editieren. von Norman Warnatsch Diplomarbeit Saros: Verbesserung des algorithmischen Kerns gleichzeitiges Editieren von Norman Warnatsch Diplomarbeit 1 Gliederung 1. Saros a. das Plugin b. Jupiter-Algorithmus 2. Problemstellung: Fehlverhalten beim

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Aufgaben zu Tabellenanalyse mit SQL

Aufgaben zu Tabellenanalyse mit SQL Aufgaben zu Tabellenanalyse mit SQL Die Tabelle unten enthält die Arbeitsaufträge für ein Team von Software Entwicklern. Jede Zeile entspricht einem Arbeitsauftrag (hier ohne die Beschreibung des Auftrages

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

1. Einleitung. 1 1Exabyte=10 18 Bytes = Bytes

1. Einleitung. 1 1Exabyte=10 18 Bytes = Bytes 1. Einleitung Das aktuelle Jahrzehnt wird als Zeitalter der Daten bezeichnet [Whi09, S. 1]. Die Menge der weltweit existierenden Daten ist in den letzten Jahren stark angewachsen. Eine Studie des amerikanischen

Mehr

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung) 1 Relationenalgebra Gegeben seien die folgenden Relationenschemata: [8 P.] Hafen(HNR, Ort, Grundsteinlegung) Matrose(MNR, Nachname, Geburtsdatum, Ausbildungsort Hafen.HNR) Schi(SNR, Name, Bruttoregistertonnen,

Mehr

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms Oracle Forms Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. Diese Forms umfassen Dateneingabe-Formulare Datenabfrage-Formulare Browser-Formulare Oracle

Mehr

Enthaltene Programmänderungen. DMP-Assist Version

Enthaltene Programmänderungen. DMP-Assist Version Enthaltene Programmänderungen DMP-Assist Version 4.0.2.0 Inhaltsverzeichnis 1 Systemvoraussetzungen...3 2 Datensicherung vor dem Update...3 3 Die Installation des Updates...5 3.1. Wichtige Hinweise zum

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten Seminararbeit vorgelegt von: Gutachter: Studienbereich: Christian Lechner Dr. Georg Moser Informatik Datum: 6. Juni 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Datenbanken 1 1.1 Motivation....................................

Mehr

OpenOffice - Base G. Laner 1

OpenOffice - Base G. Laner 1 OpenOffice - Base G. Laner 1 BASE - OpenOffice Erstellen einer Datenbank Einteilung einer Datenbank in TABELLEN, die FELDER enthalten, die einem bestimmten DATENTYP zugeordnet sind. Die einzelnen Datensätze

Mehr

Aggregatfunktionen in SQL

Aggregatfunktionen in SQL Aggregatfunktionen in SQL Michael Dienert 14. April 2008 1 Definition von Aggregatfunktionen Ihren Namen haben die Aggregatfunktionen vom englischen Verb to aggregate, was auf deutsch anhäufen, vereinigen,

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

Complex Event Processing

Complex Event Processing [10] Armin Steudte HAW Hamburg Masterstudiengang Informatik - WS 2011/2012 Agenda Motivation Grundlagen Event Processing Networks Ausblick Quellen 2 Agenda Motivation Grundlagen Event Processing Networks

Mehr

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar Abfragen aus einer Tabelle mit Hilfe der Datenbank-Sprache SQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine

Mehr

SQL. Datendefinition

SQL. Datendefinition SQL Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer oder logischer Natur sein. Das folgende Kapitel beschäftigt sich mit der

Mehr

Serielle Kommunikation - Kodierung

Serielle Kommunikation - Kodierung Serielle Kommunikation - Kodierung (1.) Erstellen Sie nachfolgende Klasse: Dabei haben die Methoden folgende Funktionen: exists(): Überprüft, ob eine serielle Schnittstelle existiert getproperties(): Liefert

Mehr

Performance Verbesserung BIRT-BERICHTE

Performance Verbesserung BIRT-BERICHTE ClassiX Software GmbH Performance Verbesserung der BIRT-BERICHTE Tipps zur Performance Verbesserung der Berichte unabhängig von der Engine Jana Fischereit 21.01.2013 1 Inhalt 2 Allgemeine Aussagen... 2

Mehr

Exact.GlobeLohn Österreich: Elektronische Übermittlung der Kommunalsteuererklärung

Exact.GlobeLohn Österreich: Elektronische Übermittlung der Kommunalsteuererklärung Exact.GlobeLohn Österreich: Elektronische Übermittlung der Kommunalsteuererklärung Allgemeine Grundlagen Nach Ablauf des Kalenderjahres muss der Unternehmer die Kommunalsteuererklärung bis Ende März einreichen.

Mehr

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen HACK #55 Hack Doppeltes Abschicken von Formularen verhindern Durch die Verwendung einer Transaktionstabelle in Ihrer Datenbank können Sie das klassische Problem der doppelt abgeschickten Formulare verhindern.

Mehr

Oracle native json Support. Erste Schritte

Oracle native json Support. Erste Schritte Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale

Mehr

Es geht also um die sogenannte SQL- Data Definition Language.

Es geht also um die sogenannte SQL- Data Definition Language. In diesem Abschnitt werden wir uns die SQL Befehle ansehen, mit denen ein sogenanntes Datenbankschema angelegt, gepflegt und auch wieder gelöscht werden kann. Es geht also um die sogenannte SQL- Data Definition

Mehr

IR Seminar SoSe 2012 Martin Leinberger

IR Seminar SoSe 2012 Martin Leinberger IR Seminar SoSe 2012 Martin Leinberger Suchmaschinen stellen Ergebnisse häppchenweise dar Google: 10 Ergebnisse auf der ersten Seite Mehr Ergebnisse gibt es nur auf Nachfrage Nutzer geht selten auf zweite

Mehr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr 4. Übung Abgabe bis 25.11.2016, 16:00 Uhr Aufgabe 4.1: Verklemmungsbedingungen a) Welche drei Bedingungen müssen gelten, damit es zu einer Verklemmung in einem parallelen System kommen kann? b) Nach welcher

Mehr

ComfortsAutomatic-Datamodel

ComfortsAutomatic-Datamodel Schluss mit der redundanten Arbeit, wenn sich etwas am Datenmodell ändert ComfortsAutomatic-Datamodel Ihr Autopilot durch ein stets flexibles relationales Datenmodell Ein für die Zukunft stets gerüstetes

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

AMACOS. Installationshandbuch. Client und Server. Solunex AG Niederholzstrasse 17 CH-8951 Fahrweid. Tel.: +41 (0)

AMACOS. Installationshandbuch. Client und Server. Solunex AG Niederholzstrasse 17 CH-8951 Fahrweid. Tel.: +41 (0) AMACOS Installationshandbuch Client und Server Solunex AG Niederholzstrasse 17 CH-8951 Fahrweid Tel.: +41 (0) 44 520 40 50 Mail: office@solunex.ch Web: www.solunex.ch Änderungsnachweis: Erstellt am 4.

Mehr

Benutzerhandbuch Koala Editor

Benutzerhandbuch Koala Editor Benutzerhandbuch Koala Editor Inhalt Einführung, Allgemeine Hinweise... 2 Installation... 2 Allgemeine Funktionen... 3 Neu... 3 Öffnen und Speichern... 4 Modulfunktionen... 5 Klassisches Zustandsdiagramm...

Mehr

Datenmodelle und Datenbanken 2

Datenmodelle und Datenbanken 2 Datenmodelle und Datenbanken 2 Prof. N. Fuhr Institut für Informatik und Interaktive Systeme Arbeitsgruppe Informationssysteme 24. Februar 2005 Hinweise zur Bearbeitung Die Zeit läuft erst, wenn Sie alle

Mehr

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version 2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version Das Verwaltungsmodul moveon besteht aus zwei Komponenten: dem moveon Client und der moveon Datenbank. Der moveon Client enthält alle Formulare,

Mehr

CADSTAR MRP-Link. MRP-Link ist erstellt von:

CADSTAR MRP-Link. MRP-Link ist erstellt von: CADSTAR MRP-Link MRP-Link ist erstellt von: CSK CAD Systeme Kluwetasch Zip: 2161 Town: Altenholz Street: Struckbrook 9 Tel: +9-31-32917-0 Fax: +9-31-32917-26 Web: http://www.cskl.de E-Mail: Kluwetasch@cskl.de

Mehr

Partitionierungsstrategien für Data Vault

Partitionierungsstrategien für Data Vault ierungsstrategien für Data Vault Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Während das Laden von Tabellen in Data Vault in der Regel nicht zeitkritisch ist, stellt uns das effiziente

Mehr

Node.js der Alleskönner. Kai Donato MT AG Ratingen

Node.js der Alleskönner. Kai Donato MT AG Ratingen Node.js der Alleskönner Kai Donato MT AG Ratingen Schlüsselworte JavaScript, Node.js, NPM, Express, Webserver, oracledb Einleitung Node.js ist nach seiner Veröffentlichung im Jahre 2009 in aller Munde

Mehr

Getting Started Conquestor

Getting Started Conquestor STRATOLABS Conquestor für Windows Betriebssysteme* stratolabs 14.2.2019 Inhalt 1.) Überblick... 2 2.) Neue Datenbank-Verbindung anlegen... 4 2.1) Im Folgenden wird beschrieben, wie die Verbindung zu einer

Mehr

e-bag Kurzanleitung e-bag Grundfunktionen

e-bag Kurzanleitung e-bag Grundfunktionen BAG-Melk Kurzanleitung Grundfunktionen Autor J. Brandstetter Vertraulich, nur für internen Gebrauch Version 1.1 File: Datum: C:\e-BAG\manual\gundfunktionen\ebag_quick_start.doc 2003-09-17 Grundfunktionen

Mehr

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was 1 In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was die wichtigsten Konzepte sind. Den Themenbereich XML

Mehr

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

Mehr

3. Übung zur Vorlesung Verteilte Betriebssysteme

3. Übung zur Vorlesung Verteilte Betriebssysteme UNIVERSITÄT ULM Fakultät für Informatik Verteilte Systeme Prof. Dr. Peter Schulthess Markus Fakler 3. Übung zur Vorlesung Verteilte Betriebssysteme 21.11.2007 Aufgabe 1: Verteilte Algorithmen (3 + 1 +

Mehr

Wiederherstellen des Android-Betriebssystems

Wiederherstellen des Android-Betriebssystems Wiederherstellen des Android-Betriebssystems Geräte mit Rockchip RK3288-Prozessor Copyright c 2018 MEDION AG 19.07.2018 1 Überblick Dieses Dokument beschreibt, wie Sie auf Ihrem MEDION-Gerät mit einem

Mehr

DATENBANKEN MIT DELPHI. Herausgegeben von der Redaktion. Toolbox. Computer & Literatur Verlag GmbH

DATENBANKEN MIT DELPHI. Herausgegeben von der Redaktion. Toolbox. Computer & Literatur Verlag GmbH DATENBANKEN MIT DELPHI 11 Herausgegeben von der Redaktion Toolbox ИЗ Computer & Literatur Verlag GmbH Inhaltsverzeichnis Fundamente 9 1 Die Grundlagen von Datenbanken 11 1.1 Das Speichern von Daten 15

Mehr

Inhaltsverzeichnis. Vorwort 13

Inhaltsverzeichnis. Vorwort 13 Vorwort 13 1 Leistungsvermögen und Arbeitsumgebung des SQL Server 17 1.1 Einsatzmöglichkeiten des SQL Server 17 1.1.1 Online Transactional Processing-Lösungen (OLTP) 23 1.1.2 Webbasierte Datenbanklösungen

Mehr

Festplatte klonen: Tutorial

Festplatte klonen: Tutorial Festplatte klonen: Tutorial Allgemein Es gibt sicherlich schon sehr viele Anleitungen dazu, wie man eine Festplatte klont. Der Grund, warum ich also eine eigene Anleitung schreibe ergibt sich daraus, dass

Mehr

mit konventionellen Datenbanksystemen konventionellen Datenbanksystemen

mit konventionellen Datenbanksystemen konventionellen Datenbanksystemen Stream-Verwaltung mit konventionellen Datenbanksystemen Christian Rensch.06.005 Seminar Data Streams Thema Verwaltung von Datenströmen in konventionellen Datenbanksystemen optimiert auf Daten geringer

Mehr

Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt.

Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt. Sommersemester 211 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 11 vom 2.6.211 bis 24.6.211 Aufgabe 1: Interprozesskommunikation In der Vorlesung

Mehr

Datenzugriffskomponente mit JPA 2.1

Datenzugriffskomponente mit JPA 2.1 Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der

Mehr

ODBC-Verbindungen in Oracle-Datenbanken nutzen

ODBC-Verbindungen in Oracle-Datenbanken nutzen ODBC-Verbindungen in Oracle-Datenbanken nutzen Bereits in der Vergangenheit haben wir verschiedene Möglichkeiten beschrieben, wie sich Daten aus externen Quellen in AutoCAD Map über die ODBC-Verbindung

Mehr

Report Builder 6.1 Einsteiger

Report Builder 6.1 Einsteiger Disclaimer Die in den Unterlagen enthaltenen Angaben und Daten können ohne vorherige Ankündigung geändert werden. Die in den Beispielen verwendeten Namen von Firmen, Organisationen, Produkten, Domänennamen,

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und

Mehr

MTF60 AT/BT Universeller USB magnetischer Temperaturfühler in Miniaturbauweise

MTF60 AT/BT Universeller USB magnetischer Temperaturfühler in Miniaturbauweise Beschreibung: Der MELTEC magnetische Temperaturfühler MTF60 wird direkt am USB- Port eines PCs betrieben. Beim MTF60 wird bis zu 0,1 C genau gemessen. Der MELTEC Sensor in Verbindung mit Poseidon Network

Mehr

UT60/150 AT/BT Universelles USB - Temperaturmessgerät in Miniaturbauweise

UT60/150 AT/BT Universelles USB - Temperaturmessgerät in Miniaturbauweise Beschreibung: Der MELTEC Temperatursensor UT150-AT wird direkt am USB- Port eines PCs betrieben. Beim UT60-AT wird bis zu 0,1 C genau gemessen. Der MELTEC Sensor bildet in Verbindung mit Poseidon Network

Mehr

18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik

18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik 18. Hinweise zur schriftlichen Abiturprüfung 2021 im Fach Informatik A. Fachbezogene Hinweise Grundlage für die schriftliche Abiturprüfung 2021 in Niedersachsen sind die Einheitlichen Prüfungsanforderungen

Mehr

Universelles USB - Temperaturmessgerät in Miniaturbauweise

Universelles USB - Temperaturmessgerät in Miniaturbauweise Beschreibung: Der MELTEC Temperatursensor UT150-AT wird direkt am USB- Port eines PCs betrieben. Beim UT60-AT wird bis zu 0,1 C genau gemessen. Der MELTEC Sensor bildet in Verbindung mit Poseidon Network

Mehr

Jobkonfiguration bei den Uploadtypen Lokal, UNC, FTP und SSH

Jobkonfiguration bei den Uploadtypen Lokal, UNC, FTP und SSH Jobkonfiguration bei den Uploadtypen Lokal, UNC, FTP und SSH AUVESY GmbH Fichtenstraße 38B D-76829, Landau Deutschland Inhalt Jobkonfiguration bei den Uploadtypen Lokal, UNC, FTP und SSH 3 Wie werden die

Mehr

Ein Embedded System zur Digitalen Signatur nach dem DICOM-Standard

Ein Embedded System zur Digitalen Signatur nach dem DICOM-Standard Ein Embedded System zur Digitalen Signatur nach dem DICOM-Standard DICOM-Treffen, 05. Juli 2003 in Mainz B. Schütze, M. Kroll, T. Geisbe, H.-G. Lipinski, T. J. Filler Sie erwartet im Folgenden Motivation

Mehr

Performance-Vergleich zwischen InterSystems Caché und Oracle in einer Data-Mart-Applikation

Performance-Vergleich zwischen InterSystems Caché und Oracle in einer Data-Mart-Applikation Performance-Vergleich zwischen InterSystems Caché und Oracle in einer Data-Mart-Applikation Kurzfassung Im Rahmen einer simulierten Data-Mart-Applikation testete ein globaler Anbieter von Software für

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

Mehr

SQL Data Manipulation Language (DML) und Query Language (QL)

SQL Data Manipulation Language (DML) und Query Language (QL) Innsbruck Information System University of Innsbruck School of Management Information Systems Universitätsstraße 15 6020 Innsbruck SQL Data Manipulation Language (DML) und Query Language (QL) Universität

Mehr

Query Result Caching. Optimierung des Datenbankzugriffs

Query Result Caching. Optimierung des Datenbankzugriffs Query Result Caching Optimierung des Datenbankzugriffs Andreas Hubmer 19.11.2012 Inhalt Problemstellung Tabellen-Cache DBProxy Objekt-Cache 1 st -/2 nd -Level Cache Query Cache 2 Problemstellung Application-

Mehr

Installation von Web Attached Backup V 13

Installation von Web Attached Backup V 13 Installation von Web Attached Backup V 13 Seite 1 von 24 Inhalt: BEVOR SIE MIT DER INSTALLATION BEGINNEN:... 3 INSTALLATION DS-CLIENT... 4 INSTALLATION DER DS-RECOVERY TOOLS... 14 BACKUPSÄTZE EINRICHTEN...

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

Mehr

Freiberuflicher IT-Berater Schwerpunkte: Unix, Oracle, Netzwerk. IT-Berater. Dipl.-Inform.

Freiberuflicher IT-Berater Schwerpunkte: Unix, Oracle, Netzwerk.     IT-Berater. Dipl.-Inform. Freiberuflicher Schwerpunkte: Unix, Oracle, Netzwerk 1 Oracle Data Guard Oracle Standby Database Höhere Verfügbarkeit und Datensicherheit 2 Oracle Data Guard Oracle Standby Database Konzepte Erzeugen und

Mehr

Enthaltene Programmänderungen. DMP-Assist Version 4.50

Enthaltene Programmänderungen. DMP-Assist Version 4.50 - 1 - Enthaltene Programmänderungen DMP-Assist Version 4.50 Inhaltsverzeichnis 1 Systemvoraussetzungen... 3 2 Datensicherung vor dem Update... 3 3 Die Installation des Updates... 5 3.1. Wichtige Hinweise

Mehr

UTC-200K1200 Universelles USB - Thermoelementmessgerät in Miniaturbauweise

UTC-200K1200 Universelles USB - Thermoelementmessgerät in Miniaturbauweise Beschreibung: Der MELTEC Temperaturfühler UTC-200K1200 wird direkt am USB- Port eines PCs betrieben. Der UT- C-200K1200 hat einen Temperaturbereich von -200 C bis 1200 C mit einer Genauigkeit ± 1 C. Der

Mehr

Wiederherstellen des Android-Betriebssystems

Wiederherstellen des Android-Betriebssystems Wiederherstellen des Android-Betriebssystems Geräte mit Rockchip RK3288-Prozessor Copyright c 2017 MEDION AG 06.12.2017 1 Überblick Dieses Dokument beschreibt, wie Sie auf Ihrem MEDION-Gerät mit einem

Mehr

UKS EditUserKalender. Kalendereinträge im persönlichen Notes Kalender erzeugen & mögliche Probleme vermeiden

UKS EditUserKalender. Kalendereinträge im persönlichen Notes Kalender erzeugen & mögliche Probleme vermeiden UKS EditUserKalender Kalendereinträge im persönlichen Notes Kalender erzeugen & mögliche Probleme vermeiden Agent EditUserKalender UKS verfügt über einen Mechanismus, der es erlaubt, vollautomatisch sämtliche

Mehr

Reporting Lösungen für APEX wähle Deine Waffen weise

Reporting Lösungen für APEX wähle Deine Waffen weise Reporting Lösungen für APEX wähle Deine Waffen weise Dietmar Aust Opal-Consulting Köln Schlüsselworte: Oracle APEX, Reporting, JasperReports, PL/PDF, BI Publisher, OPAL:XP, Doxxy, Oracle Rest Data Services

Mehr

Probeklausur Datenbanken und Informationssysteme II

Probeklausur Datenbanken und Informationssysteme II Hochschule Karlsruhe Technik und Wirtschaft- 26.6.2014 Fakultät für Informatik und Wirtschaftsinformatik Probeklausur Datenbanken und Informationssysteme II Szenario: Poolräume, Softwareverteilung Aufgabe

Mehr

Enthaltene Programmänderungen. DMP-Assist Version 4.40

Enthaltene Programmänderungen. DMP-Assist Version 4.40 - 1 - Enthaltene Programmänderungen DMP-Assist Version 4.40 Inhaltsverzeichnis 1 Systemvoraussetzungen... 3 2 Datensicherung vor dem Update... 4 3 Die Installation des Updates... 6 3.1. Wichtige Hinweise

Mehr

Natürliche Häufigkeiten zur intuitiven Einführung der bedingten Wahrscheinlichkeiten Eine Idee für den Mathematikunterricht der gymnasialen Oberstufe

Natürliche Häufigkeiten zur intuitiven Einführung der bedingten Wahrscheinlichkeiten Eine Idee für den Mathematikunterricht der gymnasialen Oberstufe Natürliche Häufigkeiten zur intuitiven Einführung der bedingten Wahrscheinlichkeiten Eine Idee für den Mathematikunterricht der gymnasialen Oberstufe Axel Müller 7. Oktober 2017 1 Der Begriff der bedingten

Mehr

Dokumentation Lagerverwaltung Casper GmbH Version 1.0.0

Dokumentation Lagerverwaltung Casper GmbH Version 1.0.0 Dokumentation Lagerverwaltung Casper GmbH Version 1.0.0 1. Einleitung 2 2. Installation 2 2.1. Systemanforderungen 2 2.2. Installation der Datenbank 2 2.3. Installation der Software 3 2.4. Deinstallation

Mehr

Installationsanleitung für Haufe Advolux Kanzleisoftware ab Version 2.5 (Windows)

Installationsanleitung für Haufe Advolux Kanzleisoftware ab Version 2.5 (Windows) Installationsanleitung für Haufe Advolux Kanzleisoftware ab Version 2.5 (Windows) Verfasser : Advolux GmbH, AÖ Letze Änderung : 17.04.2012 Version : v2 1 Inhaltsverzeichnis 1. Hardware-Voraussetzungen...

Mehr

[ SQL] Wissen, das sich auszahlt

[  SQL] Wissen, das sich auszahlt [www.teia.de SQL] Wissen, das sich auszahlt INHALT SEITE 12 [I] 1] Einführung in SQL und relationale Datenbanken 12 14 16 18 11 1.1 1.2 Einführung Die Structured Query Language (SQL) Tabellen Mehrere Tabellen

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

Duplizieren von Report-Vorlagen für die Erstellung umfangreicher Reports (ab ArtemiS SUITE 7.2)

Duplizieren von Report-Vorlagen für die Erstellung umfangreicher Reports (ab ArtemiS SUITE 7.2) 02/16 für die Erstellung umfangreicher Reports (ab ArtemiS SUITE 7.2) In der ArtemiS SUITE steht eine sehr flexible Report-Funktion zur Verfügung, die Ihnen die übersichtliche Darstellung Ihrer Analyse-Ergebnisse

Mehr

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

Mehr

Die SQL-Schnittstelle

Die SQL-Schnittstelle Die SQL-Schnittstelle Merlin 16 Version 16.0 vom 09.10.2012 Inhalt Die SQL-Export-Schnittstelle... 4 Der Menüpunkt Abfrage durchführen... 4 Beschreibung Fenster Abfrage durchführen... 4 Schaltflächen Fenster

Mehr

MERCUR Messaging Konfigurationsbeispiele

MERCUR Messaging Konfigurationsbeispiele 2005 - Konfigurationsbeispiele Übersicht wird weltweit in den unterschiedlichsten Umgebungen eingesetzt. Je nach Anforderung, erstreckt sich das Einsatzgebiet von der einfachen passiven Postfachverwaltung

Mehr

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit Rheinisch-Westfälische Technische Hochschule Aachen Seminararbeit Analyse von General Purpose Computation on Graphics Processing Units Bibliotheken in Bezug auf GPU-Hersteller. Gregori Kerber Matrikelnummer

Mehr

Unsere Webapplikation erweitern

Unsere Webapplikation erweitern Unsere Webapplikation erweitern Um mit Play zu arbeiten: 1. Starten Sie zunächst den MySQL-Server. Führen Sie dazu auf dem USB-Stick mysql_start.cmd aus. 2. Sie brauchen eine Windows-Kommandozeile: Starten

Mehr

3D-Daten verwalten, verarbeiten und visualisieren

3D-Daten verwalten, verarbeiten und visualisieren 3D-Daten verwalten, verarbeiten und visualisieren 11.07.2016 Gliederung 1 Was ist PlexMap? 2 PlexMap-Magazine 3 PlexMap-Switchboard 4 PlexMap3D 5 Implementierung von PlexMap 08.03.2016 1. Was ist PlexMap?

Mehr

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.

Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 432 433 434 435 Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 436 437 438 439 440 441 442 443 Die verkürzte

Mehr

Datenbanken Implementierungstechniken SS2015

Datenbanken Implementierungstechniken SS2015 Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig University of Applied Sciences Parallele DBMS Datenbanken Implementierungstechniken SS2015 Alexander Müller Fakultät Informatik, Mathematik

Mehr

DZ-Manager Online-Tools Enterprise feature Benutzerdefinierte Dateien an Buchungsbestätigungsmails anhängen

DZ-Manager Online-Tools Enterprise feature Benutzerdefinierte Dateien an Buchungsbestätigungsmails anhängen DZ-Manager Online-Tools Enterprise feature Benutzerdefinierte Dateien an Buchungsbestätigungsmails anhängen Inhalt Kontakt / Support / Hilfe... 1 Möglichkeit, individuell erstellte Dateien an Buchungsbestätigungs

Mehr

Workflows in APEX mit Camunda

Workflows in APEX mit Camunda Workflows in APEX mit Camunda Maximilian Stahl MT AG Ratingen Schlüsselworte Oracle Applicaton Expres, APEX, Workflow, Arbeitsprozess, Open Source Workflow Engine, Camunda, BPMN Einleitung Vom Urlaubsantrag

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen

Mehr

Der Weg durch die Technik Technische Modul-Dokumentation

Der Weg durch die Technik Technische Modul-Dokumentation MicroStudio - Fotolia.com Der Weg durch die Technik Technische Modul-Dokumentation Der wohl größte Vorteil der ecommerce-plattform Magento liegt in seiner offenen und erweiterbaren Struktur. Module der

Mehr