Lambda-Architektur

Zwei Männer diskutieren über Lambda-Architektur und schauen auf einen Laptop.

Lambda-Architektur kombiniert Batch- und Stream-basierte Datenverarbeitung, um eine niedrige Latenz und genaue Sicht auf zeitbasierte Betriebsdaten zu ermöglichen.

Ursprung von Lambda-Architektur

2011 stellte Nathan Marz in seinem Blog die Idee der Lambda-Architektur vor, um die mit MapReduce verbundenen Latenzen zu reduzieren. Das ursprüngliche Konzept wurde ausgeweitet auf Big Data in dem Papier von Nathan und James Warren, Big Data: Principles and Best Practices of Scalable Realtime Data Systems, veröffentlicht im Jahr 2013. Im Jahr 2014 schrieb Jay Kreps in Rader einen Artikel mit dem Titel Questioning the Lambda-Architektur , in dem er auf einige Nachteile hinwies, die er bei LinkedIn entdeckt hatte, und Alternativen vorschlug. Jay schlug die einfachere Kappa-Architektur vor, weil sie nur einen Streaming verwendet.

Warum ist Lambda-Architektur wichtig?

Bei einem reinen Stapelverarbeitungsansatz zum Abrufen von Daten muss man warten, bis ein Stapel abgeschlossen ist, bevor die abgerufenen Daten abgefragt werden können. Die Stapelverarbeitung hat den Nutzen , dass sie ressourcenschonend ist und einen hohen Durchsatz bietet.

Die Stream-Verarbeitung ist weniger effizient als die Stapelverarbeitung, bietet aber geringere Latenzzeiten, da die Datensätze sofort nach ihrer Erstellung abgerufen werden. Lambda-Architektur bietet die Unmittelbarkeit von Stream-Daten mit dem Durchsatz von Stapelverarbeitung und fügt eine Ebene der Fehlertoleranz hinzu, indem ein einzelner Punkt des Übertragungsfehlers entfernt wird. Die Quelldaten werden nicht verändert, so dass sie weiterhin verbindlich sind.

Die Bestandteile einer Lambda-Architektur

Nachfolgend finden Sie eine Übersicht über die Hauptkomponenten der Lambda-Architektur.

Die Quelldaten

Die Rohdatenquelle wird nicht verändert. Transformationen werden auf eine Kopie des Originals angewendet, um die Überprüfbarkeit zu gewährleisten. Die Batch- und Streaming verwenden denselben Datensatz.

Die Batch-Ebene

Die Batch-Schicht erzeugt Ansichten, während sie einen kompletten Datensatz transformiert. Diese Ansichten können im Falle von Fehlern oder Codeänderungen neu berechnet werden.

Die Geschwindigkeitsebene

Die Geschwindigkeitsebene nutzt die Stream-Verarbeitung, um die zeitlichen Lücken zu füllen, während eine Stapelaktualisierung läuft. Wenn der nächste Stapel abgeschlossen ist, können die vergangenen Daten gelöscht werden. Im Falle eines Ausfalls kann der gesamte Datensatz gestreamt werden, um die Datenverfügbarkeit zu erhöhen.

Die Servierschicht

Bei der Serving-Schicht handelt es sich in der Regel um eine Datenbank, die Join-Abfragen über die Batch- und die gestreamten Ausgabetabellen unterstützt, um eine einzige kohärente Ansicht des transformierten Datensatz zu liefern. Die Architektur schreibt keine bestimmte Datenbank- oder Dateisystemtechnologie vor, solange sie auf transparente Weise einen einheitlichen Ergebnissatz unterstützt, der sowohl auf die gestreamten als auch auf die im Batch-Verfahren erstellten Tabellen verweist.

Die Vorteile der Lambda-Architektur

Zu den wichtigsten Vorteilen der Lambda-Architektur gehören:

  • Der Nutzer sieht immer einen vollständigen und transformierten Datensatz.
  • Die Quelldaten sind unveränderlich, so dass die Ergebnismengen immer aus der Quelle neu erstellt werden können.
  • Keine Verzögerungen bei Aufzeichnungen, im Gegensatz zu einem reinen Batch-Ansatz.
  • Zwischenergebnisse können gespeichert werden, was das Debuggen von Code, der diese als Protokoll verwendet, erleichtert.
  • Die Verwendung von zwei Pfaden zum Abrufen der Rohdaten schafft eine hohe Verfügbarkeit, da entweder der Batch- oder der Streaming-Pfad bei Bedarf einen vollständigen Datensatz erstellen kann.

