Wir nennen dies ein Ereignis, wenn ein Knopf gedrückt wird; ein Sensor eine Temperaturveränderung erkennt oder eine Transaktion abläuft. Ein Ereignis ist eine Handlung oder ein Zustandswechsel, der für eine Anwendung wichtig ist.
Ereignisstromverarbeitung (ESP) bezieht sich auf eine Methode oder Technik, um die Daten in Echtzeit zu streamen, während sie durch ein System fließen. Das Hauptziel von ESP besteht darin, sich auf das Schlüsselziel zu konzentrieren, Maßnahmen auf den Daten zu ergreifen, sobald sie eintreffen. Dies ermöglicht Echtzeitanalysen und -aktionen, die in Szenarien wichtig sind, in denen eine latenzarme Reaktion eine Voraussetzung ist, z.B. Betrugserkennung, Überwachung und automatisierte Entscheidungsfindungssysteme. Muster spielen eine große Rolle in der ESP, da sie helfen, wichtige Sequenzen oder Verhaltensweisen in Daten zu erkennen, die ununterbrochen fließen.
Wie sieht das Muster der Ereignisstromverarbeitung aus?
Eine wiederkehrende Sequenz oder Kombination von Ereignissen, die in Echtzeit aus kontinuierlich fließenden Daten entdeckt und verarbeitet wird, nennen wir ein „Muster“ in der Welt der ESP. Lassen Sie uns nun die Muster in diese Kategorien einteilen,
Bedingungsbasierte Muster
Diese werden erkannt, wenn eine Reihe von Bedingungen des Ereignisstroms innerhalb eines bestimmten Zeitraums erfüllt sind. Zum Beispiel könnte ein Smart-Home-Automatisierungssystem feststellen, dass in keinem Raum seit zwei Stunden Bewegung war, alle Türen und Fenster geschlossen sind und es nach 22 Uhr ist. In diesem Fall könnte das System entscheiden, alle Lichter auszuschalten.
Aggregationsmuster
Wenn eine Gruppe von Ereignissen einen bestimmten Schwellenwert erreicht, zeigen sich Aggregationsmuster. Ein Beispiel wäre herauszufinden, wann eine bestimmte Anzahl von Klicks auf eine Anzeige innerhalb eines festgelegten Zeitraums eine Kampagnen- oder Marketingbenachrichtigung auslöst.
Zeitbezogene oder Temporale Muster
Das Finden von Ereignisfolgen innerhalb eines bestimmten Zeitrahmens wird als temporale Mustererkennung bezeichnet. Wenn beispielsweise mehrere Temperatursensoren in kurzer Zeit erhebliche Schwankungen zeigen, könnte dies auf ein mögliches Problem wie Überhitzung hinweisen.
Abnormalitäts- oder Anomalieerkennungsmuster
Der Zweck von Anomalie-Mustern besteht darin, außergewöhnliches oder unerwartetes Datenverhalten zu identifizieren. Ein plötzlicher Anstieg des Online-Verkehrs kann beispielsweise als Hinweis auf ein Systemüberlastung oder ein mögliches Sicherheitsrisiko interpretiert werden.
Wie vorteilhaft ist die Mustererkennung in ESP?
Um Systeme in der Lage zu versetzen, die Flut von massiven Mengen an Streaming-Daten in Echtzeit zu analysieren, zu verstehen und darauf zu reagieren, benötigen ESP-Systeme Mustererkennung. Muster können als Momentaufnahme-Abstraktionen betrachtet werden, die aus Ereignisströmen abgeleitet sind und dabei helfen, wichtige Sequenzen oder Verhaltensweisen innerhalb kontinuierlicher Datenströme zu erkennen. Da der Datenstrom in „Echtzeit“ auf uns zukommt, kann er nicht anhalten und auf uns warten. Daten warten auf niemanden! Tatsächlich kommen alle paar Sekunden oder Millisekunden mehr, je nach erwartetem Volumen. Daher sollten wir eine Methodik entwickeln, die automatisch nützliche Muster aus eingehenden Ereignisströmen findet, damit wir sofort informiert werden und unverzüglich handeln/entscheiden können, sobald eine interessante Trend, Anomalie oder ein Ereignis in diesem Strom auftritt.
Instantanes Entscheidungstreffen
Unternehmen können Entscheidungen sofort treffen, anstatt auf manuelle Analysen zu warten, indem sie auftretende wiederkehrende Muster erkennen. Beispielsweise könnte das automatische Kühlsystem einer Produktionsanlage so eingestellt werden, dass es reagiert, wenn es einen Trend steigender Temperaturen erkennt und so Schäden an der Maschinerie verhindert.
Verbesserte Automatisierung
Automatisierte Reaktionen auf bestimmte Ereignisse oder Bedingungen werden durch Muster ermöglicht. Dies reduziert den Bedarf an menschlichem Eingreifen und ermöglicht es Systemen, sich selbst in Reaktion auf erkannte Anomalien, Trends oder Ereignisse zu verwalten. Zum Beispiel kann ein Online-Zahlungssystem basierend auf erkannten Betrugstrends automatisch fragwürdige Transaktionen erkennen und blockieren.
Verbesserte Vorhersagefähigkeiten
Zukünftige Ereignisse können mithilfe von Mustererkennung vorhergesagt werden. Systeme können Trends, Kundenverhalten oder mögliche Probleme im System vorhersagen, indem sie historisches Verhalten untersuchen. Zum Beispiel können Muster im Nutzerverhalten auf einer E-Commerce-Website zukünftige Käufe vorhersagen und gezielte Werbeaktionen ermöglichen.
Eine Rolle der FlinkCEP-Bibliothek von Apache Flink
FlinkCEP, eine Bibliothek, die auf Apache Flink aufbaut, hilft Benutzern, komplexe Muster in Ereignisströmen zu erkennen. Apache Flink bietet eine solide Grundlage für die Streamverarbeitung. FlinkCEP konzentriert sich auf die komplexe Ereignisverarbeitung (CEP) für endlose Datenströme. Um FlinkCEP in Apache Flink für die Ereignisstromverarbeitung zu verwenden, müssen wir diese Hauptschritte befolgen, angefangen bei der Einrichtung der Umgebung, der Definition von Ereignismustern und der Verarbeitung von Ereignissen basierend auf diesen Mustern. Die Pattern-API ermöglicht es uns, Muster für den Ereignisstrom zu erstellen. Mit dieser API können wir komplexe Mustersequenzen erstellen, um aus dem Eingangsstrom zu extrahieren. Jede komplexe Mustersequenz besteht aus mehreren einfachen Mustern, d.h. Mustern, die nach einzelnen Ereignissen mit denselben Eigenschaften suchen.
Es gibt zwei Arten von Mustern: Singleton- und Schleifenmuster. Singleton-Muster entsprechen einem Ereignis, während Schleifenmuster mehrere Ereignisse abgleichen können. Beispielsweise möchten wir ein Muster erstellen, das eine Sequenz findet, in der eine große Transaktion (über 50k) vor einer kleineren stattfindet. Um den Ereignisstrom und das Muster zu verbinden, müssen wir die PatternStream-API verwenden. Nach Anwendung des Musters können wir die Funktion select()
verwenden, um Ereignisse zu finden, die damit übereinstimmen. Dies ermöglicht es uns, etwas mit den übereinstimmenden Mustern zu tun, wie z.B. eine Warnung zu senden oder eine andere Art von Aktion auszulösen. FlinkCEP unterstützt komplexere Muster wie Schleifen, Zeitfenster und Verzweigungen (d.h. die Ausführung eines Musters, wenn ein anderes übereinstimmt). Möglicherweise müssen wir auf die Leistung abstimmen, da unsere Muster komplexer werden.
Hinweis: Hier können Sie mehr über Beispiele und Implementierungen mit Java und Scala von Apache Flink Org lesen.
Zum Abschluss
Die Anwendung von Mustern auf die Verarbeitung von Ereignisströmen ist sehr wertvoll, da sie es Unternehmen ermöglicht, Dinge zu automatisieren, die operationelle Effizienz zu verbessern und schnellere, genauere Entscheidungen zu treffen. Mit der FlinkCEP-Bibliothek müssen wir nicht alle Verknüpfungen zwischen verschiedenen Ereignissen selbst verfolgen. Stattdessen erhalten wir eine leistungsstarke deklarative Schnittstelle zum Definieren von Mustern über Ereignisströme und zum Erfassen komplexer Ereignissequenzen über die Zeit, wie beispielsweise eine Abfolge von Aktionen oder seltene Kombinationen. Es gibt mehrere Herausforderungen und Einschränkungen, denen wir bei der Verwendung von FlinkCEP begegnen können, wie die Komplexität bei der Definition von Mustern, die Behandlung von Ereigniszeiten, Leistungseinbußen usw.
Bitte geben Sie diesem Beitrag ein „Daumen hoch“ und teilen Sie ihn, wenn Sie ihn hilfreich finden!
Source:
https://dzone.com/articles/detecting-event-stream-patterns-flinkcep