Um was geht es?

Die Bedeutung von Echtzeitdaten nimmt unaufhaltsam zu, sowohl im privaten als auch im geschäftlichen Bereich. Private Erfahrungen mit Echtzeitinformationen, sei es in sozialen Medien, Monitoring der Energiegewinnung der Photovoltaik-Anlage oder kollaboratives Arbeiten an einem Dokument, haben den Drang nach sofortigen Erkenntnissen verstärkt. Im Unternehmenskontext eröffnen sich bedeutende Anwendungsfälle für Real-time Analytics. Insbesondere die zeitnahe Verarbeitung, Analyse und anschließende Interpretation von Sensordaten oder Log-Analysen ebnen große Potenziale für die zukünftige Arbeitsweise und Reaktionsgeschwindigkeit.

Obwohl der Begriff „Real-time“ und „Analytics“ auf den ersten Blick gegensätzlich erscheinen mögen, ist es entscheidend zu erkennen, dass Realtime Analytics das Beste aus beiden Welten vereint. Während Analytics normalerweise auf historischen Daten basiert, erfordert Echtzeitanalyse die sofortige Anwendung von Wissen auf aktuellen Daten. Die Kappa-Architektur bietet einen Rahmen für solche Anwendungen, indem sie sowohl umfassende Vergangenheitsanalysen als auch Integrationen von Echtzeitdaten ermöglicht.

Real-time meets Analytics

Das Wort „Real-time Analytics“ ist nicht immer eingängig und intuitiv. Im Bereich „Analytics“ geht es um traditionellen analytischen Methoden und Machine Learning (ML), die historische Daten verwenden. Zudem gehen diese Methoden oft mit zeitintensiven Verarbeitungsprozessen einher, die nicht unmittelbar auf Echtzeitdaten reagieren können. „Real-time“ zielt aber genau darauf ab, Daten sofort nach ihrer Erzeugung erfassen, nutzen und dadurch Entscheidungen reaktiv treffen zu können. Wie können also historische- und Streaming-Daten in Kombination sofort und analytisch verarbeitet werden?

Hierzu braucht es eine Datenarchitektur, die den Anwender mit Echtzeitdaten versorgt und gleichzeitig in der Lage ist, die historische Betrachtung miteinzubeziehen. Die Kappa-Architektur bedient diese Funktionalität, indem ein sogenannter Speed-Layer (auch Hot Path genannt) zum Einsatz kommt, der beide Datenkategorien in Echtzeit verarbeiten kann.

Anforderungen an eine Kappa Architektur

  • Bewältigung aller Anwendungsfälle (Streaming, Batch, RPC) mit einer einzigen Architektur
  • Eine Codebasis, die immer synchronisiert ist
  • Eine einheitliche Infrastruktur und Technologie
  • Das Herzstück der Infrastruktur ist in Echtzeit skalierbar und zuverlässig
  • Verbesserte Datenqualität mit garantierter Reihenfolge und ohne Fehlanpassungen
  • Keine Neuarchitektur für neue Anwendungsfälle erforderlich
1
2
3
1

Es gibt viele unterschiedliche Quellsysteme, die real-time relevante Daten produzieren. Diese werden so konfiguriert, dass Datenänderungen ohne Verzögerung in den Real-Time-Layer weitergeleitet werden.

2

Der Speed-Layer unterstützt IoT-Szenarien mit Echtzeitdaten sowie historische Daten zu geschäftlichen Auswertungen.Dieser Ansatz vereinfacht Entwicklung und Wartung, da nur ein Layer bearbeitet werden muss. Die Daten können nach dem Ingest in Storages zur Historisierung, analytischen Verarbeitung oder für Batch-Anwendungen gesichert werden.

3

Die gespeicherten Daten werden für Echtzeit- und Batch-Anwendungen bereitgestellt, wo sie für Visualisierungen und ML-Prozesse genutzt werden.

Aufbau der Kappa-Architektur für Real-time Analytics

1. Was ist eine Kappa-Architektur?

Im Bereich Stream Processing existieren viele verschiedene Tools, die verwendet werden können, um das Verarbeiten von Streams zu realisieren. Um das volle Potenzial dieser Tools fundiert einsetzen zu können (Skalierung, Flexibilität, Wartbarkeit etc.), benötigt es, wie in der klassischen Softwareentwicklung auch, passende Architekturen. Im Streamingbereich hat sich die Kappa-Architektur etabliert. Die Kappa-Architektur ist eine Software-Architektur, die ereignisbasiert funktioniert und alle Daten in jeder Größenordnung in Echtzeit für transaktionale und analytische Workloads verarbeiten kann.

2. Wie lässt sich diese anwenden?

