Kapitel 1. Einführung in die Echtzeitanalyse
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Es ist ein großer Wettbewerbsvorteil, in Echtzeit zu sehen, was mit deinen Daten passiert.
Hilary Mason, Gründerin und CEO von Fast Forward Labs
Viele Daten in einem Unternehmen gelten als unbegrenzt, weil sie nach und nach anfallen. Kunden, Arbeitgeber und Maschinen haben gestern und heute Daten produziert und werden auch morgen noch weitere Daten produzieren. Dieser Prozess endet nie, es sei denn, du gehst aus dem Geschäft, also ist der Datensatz nie in irgendeiner Weise vollständig.
Hinweis
Von den Unternehmen, die am Confluent's Business Impact of Data Streaming: State of Data in Motion Report 2022 teilgenommen haben, haben 97% Zugang zu Echtzeit-Datenströmen, und 66% haben einen umfassenden Zugang.
Heute setzen viele Unternehmen Streaming-Daten und Echtzeitanalysen ein, um schnellere, zuverlässigere und genauere Entscheidungen zu treffen und so einen Wettbewerbsvorteil in ihrem Marktsegment zu erlangen.
Dieses Kapitel bietet eine Einführung in das Streaming und die Echtzeitanalyse. Wir beginnen mit einer Auffrischung des Wissens über Streaming-Daten, bevor wir erklären, warum Unternehmen auf diese Daten Analysen anwenden wollen. Nachdem wir einige Anwendungsfälle durchgespielt haben, geben wir abschließend einen Überblick über die Arten von Echtzeitanalyse-Anwendungen, die wir erstellen können.
Was ist ein Event Stream?
Der Begriff Streaming beschreibt einen kontinuierlichen, nie endenden Datenfluss. Die Daten werden im Laufe der Zeit schrittweise zur Verfügung gestellt, was bedeutet, dass du darauf reagieren kannst, ohne warten zu müssen, bis der gesamte Datensatz verfügbar ist, damit du ihn herunterladen kannst.
Ein Datenstrom besteht aus einer Reihe von Datenpunkten, die zeitlich geordnet sind, also in chronologischer Reihenfolge, wie in Abbildung 1-1 dargestellt.
Jeder Datenpunkt repräsentiert ein Ereignis oder eine Veränderung im Zustand des Unternehmens. Das können z.B. Echtzeitereignisse sein, wie ein Strom von Transaktionen, die von einem Unternehmen kommen, oder Internet of Things (IoT)-Sensoren, die ihre Messwerte senden.
Eines haben alle Datenströme gemeinsam: Sie produzieren so lange Daten, wie das Unternehmen existiert. Ereignisströme werden von verschiedenen Datenquellen in einem Unternehmen erzeugt, in unterschiedlichen Formaten und Mengen.
Wir können einen Datenstrom auch als unveränderlichen, zeitlich geordneten Strom von Ereignissen betrachten, der Fakten über Zustandsänderungen im Unternehmen enthält. Zu diesen Quellen gehören unter anderem E-Commerce-Einkäufe, Spieleraktivitäten im Spiel, Informationen aus sozialen Netzwerken, Clickstream-Daten, Aktivitätsprotokolle von Webservern, Sensordaten und Telemetriedaten von angeschlossenen Geräten oder Instrumenten in Datenzentren.
Ein Beispiel für ein Ereignis ist das folgende:
Ein Benutzer mit der ID 1234 hat Artikel 567 für $3,99 am 2022/06/12 um 12:23:212 gekauft.
Ereignisse sind eine unveränderliche Darstellung von Fakten, die in der Vergangenheit passiert sind. Die Fakten dieses Ereignisses sind in Tabelle 1-1 dargestellt.
Fakt | Wert |
---|---|
Benutzer-ID |
1234 |
Artikel gekauft |
567 |
Bezahlter Preis |
$3.99 |
Durch das Sammeln und Analysieren von Ereignisströmen können Unternehmen Erkenntnisse über ihre Kunden gewinnen und diese nutzen, um ihr Angebot zu verbessern. Im nächsten Abschnitt werden wir verschiedene Methoden zur Auswertung von Ereignissen diskutieren.
Den Sinn von Streaming-Daten verstehen
Ereignisse haben eine begrenzte Lebensdauer. Der Geschäftswert von Ereignissen nimmt im Laufe der Zeit schnell ab, wie in Abbildung 1-2 dargestellt.
Je eher du das Verhalten von Ereignissen verstehst, desto eher kannst du reagieren und dein Geschäftsergebnis maximieren. Wenn wir zum Beispiel ein Ereignis haben, bei dem ein Nutzer seinen Warenkorb abgebrochen hat, können wir ihn per SMS oder E-Mail kontaktieren, um herauszufinden, warum das passiert ist. Vielleicht können wir ihm einen Gutschein für einen der Artikel in seinem Warenkorb anbieten, um ihn dazu zu bewegen, zurückzukommen und die Transaktion abzuschließen.
Das funktioniert aber nur, wenn wir in der Lage sind, in Echtzeit auf den Abbruch des Warenkorbs zu reagieren. Wenn wir ihn morgen entdecken, hat der/die Nutzer/in wahrscheinlich vergessen, was er/sie getan hat und wird unsere E-Mail wahrscheinlich ignorieren.
Was ist Echtzeit-Analytik?
Echtzeit-Analytik (RTA) beschreibt einen Ansatz zur Datenverarbeitung, der es uns ermöglicht, aus Ereignissen Wert zu schöpfen, sobald sie verfügbar sind.
Tipp
Wenn wir in diesem Buch den Begriff Echtzeit verwenden, bezieht sich auf weiche Echtzeit. Verzögerungen durch Netzwerklatenzen und Speicherbereinigung können die Lieferung und Verarbeitung von Ereignissen um Hunderte von Millisekunden oder mehr verzögern.
Die Echtzeitanalyse unterscheidet sich wesentlich von der Stapelverarbeitung, bei der wir Daten in Stapeln sammeln und sie dann verarbeiten, oft mit einer recht langen Verzögerung zwischen Ereigniszeit und Verarbeitungszeit.Abbildung 1-3 zeigt eine visuelle Darstellung der Stapelverarbeitung.
Im Gegensatz dazu reagieren wir bei Echtzeit-Analysen direkt nach dem Ereignis, wie in Abbildung 1-4 dargestellt.
Früher war die Stapelverarbeitung die einzige Möglichkeit der Datenanalyse, aber dafür mussten wir künstliche Zeitgrenzen ziehen, um die Daten leichter in Stücke von fester Dauer zu unterteilen und sie in Stapeln zu verarbeiten. So konnten wir zum Beispiel die Daten eines Tages am Ende jedes Tages oder die Daten einer Stunde am Ende jeder Stunde verarbeiten. Das war vielen Nutzern zu langsam, weil es veraltete Ergebnisse lieferte und es ihnen nicht ermöglichte, auf Dinge zu reagieren, die gerade passieren.
Im Laufe der Zeit wurden die Auswirkungen dieser Probleme verringert, indem die Größe der zu verarbeitenden Batches auf die Minute oder sogar auf die Sekunde reduziert wurde, was schließlich dazu führte, dass Ereignisse direkt nach ihrem Eintreffen verarbeitet wurden und feste Zeitscheiben aufgegeben wurden. Und genau das ist die Idee hinter der Echtzeitanalyse!
Echtzeit-Analysesysteme erfassen, analysieren und verarbeiten Ereignisse, sobald sie verfügbar sind. Sie sind das unbegrenzte, inkrementell verarbeitete Gegenstück zu den Batch-Verarbeitungssystemen, die den Bereich der Datenanalyse jahrelang dominiert haben.
Vorteile von Echtzeit-Analysen
Geschwindigkeit ist ein entscheidender Faktor bei der Entscheidungsfindung . Unternehmen, die schnell genug sind, um Ereignisse zu verstehen und darauf zu reagieren, werden häufiger zum Marktführer, während andere auf der Strecke bleiben. Daher kann ein Echtzeit-Analysesystem in vielerlei Hinsicht von Vorteil für Unternehmen sein, wie in Abbildung 1-5 dargestellt.
In diesem Abschnitt werden wir verschiedene Vorteile von Echtzeit-Analysesystemen untersuchen.
Neue Einkommensströme
Echtzeit-Analysen können auf verschiedene Weise neue Einnahmequellen für Unternehmen generieren . Indem sie Endnutzer/innen Zugang zu analytischen Abfragefunktionen gewähren, können Unternehmen brandneue datenzentrierte Produkte entwickeln, die so attraktiv sind, dass die Nutzer/innen für den Zugang bezahlen werden.
Außerdem können Echtzeit-Analysen die Attraktivität bestehender Anwendungen erhöhen, was zu einer stärkeren Einbindung und Bindung der Nutzerinnen und Nutzer sowie zu einer stärkeren Nutzung der Anwendung führt, was letztendlich mehr Umsatz für das Unternehmen bedeutet.
Rechtzeitiger Zugang zu Einblicken
Echtzeitanalysen ermöglichen eine bessere, schnellere und verbesserte Entscheidungsfindung, indem sie zeitnahen Zugang zu verwertbaren Erkenntnissen bieten. Unternehmen können ihre Gewinne maximieren und Verluste reduzieren, indem sie Ereignisse in Echtzeit verstehen und darauf reagieren. Die Analyse des Kundenverhaltens in Echtzeit führt zum Beispiel dazu, dass dynamische und gezieltere Marketingkampagnen gestartet werden können, die oft hohe Renditen erzielen. Auch ein Echtzeit-Temperaturüberwachungssystem kann Kosten senken, indem es die Klimaanlage aufgrund von Temperaturschwankungen abschaltet.
Reduzierte Infrastrukturkosten
Bei der herkömmlichen Batch-Verarbeitung werden die Daten Speicherung und Berechnung oft gekoppelt, was zu einem exponentiellen Anstieg der Infrastrukturkosten führt, wenn das Datenvolumen im Laufe der Zeit wächst. Bei der Echtzeit-Analyse werden die Daten verarbeitet, sobald sie ankommen, sodass keine kostspieligen Systeme zur Datenspeicherung und -verarbeitung erforderlich sind.
Verbesserte allgemeine Kundenerfahrung
Die Behebung von Kundenproblemen erforderte in der Vergangenheit einen eher reaktiven Ansatz, bei dem Probleme in langen Zeiträumen gemeldet, diagnostiziert und gelöst wurden. Mit Echtzeit-Analysen können sich Unternehmen proaktiv um ihre Kunden kümmern, indem sie ständig auf potenzielle Probleme achten und sie automatisch beheben, was die Kundenzufriedenheit insgesamt verbessert.
Anwendungsfälle für Echtzeit-Analytik
Echtzeit-Analysen sind nichts Neues, sondern in vielen Branchen schon seit langem bekannt: . In diesem Abschnitt werden wir uns einige reale Anwendungsfälle ansehen, in denen Echtzeit-Analysen anwendbar sind und bereits einen Mehrwert für Unternehmen bieten.
Es gibt eine Vielzahl von Anwendungsfällen für Echtzeitanalysen, und jeder Anwendungsfall stellt andere Anforderungen an den Abfragedurchsatz, die Abfragelatenz, die Abfragekomplexität und die Datengenauigkeit. Ein Anwendungsfall für Echtzeitmetriken erfordert eine höhere Datengenauigkeit, aber es ist in Ordnung, wenn die Abfragen etwas länger dauern, bis sie zurückkommen. Eine nutzerorientierte analytische Anwendung hingegen muss für die Abfragegeschwindigkeit optimiert sein.
Tabelle 1-2 beschreibt einige Anwendungsfälle und ihre Abfrageeigenschaften.
Anwendungsfall | Abfragedurchsatz (Abfragen/Sekunde) | Abfrage-Latenzzeit (p95.) | Konsistenz & Genauigkeit | Komplexität der Abfrage |
---|---|---|---|---|
Nutzerorientierte Analytik |
Sehr hoch |
Sehr niedrig |
Beste Leistung |
Niedrig |
Personalisierung |
Sehr hoch |
Sehr niedrig |
Beste Leistung |
Niedrig |
Metriken |
Hoch |
Sehr niedrig |
Genaue |
Niedrig |
Erkennung von Anomalien |
Mäßig |
Sehr niedrig |
Beste Leistung |
Niedrig |
Analyse der Ursachen |
Hoch |
Sehr niedrig |
Beste Leistung |
Niedrig |
Visualisierungen & Dashboarding |
Mäßig |
Niedrig |
Beste Leistung |
Medium |
Ad-hoc-Analysen |
Niedrig |
Hoch |
Beste Leistung |
Hoch |
Log-Analysen & Textsuche |
Mäßig |
Mäßig |
Beste Leistung |
Medium |
Nutzerorientierte Analytik
Unternehmen generieren und sammeln schon seit langem riesige Datenmengen. Die Auswertung dieser Daten spielt eine entscheidende Rolle bei der Analyse des Nutzerverhaltens, des Wachstumspotenzials und der Umsatzausgaben, so dass Mitarbeiter und Führungskräfte wichtige Geschäftsentscheidungen treffen können.
Diese Analysen wurden meist innerhalb von Unternehmen durchgeführt, aber es gibt einen zunehmenden Wunsch, diese analytischen Fähigkeiten direkt den Endnutzern zur Verfügung zu stellen. Dadurch wird die Entscheidungsfindung demokratisiert und eine noch persönlichere Erfahrung ermöglicht. Der Begriff " nutzerorientierte Analytik" wurde geprägt, um diesen Prozess zu beschreiben.
Die wichtigsten Anforderungen sind ein hoher Durchsatz und eine niedrige Abfragelatenz, da dies direkte Auswirkungen auf das Nutzererlebnis hat.
Personalisierung
Personalisierung ist eine spezielle Art von nutzerorientierter Analytik , die dazu dient, das Produkterlebnis für einen bestimmten Nutzer zu personalisieren. Das kann bedeuten, dass ihnen Inhalte gezeigt werden, die sie besonders interessieren, oder dass sie Gutscheine erhalten, die ihren Interessen entsprechen.
Dazu werden die Aktivitäten und Produktinteraktionen eines Nutzers/einer Nutzerin durchgesehen und Echtzeitmerkmale extrahiert, die dann für personalisierte Empfehlungen oder Aktionen verwendet werden.
Metriken
Die Verfolgung von Geschäftskennzahlen in Echtzeit ermöglicht es uns, einen aktuellen Überblick über wichtige Leistungsindikatoren (KPIs) zu erhalten. So können Unternehmen Probleme erkennen und rechtzeitig proaktive Maßnahmen ergreifen, um sie zu lösen.
Diese Fähigkeit ist besonders wichtig für die operative Aufklärung, die Erkennung von Anomalien/Betrug und die Finanzplanung.
Dieser Anwendungsfall erfordert eine hohe Anzahl von Abfragen pro Sekunde und eine geringe Latenzzeit. Außerdem müssen wir ein hohes Maß an Datengenauigkeit erreichen.
Erkennung von Anomalien und Analyse der Grundursache
Erkennung von Anomalien und Ursachenforschung Die Analyse ist ein beliebter Anwendungsfall bei der Arbeit mit Zeitreihendaten. Zeitreihendaten sind eine Folge von Datenpunkten, die über einen bestimmten Zeitraum gesammelt wurden.
Im Kontext des E-Commerce könnten das Daten wie die Anzahl der Transaktionen pro Tag, der durchschnittliche Transaktionswert oder die Anzahl der Rücksendungen sein.
Bei derAnomalieerkennung geht es darum, ungewöhnliche Muster in Daten zu erkennen, die auf ein Problem hinweisen, das wir angehen müssen. Dieses Problem kann ein plötzlicher Anstieg der Bestellungen eines bestimmten Produkts sein oder sogar ein Hinweis auf betrügerische Aktivitäten.
Wie auch immer, wir müssen schnell herausfinden, was schief gelaufen ist. Es nützt nichts, wenn wir erst vor 24 Stunden erfahren, dass wir ein Problem hatten - wir müssen es jetzt wissen!
Und wenn wir festgestellt haben, dass etwas Ungewöhnliches passiert ist, müssen wir auch verstehen, welche Dimensionen für die Anomalien verantwortlich waren. Mit anderen Worten: Wir müssen die Ursache für das Problem finden.
Dieser Anwendungsfall führt zeitliche Scans und Group By-Abfragen mit einer hohen Anzahl von Abfragen pro Sekunde durch.
Visualisierung
Es wurde schon viel über den Tod des Dashboards gesagt, aber Dashboards spielen immer noch eine Rolle im Bereich der Echtzeit-Analytik.
Das kann ein einfaches Dashboard sein, das Kennzahlen in verschiedenen Diagrammen darstellt, oder ein komplexes Dashboard mit geografischer Visualisierung, Clustering, Trendanalyse und mehr. Der Hauptunterschied zu einem typischen Dashboard besteht darin, dass die Tabellen und Diagramme ständig aktualisiert werden, wenn neue Daten hinzukommen.
Die Serving-Schicht muss mit bestehenden Visualisierungslösungen wie Apache Superset und Grafana integriert werden.
Ad-hoc-Analytik
Analysten wollen oft Daten in Echtzeit untersuchen, um Probleme zu debuggen und Muster zu erkennen, während die Ereignisse aufgenommen werden. Das bedeutet, dass wir in der Lage sein müssen, SQL-Abfragen auf dem Serving Layer auszuführen.
Analysten werden auch einige Analysen durchführen wollen, die Echtzeitdaten mit historischen Daten kombinieren. Sie wollen z.B. sehen, wie sich das Geschäft in diesem Monat im Vergleich zum gleichen Monat in den Vorjahren entwickelt hat. Das bedeutet, dass wir entweder die historischen Daten in die Serving-Schicht einbringen oder eine verteilte SQL-Abfrage-Engine verwenden müssen, die mehrere Datenquellen kombinieren kann. Die Anzahl der Abfragen pro Sekunde wird langsam sein, aber die Abfragekomplexität wird wahrscheinlich hoch sein.
Log-Analyse/Textsuche
Die Durchführung von Textsuchanfragen in Echtzeit auf Anwendungsprotokolldaten ist ein weniger häufiger, aber dennoch wichtiger Anwendungsfall. Da die Protokolle oft unstrukturiert sind, müssen wir in der Lage sein, eine Textsuche im Regex-Stil auf diesen Daten durchzuführen, um Produktionsprobleme zu lösen.
Die Abfragen pro Sekunde sind bei den meisten Anwendungen niedrig, aber sie werden höher, wenn wir eine benutzerorientierte Anwendung debuggen.
Klassifizierung von Echtzeit-Analytik-Anwendungen
Nachdem du nun eine Einführung in Streaming-Daten und Echtzeit-Analysen sowie deren Vorteile und einige Anwendungsfälle aus der Industrie kennengelernt hast, führen dich die verbleibenden Kapitel des Buches durch den Prozess der Entwicklung von Echtzeit-Analyseanwendungen, um den Wert von Streaming-Daten zu nutzen.
Bevor wir mit der Entwicklung beginnen, sollten wir die Echtzeit-Analyseanwendungen anhand der Zielgruppe und der Anwendungsfälle, die sie bedienen, klassifizieren. Das hilft uns, den richtigen Anwendungstyp für unsere Analyseanforderungen auszuwählen.
Das Quadrantendiagramm in Abbildung 1-6 unterteilt Echtzeit-Analytik-Anwendungen in vier Kategorien entlang zweier Achsen.
Innenverkleidung versus Außenverkleidung
Es gibt zwei Arten von Echtzeit-Analyseanwendungen: interne und externe Anwendungen.
Intern bedeutet, dass die von den Anwendungen gewonnenen Erkenntnisse innerhalb der Unternehmensgrenzen genutzt werden, möglicherweise für interne Anwendungsfälle. Ein Beispiel wäre ein Transportunternehmen, das die Fahrzeugleistung überwacht, um die Treibstoffeffizienz zu optimieren und Wartungsprobleme zu erkennen, oder ein Telekommunikationsanbieter, der die Netzwerkleistung und -kapazität überwacht.
Extern bedeutet, dass die Erkenntnisse von einem Publikum außerhalb des Unternehmens, möglicherweise von Endnutzern, genutzt werden. Beispiele dafür wären der Nutzereiner Mitfahrzentrale, der den Standort seiner Mitfahrgelegenheit in Echtzeit verfolgt, oder eine App für das Gesundheitswesen, die die Vitalwerte von Patienten in Echtzeit verfolgt und Fachkräfte des Gesundheitswesens auf Veränderungen hinweist, die Aufmerksamkeit erfordern.
Traditionell wurden viel mehr Anwendungen für interne Nutzer entwickelt, weil das einfacher ist. Die Anzahl der Nutzer, die gleichzeitig auf eine interne Anwendung zugreifen, ist in der Regel relativ gering, und sie haben auch eine höhere Toleranz für Abfrage-Latenzzeiten - wenn eine Abfrage 10 Sekunden dauert, dann ist das eben so.
Externe Nutzer hingegen sind nicht annähernd so nachsichtig. Sie erwarten, dass Abfragen sofort Ergebnisse liefern, und es gibt viel mehr dieser Nutzer, die auf eine bestimmte Anwendung zugreifen und das System wahrscheinlich alle gleichzeitig nutzen. Andererseits bietet die Bereitstellung von Echtzeit-Analysen für externe Nutzer eine große Chance, wie in Abbildung 1-7 dargestellt.
Echtzeit-Analysen verbessern die Produkte, die wir externen Nutzern anbieten. Das wiederum bedeutet, dass mehr von ihnen diese Produkte nutzen und sich mit ihnen beschäftigen, wodurch wir mehr Daten generieren, die wir zur Entwicklung neuer Produkte nutzen können.
Maschinen- versus Menschengesicht
Die Analysen, die von Human-Facing-Anwendungen erstellt werden, werden über eine Benutzeroberfläche (z. B. ein Dashboard) bereitgestellt und von Menschen genutzt, z. B. von Entscheidungsträgern, Analysten, Bedienern, Ingenieuren und Endnutzern. Das Hauptziel dieser Anwendungen ist die interaktive Ad-hoc-Erkundung von Erkenntnissen.
Maschinennahe Analyseanwendungen werden von Maschinen genutzt, z. B. Microservices, Empfehlungsmaschinen und maschinelle Lernalgorithmen. Dabei wird die Logik zur Ableitung von Analysen vor der Ausführung in die Anwendung programmiert, sodass kein menschliches Eingreifen erforderlich ist. Geschwindigkeit und Genauigkeit sind die Hauptziele von maschinennahen Anwendungen, bei denen es Menschen oft misslingt, in großem Umfang zu liefern.
Zusammenfassung
In diesem Kapitel haben wir gelernt, wie Ereignisströme die Grundlage für Echtzeitanalysen bilden, d.h. für die Analyse von Ereignissen, sobald sie verfügbar sind. Außerdem haben wir die Vorteile von Echtzeitanalysen und einige Anwendungsfälle aus der Industrie erörtert. Schließlich haben wir Echtzeitanalyseanwendungen nach der Zielgruppe klassifiziert, für die sie bestimmt sind.
Im nächsten Kapitel tauchen wir tief in die Echtzeit-Analyse-Landschaft ein, um die wichtigsten Komponenten einer typischen Echtzeit-Analyse-Infrastruktur zu identifizieren.
Get Aufbau von Echtzeit-Analysesystemen now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.