Überblick über die technologische Neuerung

In diesem Blogpost wollen wir das Potenzial der Speicherstrategie Tiered Storage und ihres Einsatzes in Real-time Analytics untersuchen. Die Idee, unter dem Gesichtspunkt der Kosteneffizienz Daten mit unterschiedlichen Haltbarkeitsanforderungen auf einem jeweils geeigneten Medium abzuspeichern, ist nicht neu. Ihre Anfänge sind, resultierend aus einer rasch wachsenden Datenflut, in den 1990ern zu verorten. Die immer bessere Verfügbarkeit von Objektspeichern in Cloudumgebungen und -diensten macht die Technologie auch für Real-time Streaming in analytischen Systemen interessant.

Was genau ist Tiered Storage?

Tiered Storage bezeichnet eine Speicherstrategie, bei der Daten je nach ihrem Nutzungsprofil und ihrer Zugriffsfrequenz auf verschiedenen Speicherebenen (Tiers) abgelegt werden.

Diese Tiers können verschiedene Technologien und Speicherarten umfassen, die sich in ihrer Leistung und ihren Kosten unterscheiden. Zwei wichtige Speicherebenen an den beiden Enden des Spektrums sind dabei einerseits Hochleistungs-Flash-Speicher (SSD). Diese schnellen und teuren Speicherlösungen eignen sich für Daten, die häufig abgefragt und verarbeitet werden müssen. SSDs bieten geringe Latenzzeiten und hohe IOPS (Input/Output Operations Per Second), was sie zu einem Topkandidaten für schnelle Datenzugriffe macht.

Auf der anderen Seite haben wir Langzeitspeicher (häufig cloudbasierte Blobstores). Diese Speicherlösungen sind für die Archivierung und langfristige Speicherung großer Datenmengen geeignet. Sie sind in der Regel die kostengünstigsten Optionen und werden verwendet, um historische Daten oder selten benötigte Informationen sicher aufzubewahren. Cloud-Storage bietet zusätzlich den Vorteil der Skalierbarkeit und einfachen Verwaltung.

Durch die Nutzung von Tiered Storage lassen sich Kosten optimieren und gleichzeitig hohe Leistungsanforderungen an Anwendungen erfüllen. Daten, die eine hohe Leistung erfordern, können auf schnellen Speichermedien gehalten werden, während weniger kritische Daten auf kostengünstigere Medien verschoben werden können. Dies ermöglicht eine effiziente Nutzung der verfügbaren Speicherressourcen und stellt sicher, dass die richtigen Daten zur richtigen Zeit am richtigen Ort sind.

Tiered Storage und die Kappa-Architektur

Tiered Storage kann in Verbindung mit der Kappa-Architektur eine effiziente Lösung für Real-time Analytics bieten. In einer Kappa-Architektur werden alle Datenströme in Echtzeit verarbeitet, was hohe Anforderungen an die Speichergeschwindigkeit und -flexibilität stellt. Tiered Storage unterstützt dies durch die Fähigkeit zur differenzierten Datenspeicherung.

Die Lambda-Architektur hingegen ist ein Datenverarbeitungsmuster, das darauf ausgelegt ist, massive Mengen von Daten effizient zu verarbeiten, indem es sowohl Batch- als auch Stream-Verarbeitungsansätze kombiniert. Diese Architektur ermöglicht es, sowohl Echtzeitdaten schnell zu verarbeiten als auch umfangreiche historische Datenanalysen durchzuführen. Sie hat allerdings den großen Nachteil, dass viele Transformationen sowohl im Batch mode als auch im Real-time mode durchgeführt werden müssen. Dadurch entstehen Doppelungen von Logik und außerdem müssen beim Datenzugriff die beiden Datenströme wieder zusammengeführt werden.

Während die Lambda-Architektur sowohl eine Batch- als auch eine Stream-Verarbeitungsschicht verwendet, vereinfacht und optimiert die Kappa-Architektur den Transformations- und Zusammenführungsaufwand durch die Verwendung eines einzigen Datenstroms. 

Vergleich Kappa und Lambda Architektur

Bei der Implementierung einer Kappa-Architektur ist die effiziente Verarbeitung von Echtzeit-Daten also von größter Bedeutung. Tiered Storage ermöglicht es, Daten entsprechend ihrer Relevanz und Nutzungshäufigkeit auf den geeigneten Speicherebenen abzulegen. Daten, die häufig abgefragt und verarbeitet werden, können auf schnellen SSDs gespeichert werden, während weniger häufig benötigte Daten auf kostengünstigeren HDDs oder sogar in Cloud-Speichern abgelegt werden.

Skalierbarkeit ist ein wichtiges Kriterium bei der Umsetzung einer Kappa-Architektur. Tiered Storage unterstützt diese Skalierbarkeit, indem es eine flexible Speicherlösung bietet, die je nach Bedarf erweitert werden kann. Datenmengen können exponentiell wachsen und eine gut implementierte Tiered-Storage-Strategie stellt sicher, dass die Speicherinfrastruktur mit diesem Wachstum Schritt halten kann.

Tiered Storage und Streaming in Apache Kafka