Die Kehrseite der Lambda-Architektur

Das Hauptproblem der Lambda-Architektur ist die Komplexität. Zwei verschiedene Mechanismen, jeder mit seiner eigenen Codebasis, bewegen Daten von einer Quelle zu einem Ziel, das Abfragen unterstützt. Eine Tabelle ist für Stapeldaten bestimmt, die andere für gedämpfte Daten. Abfragen müssen diese Tabellen verbinden, wobei Duplikate herausgefiltert werden, was sie langsamer macht. Die Batch- und Streaming müssen alle Datentransformationen durchführen.

Actian und die Data Intelligence Plattform

Die Actian Data Intelligence Platform wurde speziell dafür entwickelt, Unternehmen bei der Vereinheitlichung, verwalten und dem Verständnis ihrer Daten in hybriden Umgebungen zu unterstützen. Sie vereint Metadaten , Governance, Lineage, Qualitätsüberwachung und Automatisierung in einer einzigen Plattform. So können Teams sehen, woher die Daten kommen, wie sie verwendet werden und ob sie internen und externen Anforderungen entsprechen.

Durch seine zentrale Schnittstelle unterstützt Actian Erkenntnis über Datenstrukturen und -flüsse und erleichtert so die Anwendung von Richtlinien, die Lösung von Problemen und die abteilungsübergreifende Zusammenarbeit. Die Plattform hilft auch dabei, Daten mit dem geschäftlichen Kontext zu verbinden, damit Teams Daten effektiver und verantwortungsvoller nutzen können. Die Plattform von Actian ist so konzipiert, dass sie mit sich entwickelnden Datenökosystemen skaliert und eine konsistente, intelligente und sichere Datennutzung im gesamten Unternehmen unterstützt. Fordern Sie Ihr persönliches Demo an.

FAQ

Lambda-Architektur batch- und streambasierte Datenverarbeitung, um eine niedrige Latenz einen genauen Überblick über zeitbasierte Betriebsdaten zu bieten.

Nathan Marz führte Lambda-Architektur , um die bei MapReduce auftretenden Latenzen zu verringern, und erweiterte das Konzept später Big Data James Warren in ihrer Veröffentlichung aus dem Jahr 2013 auf den Bereich Big Data .

Zu den Vorteilen zählen, dass Benutzer stets einen vollständig transformierten Datensatz sehen, keine Verzögerungen bei den Datensätzen auftreten, die Möglichkeit besteht, Ergebnisse aus unveränderlichen Quelldaten neu zu generieren, eine einfache Fehlerbehebung durch gespeicherte Zwischenergebnisse sowie eine hohe Verfügbarkeit durch doppelte Datenpfade.

Die Rohdatenquelle bleibt unverändert, um die Nachvollziehbarkeit zu gewährleisten; die Transformationen werden auf eine Kopie des Originals angewendet, sodass die Ergebnismengen jederzeit aus der Quelle rekonstruiert werden können.

Das Hauptproblem ist die Komplexität: Es sind zwei verschiedene Codebasen für den Datentransfer erforderlich, separate Tabellen für Batch- und Streaming-Daten sowie Abfragen, die Tabellen verknüpfen und gleichzeitig Duplikate herausfiltern müssen.

Lambda-Architektur sowohl Batch- als auch Streaming , während die 2014 von Jay Kreps vorgeschlagene Kappa-Architektur einfacher ist und ausschließlich einen Streaming verfolgt.

 

Die Speed-Ebene nutzt Stream-Verarbeitung, um Zeitlücken zu füllen, während eine Stapelaktualisierung läuft, und sobald der nächste Stapel abgeschlossen ist, können die historischen Daten gelöscht werden.

Die drei Schichten sind die Batch-Schicht (die durch die Transformation vollständiger Datensätze Ansichten generiert), die Speed-Schicht (die mithilfe von Stream-Verarbeitung Zeitlücken während Batch-Aktualisierungen füllt) und die Serving-Schicht (die Batch- und gestreamte Ausgabetabellen zusammenführt, um eine einheitliche Ansicht bereitzustellen).