Jegliche eingehenden Daten werden in Echtzeit prozessiert, wobei nur ein Technologie-Stack benötigt wird, um Daten in Batches oder in Echtzeit zu verarbeiten. Die Streaming-Plattform speichert zunächst die eingehenden Daten. Diese werden nachfolgend mittels Stream-Processing-Engine kontinuierlich in Echtzeit weiterverarbeitet und an Geschäftsanwendungen weitergeleitet oder in eine Datenbank für Analysen abgelegt.

1
2
3
4
5
6
7
8
9
1

Der Akteur ist ein beliebiger Benutzer, der Daten in eine Dokumenten-Datenbank einstellt. Diese Daten werden später mit Streaming-Daten in Echtzeit angereichert.

2

Erfasst Echtzeitdaten und sendet diese direkt zur Verarbeitung in die Cloud.

3

Eine SQL-Datenbank, die Datenänderungen durch CDC (Change Data Capturing) erfasst und diese an den Consumer, in dem Fall den Ingestion-Service, sendet.

4

Der Ingestion-Service nimmt als Consumer die Streaming-Daten entgegen und kuratiert diese für die Weiterverarbeitung.

5

Die Stream Analytics-Komponente ist in der Lage, die Referenzdaten (langsame Daten) und Streaming-Daten in Echtzeit zu kombinieren undtransformieren sowie analysieren und schließlich zur weiteren Verwendung oder zur Persistierung weiterleiten.

6

Der Data Lake speichert Rohdaten und verarbeitet Daten zur langfristigen Aufbewahrung und Analyse.

7

Das DWH strukturiert die Daten für schnellere Abfragen und Berichte. Es enthält aggregierte und verarbeitete Daten, die sich aus ML-Modellen ergeben können.

8

Die Real-Time-Anwendung nutzt den Endpoint eines ML-Modells, um diesem Daten zur Prozessierung weiter zu leiten, bspw. zur Prognostizierung bestimmer Werte.

9

Es ergeben sich zwei Möglichkeiten, Datenvisualisierungen bereitzustellen. Die obere Variante aktualisiert Plots und Daten in Echtzeit. Die untere Variante bezieht sich auf die Batch-Verarbeitung und aktualisiert daher die Daten in regelmäßigen Abständen ohne den Anspruch auf Real-time.

Einbetten von Real-time Analytics in die Enterprise Architektur

Der Streaming-Ansatz basiert auf einer Event-Driven-Architecture (EDA), die in die restliche Architektur integriert werden muss. Durch Input-Adapter, können die Daten aus den verschiedenen Quellsystemen eingespeist und durch Output-Adapter in die Zielsysteme wie Real-time und Batch-Anwendungen übertragen werden. Die bestehenden Systeme können so durch diese Adapter mit der EDA interagieren und durch den Real-Time-Layer aufbereitet werden.

Parallel zur Kappa-Architektur müssen bei Streaming-Anwendungen jedoch besonders folgende drei Schichten über den gesamten Prozess hinweg berücksichtigt werden:

  • Security & Daten-Berechtigungen: Authentifizierung, Autorisierung und Auditing
  • Monitoring & Management: Die Überwachung und Nachvollziehbarkeit sind aufgrund der Asynchronität und der vielen beteiligten Komponenten komplexer.
  • Engineering: Die Modellierung, das Design, die Entwicklung und das Testen von Events und deren Verarbeitungslogik erfordern spezielle Kenntnisse.

Ohne diese Schichten kann ein reibungsloser Betrieb nicht sichergestellt werden.

Aufbau Enterprise Architektur mit Real-time Analytics

Real-time-Analytics in einem Use Case: CoffAI

In unserem Büro darf eines nicht fehlen: Kaffee. Doch einfach nur einen Kaffee während der Arbeit zu trinken, wäre für uns nicht genug. Wir haben zwei unserer Lieblingsthemen miteinander verknüpft. Kaffee und Artificial Intelligence. Oder wie es bei uns liebevoll heißt: CoffAI.

In unserem Use Case haben wir zwei mögliche Architekturen gegenübergestellt und darauf untersucht, wie viel Real-time Analytics sie wirklich bieten. Das Ergebnis kannst Du in folgendem Artikel nachlesen.

Nimm gerne Kontakt zu uns auf!

Ich hoffe, dass Dir diese Seite einen Überblick geben konnte, wie Unternehmen heute Real-time Analytics einsetzen können und wie die passende Architektur dafür aufgebaut wird

Wenn Du Fragen hast, melde Dich gerne bei mir. Ich stehe Dir gerne zur Verfügung.

Simon Kneller, Senior Consultant, Industrial Analytics & IoT

Simon Kneller
Lead Industrial Analytics & IoT