Um das Potenzial für sich zu nutzen, das die Speicherstrategie für Streaminglösungen bietet, wurde mit der Umsetzung von KIP-405 (Kafka Improvement Proposal) Tiered Storage für Apache Kafka verfügbar gemacht. Als wichtige Plattform in der Welt des Event Streamings eignet sich Apache Kafka, um an dieser Stelle nochmal einen genaueren Blick auf ein Implementierungsbeispiel für Tiered Storage zu werfen.

Ein wichtiger Konfigurationsparameter ist in diesem Zusammenhang die Retention Time. Sie erlaubt es, den Zeitraum anzupassen, für den Events zu speichern sind. Für viele Use Cases liegt sie zwischen sieben und 14 Tagen.

Bereits vor der Umsetzung von KIP-405 war es theoretisch möglich, diesem Parameter einen beliebig hohen Wert zuzuweisen. Das hatte jedoch ein schnelles Füllen der teuren lokalen Speicher zur Folge und war damit wenig praktikabel. Um etwa historische Daten zu speichern, benötigte man andere Ansätze.

Mit KIP-405 wurde der folgende Ablauf implementiert, um effiziente Speicherung innerhalb des Ökosystems auch über standardmäßige Retention Zeiten hinaus zu ermöglichen: Im ersten Schritt wird die Message wie seit jeher im lokalen Speicher abgelegt. Sobald ein Log Segment vollständig ist, wird es unter Umständen auch auf einem remote zugreifbaren Objektspeicher (beispielsweise AWS S3 Bucket) abgelegt. Es liegen dann zwei Repräsentationen der Daten vor, ein Hotset, die lokale Repräsentation, und ein Coldset, die Daten im Objektspeicher. Je nach Anforderung – etwa bezüglich der erlaubten Latenz – kann nun ein Client die passende Repräsentation ansprechen. Nach Ablauf der Retention Time für das Hotset (die Daten auf der lokalen Disk) wird ein Event gelöscht, kann aber bis zum Ablauf der Coldset Retention Time abgerufen werden.

Kafka Objektspeicherung

Um trotz der gestiegenen Datenmenge einen effizienten Zugriff zu ermöglichen, ist der Anbindung an den Remote Storage einerseits und einem wirksamen Metadatenmanagement andererseits besondere Aufmerksamkeit zu schenken. Hierfür stellt Apache Kafka je ein zu implementierendes Interface bereit.

Confluent demonstriert die Potenziale, die Tiered Storage eröffnet. Als wahrscheinlich prominentester Anbieter proprietärer Kafkaanwendungen, hat Confluent Tiered Storage bereits vor einiger Zeit für die Confluent Plattform implementiert. Hier stellt es eine der Säulen dar, auf denen Tableflow beruht. Ein mächtiges Werkzeug, welches die gleichzeitige Datenversorgung von Kafka Topics und Apache Iceberg Tables ermöglicht. Es kann somit als wichtige Schnittstelle zwischen analytischen und operativen Systemen fungieren.

Fazit

Tiered Storage optimiert also die Kosteneffizienz und Leistung, indem es Daten je nach Zugriffsfrequenz auf verschiedenen Speicherebenen ablegt. Dies unterstützt insbesondere die Kappa-Architektur bei der Echtzeit-Datenverarbeitung. Apache Kafka nutzt diese Strategie durch KIP-405 für effiziente Langzeitspeicherung. Confluent hat Tiered Storage erfolgreich in seine Plattform integriert, was die Relevanz dieser Technologie für moderne Datenverarbeitungssysteme demonstriert.

Real-Time Analytics im Unternehmensalltag: So optimieren Sie Ihre Entscheidungen mit Echtzeitdaten

Tagtäglich müssen Entscheidungen getroffen werden und benötigen verlässliche Daten, die oftmals eben auch in Echtzeit vorliegen müssen. Das Thema Real-time Analytics gewinnt in Unternehmen zunehmend an Bedeutung. Du hast dich nun gefragt, wie eine Real-time Analytics Architektur aussieht und eingebettet werden kann.

Genau diesen Punkten haben wir uns in einem unserer Artikel gewidmet und beantworten die Fragen „Warum benötigen Unternehmen Real-time Analytics?“ und „Wie kann die zugehörige Architektur aussehen?“.

CoffAI – Welche Architektur benötigt wie viel Echtzeit?

Wie lässt sich eine Echtzeitabfrage besser realisieren? Über eine Datenbankabfrage oder über eine Streamabfrage. Welche Methode benötigt welche Ressourcen? In unserem Blogpost analysieren wir beide Möglichkeiten anhand eines realen und live aufgezeichneten Beispiels.

Nimm gerne Kontakt zu uns auf!

In unserem duesentrieb Lab haben wir eine Reihe von Blogposts zum Thema Real-time Analytics verfasst. Wenn Du Fragen zu Einsatzzwecken oder Implementierungsmöglichkeiten hast, stehen wir Dir gerne Rede und Antwort. Wir freuen uns auf Dich!

Simon Kneller, Senior Consultant, Industrial Analytics & IoT

Simon Kneller
Lead Industrial Analytics & IoT