Spark Structured Streaming: Echtzeitmodus für Ultra-Low Latency
Apache Spark Structured Streaming dient seit langem als robuste Grundlage für hochskalierbare, unternehmenskritische Datenpipelines und ermöglicht alles von komplexen Streaming-ETL-Operationen (Extract, Transform, Load) bis hin zu nahezu Echtzeit-Analysen und Machine-Learning-Anwendungen. Mit der Einführung des “Echtzeitmodus”, eines neuen Trigger-Typs, der die Fähigkeiten von Spark auf eine völlig neue Klasse von Ultra-Low-Latency-Workloads ausdehnen soll, ist nun eine bedeutende Entwicklung im Gange. Diese Innovation verarbeitet Ereignisse, sobald sie eintreffen, und erreicht Latenzen von nur wenigen Dutzend Millisekunden, was einen erheblichen Fortschritt für sofortige Datenverarbeitungsanforderungen darstellt.
Im Gegensatz zu seinen Vorgängern, wie dem ProcessingTime
-Trigger, der nach festen Zeitplänen arbeitet, oder dem AvailableNow
-Trigger, der alle verfügbaren Daten verarbeitet, bevor er stoppt, bietet der Echtzeitmodus eine kontinuierliche Datenverarbeitung. Das bedeutet, dass Ergebnisse sofort ausgegeben werden, sobald sie bereit sind, was wirklich sofortige Anwendungsfälle ermöglicht. Unternehmen können Spark jetzt für Szenarien nutzen, die sofortiges Handeln erfordern, wie z.B. Echtzeit-Betrugserkennung, dynamische Personalisierung und das Bereitstellen von Machine-Learning-Features mit minimaler Verzögerung. Entscheidend ist, dass diese verbesserte Funktion nahtlos integriert werden kann, ohne dass bestehende Codebasen geändert oder Re-Platforming-Bemühungen für aktuelle Structured Streaming-Benutzer erforderlich sind. Dieser neue Modus wird dem Open-Source-Projekt Apache Spark beigesteuert und ist derzeit in der Public Preview auf Databricks verfügbar.
Im Kern liefert der Echtzeitmodus eine kontinuierliche, latenzarme Verarbeitung, indem er langlebige Streaming-Jobs ausführt, die Stages gleichzeitig planen. Daten fließen zwischen Aufgaben im Speicher, erleichtert durch eine Technik, die als Streaming Shuffle bekannt ist. Dieser Ansatz reduziert den Koordinationsaufwand erheblich, eliminiert die festen Planungsverzögerungen, die traditionellen Mikro-Batch-Modi eigen sind, und liefert konsistent eine Leistung im Sub-Sekunden-Bereich. Interne Databricks-Tests haben eine beeindruckende Leistung gezeigt, wobei die Latenzen im 99. Perzentil (p99) je nach Komplexität der beteiligten Datentransformationen von wenigen Millisekunden bis zu etwa 300 Millisekunden reichten. Zum Beispiel zeigten einige Benchmarks p99-Latenzen von nur wenigen Millisekunden, was seine Fähigkeit für anspruchsvolle Echtzeit-Anwendungen bestätigt.
Die Auswirkungen des Echtzeitmodus sind tiefgreifend für Streaming-Anwendungen, die schnelle Antwortzeiten erfordern, insbesondere solche, die integraler Bestandteil kritischer Geschäftsabläufe sind. Erste Anwender haben diese Technologie bereits in einer Vielzahl von Workloads eingesetzt und ihr transformatives Potenzial gezeigt. Zum Beispiel verarbeitet eine globale Bank jetzt Kreditkartentransaktionen von Kafka in Echtzeit und kennzeichnet verdächtige Aktivitäten innerhalb beeindruckender 200 Millisekunden. Diese Fähigkeit reduziert das finanzielle Risiko drastisch und beschleunigt die Reaktionszeiten, ohne eine vollständige Überarbeitung ihrer bestehenden Infrastruktur zu erfordern.
Über Finanzdienstleistungen hinaus revolutioniert der Echtzeitmodus personalisierte Erlebnisse im Einzelhandel und in den Medien. Ein Over-The-Top (OTT)-Streaming-Anbieter kann jetzt Inhaltsempfehlungen sofort aktualisieren, nachdem ein Benutzer eine Sendung beendet hat, während eine führende E-Commerce-Plattform Produktangebote neu berechnet, während Kunden browsen, und so durch Sub-Sekunden-Feedbackschleifen ein hohes Engagement aufrechterhält. Ähnlich nutzen große Reise-Websites diesen Modus, um die jüngsten Suchen jedes Benutzers über Geräte hinweg in Echtzeit zu verfolgen und anzuzeigen, wobei jede neue Abfrage den Sitzungscache sofort aktualisiert, wodurch personalisierte Ergebnisse und die automatische Vervollständigung ohne wahrnehmbare Verzögerung ermöglicht werden. Im Bereich des maschinellen Lernens verwendet eine Essensliefer-Anwendung den Echtzeitmodus, um Funktionen wie den Standort des Fahrers und die Zubereitungszeiten in Millisekunden zu aktualisieren. Diese Aktualisierungen fließen direkt in Machine-Learning-Modelle und benutzerorientierte Anwendungen ein, was zu einer verbesserten Genauigkeit der geschätzten Ankunftszeit (ETA) und einem verbesserten Kundenerlebnis führt.
Raja Kanchumarthi, Lead Data Engineer bei Network International, hob die greifbaren Vorteile hervor und erklärte: “Für eine geschäftskritische Zahlungsautorisierungspipeline, bei der wir Verschlüsselung und andere Transformationen durchführen, erreichten wir eine P99-End-to-End-Latenz von nur 15 Millisekunden. Wir sind optimistisch, diese latenzarme Verarbeitung über unsere Datenflüsse hinweg zu skalieren und dabei konsequent strenge SLAs einzuhalten.” Diese vielfältigen Anwendungen unterstreichen die Vielseitigkeit des Echtzeitmodus und demonstrieren seine Fähigkeit, Daten in sofortige Entscheidungen umzuwandeln, über ein Spektrum von Anwendungsfällen hinweg, von IoT-Sensoralarmen und Lieferkettentransparenz bis hin zu Live-Gaming-Telemetrie und In-App-Personalisierung.