Architektur: Verarbeitung komplexer Ereignisse

Auf dieser Seite wird eine Architektur für die Verarbeitung komplexer Ereignisse in Google Cloud beschrieben.

Mit Google Cloud können Sie die flexible und skalierbare Infrastruktur aufbauen, die für den Import großer Datenmengen, die Verarbeitung von Ereignissen und die Ausführung von Geschäftsregeln erforderlich ist. Jede Architektur zur Verarbeitung komplexer Ereignisse (CEP) muss in der Lage sein, Daten aus mehreren heterogenen Quellen zu importieren, komplexe Geschäftsregeln anzuwenden und ausgehende Aktionen auszuführen.

Das folgende Architekturdiagramm zeigt ein solches System und die zugehörigen Komponenten:

Grafik: Architektur zur Verarbeitung komplexer Ereignisse

Architekturübersicht

In diesem Abschnitt werden Details zur im Diagramm gezeigten Architektur aufgeführt. Die Architektur unterstützt die Streaming-Eingabe, die einen kontinuierlichen Datenfluss verarbeiten kann, sowie die Batch-Eingabe, die Daten als Datenblöcke mit beträchtlicher Größe verarbeitet.

Streamingeingabe

In Szenarien, in denen Nutzer- oder maschinengenerierte Echtzeitereignisse sofortige Maßnahmen erfordern, können Sie eine Streamingarchitektur zur Handhabung und Verarbeitung komplexer Ereignisse verwenden.

Anwendungen

Benutzergenerierte Ereignisse stammen oft aus Interaktionen innerhalb von Anwendungen, die vor Ort oder in der Cloud gehostet werden und in Form von Clickstreams, finanziellen Transaktionen oder Benutzeraktionen – wie etwa das Hinzufügen von Artikeln zu einem Einkaufswagen oder einer Wunschliste – auftreten können. Maschinell erzeugte Ereignisse können in Form von mobilen oder anderen Geräten auftreten, die Präsenz-, Diagnose-, oder ähnliche Datentypen melden. Es gibt verschiedene Plattformen zum Hosten von Anwendungen in Google Cloud:

  • App Engine ist ein PaaS-Dienst (Platform as a Service), der es Ihnen ermöglicht, Anwendungen direkt in einer verwalteten Umgebung mit Autoscaling bereitzustellen.
  • Google Kubernetes Engine ermöglicht eine detailliertere Steuerung containergestützter Anwendungen, mit der sich Container in Clustern einfach orchestrieren und bereitstellen lassen.
  • Compute Engine bietet leistungsstarke virtuelle Maschinen für maximale Flexibilität.

Transport

Unabhängig davon, ob Anwendungen lokal oder auf Google Cloud gehostet werden, müssen die von ihnen erstellten Ereignisse durch eine lose gekoppelte, hochverfügbare Benachrichtigungsschicht geleitet werden. Pub/Sub, ein globaler, robuster Nachrichtentransportdienst, unterstützt die native Konnektivität zu anderen Google Cloud-Diensten und bildet somit die Verbindung zwischen Anwendungen und der nachgelagerten Verarbeitung.

Batcheingang

Bei Szenarien mit großen Mengen an vor Ort oder in den Cloud-Datenanken gespeicherten historischen Daten können Sie einen Batch-orientierten Verarbeitungsansatz für den Import und die Bearbeitung komplexer Ereignisse wählen.

Datenquellen

Datenquellen, die zu verarbeitende Ereignisse enthalten, können sich lokal oder in Google Cloud befinden. Bei Datenquellen vor Ort können Sie Daten exportieren und anschließend in Cloud Storage für die nachgelagerte Verarbeitung kopieren. Sie können mithilfe von Downstream-Verarbeitungstools direkt auf Daten zugreifen, die in Datenbanken, die in der Cloud gehosteten sind, gespeichert sind. Es gibt verschiedene Plattformen, mit denen Sie unverarbeitete Ereignisdaten in Google Cloud speichern können:

  • Cloud Storage bietet Objektspeicher für Flat Files oder unstrukturierte Daten.
  • Cloud SQL speichert relationale Daten.
  • Datastore ist eine NoSQL-Datenbank, die dynamische Schemas und eine vollständige Datenindexierung unterstützt.

