🏠 » Lexikon » L » Lambda-Architektur

Lambda-Architektur

Eine Lambda-Architektur beschreibt einen Systemaufbau aus drei Bereichen, den sogenannten Layern, bestehend aus Batch Layer, Speed Layer und Serving Layer.

Die Architektur wurde von Nathan Marz entwickelt und gehört in den Bereich der sogenannten Big Data Technologien.

Eine Lambda-Architektur verwendet unterschiedliche Technologien zur Verarbeitung der riesigen Datenmengen. In den einzelnen Layern kommen spezialisierte Systeme, wie zum Besipiel Apache Hadoop, zum Einsatz, die für die jeweilige Aufgabe optimiert werden.

Einsatzbereich der Lambda-Architektur

Mit der Lambda-Architektur lassen sich riesige Datenmengen in relativ kurzer Zeit speichern und verarbeiten. Das Verarbeitungsprinzip leitet sich aus der funktionalen Programmierung ab, in der Daten nie verändert, sondern lediglich Kopien erzeugt und gespeichert werden.

Ausgehend von einer unveränderbaren Masterkopie werden die Datenverarbeitungsprozesse durchgeführt. Jede Änderung an einem Datensatz führt zur Speicherung einer neuenKopie“, eine Änderung (Update) wie es bei relationalen Datenbanksystemen üblich ist, gibt es nicht. Änderungen erzeugen somit Bewegungsdaten und können als Faktum angesehen werden, das zu einem bestimmten Zeitpunkt den aktuellen Zustand beschreibt oder beschrieben hat.

Die eigentlichen Informationen werden aus den einzelnen Fakten unmittelbar berechnet. Dieses Vorgehen entkoppelt die ermittelten Informationen von den vorhandenen Daten bzw. Fakten.

Die drei Ebenen der Lambda-Architektur

In der Lambda-Architektur gibt es drei sich ergänzende Layer, die auf einen Verarbeitungsprozess bzw. einen Aufgabenbereich spezialisiert sind. Wie in der Abbildung zu sehen, können die Daten über getrennte Wege (Batch Layer oder Speed Layer) über den Serving Layer bereitgestellt werden.

Batch Layer - Datenvorberechnung

Der Batch Layer verfügt über ein redundantes, verteiltes Verarbeitungssystem, in dem sehr große Datenmengen gleichzeitig verarbeitet und berechnet werden. Mit zunehmender Datenmenge erhöht sich auch die Laufzeit der Datenverarbeitung und kann mitunter mehrere Stunden umfassen. Bei der Berechnung wird auf Genauigkeit und Vollständigkeit geachtet.

Speed Layer - Lückenschließer

Im Speed Layer werden Echtzeit Ansichten der neuesten Daten berechnet und für externe Systeme zur Verfügung gestellt. Die Genauigkeit und Vollständigkeit spielt eine nachrangige Rolle. Ziel ist es die Latenzzeit des Batch Layers auszugleichen und eine vorläufige Datensicht bereitzustellen. Sind die Berechnungen im Batch Layer abgeschlossen, werden diese unmittelbar in den Speed Layer integriert.

Serving Layer - Datenlieferant

Die Ergebnisse des Batch und Speed Layers werden im Serving Layer gespeichert. Der Serving Layer ermöglicht die Bedienung von Ad-hoc Anfragen durch vorberechnete Datensichten oder aus dem vorgelagerten Verarbeitungsprozess.

Lambda-Architektur Definition & Erklärung | Datenbank Lexikon

Technologien in der Lambda-Architektur

Eine Lambda-Architektur verwendet unterschiedliche Technologien zur Verarbeitung der riesigen Datenmengen. In den einzelnen Layern kommen spezialisierte Systeme zum Einsatz, die für die jeweilige Aufgabe optimiert werden.

Im Batch Layer gilt Apache Hadoop quasi als Standard. Es ermöglicht eine parallele, verteilte und zuverlässige Berechnung hochfrequenter Datenmengen.

Der Speed Layer setzt auf Stream-Verarbeitungstechnologien wie Apache Storm oder Apache Spark.

Die Datenbereitstellung im Serving Layer erfolgt u. a. über dedizierte Datenbanken wie Apache Cassandra oder Apache HBase sowie Apache Hive und Elasticsearch.