Verarbeitung und Speicher

Datenverarbeitung

Da Ereignisdaten von den Anwendungen über Pub/Sub eingespeist oder in andere Cloud-Datenquellen wie Cloud Storage, Cloud SQL oder Datastore geladen werden, müssen Sie die Daten möglicherweise transformieren, anreichern, aggregieren oder generelle Berechnungen auf sie anwenden. Dataflow wurde entwickelt, um diese Aufgaben für Streaming- oder Batch-Daten mithilfe eines einfachen Pipeline-basierten Programmiermodells auszuführen. Dataflow führt diese Pipelines auf einem verwalteten Dienst aus, der bei Bedarf elastisch skaliert wird. Bei CEP-Arbeitslasten können Sie Dataflow verwenden, um Daten aus mehreren heterogenen Quellen zu normalisieren und sie in eine einzige konsistente Darstellung zu formatieren.

Ereignisspeicher

In dieser Architektur verarbeitet Dataflow Ereignisdaten und normalisiert diese als einzelne konsistente Zeitachsendarstellung. Anschließend werden die Daten in Cloud Bigtable gespeichert, einem vollständig verwalteten NoSQL-Datenbankdienst. Bigtable ermöglicht einen konsistenten Datenzugriff mit niedriger Latenz und hohem Durchsatz, der sich für eine nachgelagerte Verarbeitung und analytische Arbeitslasten eignet. Weitere Informationen zum Speichern von Zeitachsendaten in Bigtable finden Sie unter Schemadesign für Zeitachsendaten.

Ausführung von Regeln

Im Kern der CEP-Systeme sind Regeln, die für eingehende Ereignisse ausgeführt werden müssen. Regelmodule können zwischen einfachen, benutzerdefinierten, domainspezifischen Sprachen und komplexen Verwaltungssystemen für Geschäftsregeln variieren. Unabhängig von der Komplexität des Regelmoduls kann es in verteilter Form entweder mit Dataflow oder Dataproc, einem verwalteten Dienst zur Ausführung von Hadoop- oder Spark-Clustern, bereitgestellt werden. Durch die Nutzung eines dieser Systeme können Sie komplexe Regeln bei großen Mengen an Zeitachsenereignissen ausführen und die Ergebnisse dieser Regelbewertungen dann für ausgehende Aktionen nutzen.

Ausgehende Aktionen

Sobald eingehende Ereignisse von den Mechanismen zur Ausführung von Regeln verarbeitet wurden, können die Ergebnisse in eine Reihe von ausgehenden Aktionen umgewandelt werden. Diese Aktionen können Push-Benachrichtigungen für Mobilgeräte, Benachrichtigungen für andere Anwendungen oder das Senden von E-Mails an Nutzer umfassen. Für die Übermittlung der Aktionen können Sie Nachrichten über Pub/Sub an lokal oder in Google Cloud gehostete Anwendungen senden, unabhängig davon, ob sie in App Engine, GKE oder Compute Engine ausgeführt werden.

Analyse

Sie können die Ergebnisse der Regelausführung für die eingehenden Ereignisse in BigQuery speichern, um Untersuchungen und Analysen für Zwecke der Business Intelligence oder der Berichterstellung auszuführen. BigQuery ist ein verwaltetes Data Warehouse für Analysen im Petabytebereich, das SQL-ähnliche Abfragen und Verbindungen zu zusätzlichen nachgelagerten Analysetools unterstützt. Für datenwissenschaftlich orientierte Analysen bietet Datalab leistungsfähige Funktionen zur explorativen Datenanalyse anhand von Jupyter-Notebooks. Für Anwendungsfälle zum Verwenden von Daten für die Berichterstellung oder in Dashboards ermöglicht Google Data Studio das Erstellen von anpassbaren und teilbaren Berichten, die durch Abfrage- und Speicherfunktionen von BigQuery unterstützt werden.

Weitere Informationen