Im Kontext von Datenbanken und Datenspeichersystemen ist eine Transaktion jede Operation, die als eine einzelne Arbeitseinheit behandelt wird, die entweder vollständig abgeschlossen wird oder überhaupt nicht abgeschlossen wird und das Speichersystem in einem konsistenten Zustand hinterlässt. Das klassische Beispiel für eine Transaktion ist das, was passiert, wenn Sie Geld von Ihrem Bankkonto abheben. Entweder hat das Geld Ihr Bankkonto verlassen oder nicht – es kann keinen Zwischenzustand geben.

ACID ist ein Akronym, das sich auf die vier Schlüsseleigenschaften bezieht, die eine Transaktion definieren: Atomicity (Atomität), Consistency (Konsistenz), Isolation (Isolation) und Durability (Dauerhaftigkeit). Wenn eine Datenbankoperation über die ACID-Eigenschaften verfügt, kann sie als ACID-Transaktion bezeichnet werden. Datenspeichersysteme, die solche Operationen durchführen, werden als Transaktionssysteme bezeichnet. ACID-Transaktionen garantieren, dass jedes Lesen, Schreiben oder Ändern einer Tabelle die folgenden Eigenschaften hat:
ACID-Transaktionen gewährleisten maximale Datenzuverlässigkeit und -integrität. Sie sorgen dafür, dass Ihre Daten zu keinem Zeitpunkt in einen inkonsistenten Zustand geraten, wenn beispielsweise Operationen nicht vollständig ausgeführt werden. Angenommen, Sie schreiben ohne ACID-Transaktionen einige Daten in eine Datenbanktabelle. Wenn nun unerwartet der Strom ausfällt, wäre es theoretisch möglich, dass nur einige, aber nicht alle Ihre Daten gespeichert worden sind. Infolgedessen befände sich Ihre Datenbank in einem inkonsistenten Zustand, der nur sehr schwer und zeitaufwändig korrigiert werden könnte.

ACID-Transaktionen gehörten lange Zeit zu den Alleinstellungsmerkmalen von Data Warehouses, aber dank Delta Lake gibt es sie jetzt auch in Data Lakes. Diese Transaktionen ermöglichen es Benutzern, selbst dann konsistente Ansichten ihrer Daten anzuzeigen, wenn neue Daten in Echtzeit in die Tabelle geschrieben werden, da es sich bei jedem Schreibvorgang um eine isolierte Transaktion handelt, die in einem chronologischen Transaktionsprotokoll vermerkt wird. [Delta Lake verwendet die höchstmögliche Isolationsstufe (serialisierbare Isolation), um sicherzustellen, dass Lese- und Schreibvorgänge in einer einzelnen Tabelle konsistent und zuverlässig sind.] Durch die Implementierung von ACID-Transaktionen beseitigt Delta Lake effektiv mehrere der zuvor aufgeführten Kritikpunkte an der Lambda-Architektur: ihre Komplexität, fehlerhafte Datensichten sowie Nacharbeiten und Neuverarbeitung, die nach dem zwangsläufigen Ausfall der Lambda-Pipelines erforderlich sind. Benutzer können mit ihren Daten mehrere Transaktionen gleichzeitig durchführen. Im Falle des Ausfalls einer Datenquelle oder eines Streams bricht Delta Lake die Ausführung der Transaktion ab, um sicherzustellen, dass die Daten sauber und intakt bleiben. Der größte Vorteil von ACID-Transaktionen besteht darin, dass Benutzer den in Delta Lake gespeicherten Daten vertrauen können. Ein Datenanalyst, der Delta Lake-Tabellen für ETL-Operationen an seinen Daten nutzt, um sie für die Darstellung im Dashboard vorzubereiten, kann sich darauf verlassen, dass die KPIs, die er sieht, den Istzustand der Daten widerspiegeln. Ein Machine Learning Engineer, der Delta Lake-Tabellen für die Feature-Entwicklung verwendet, kann zu 100 % sicher sein, dass alle Transformationen und Aggregationen entweder genau wie beabsichtigt oder aber überhaupt nicht ausgeführt wurden (in diesem Fall würde er benachrichtigt). Zu wissen, dass das Datenmodell, das Sie vor Ihrem geistigen Auge sehen, tatsächlich den echten zugrunde liegenden Zustand widerspiegelt, kann nicht hoch genug geschätzt werden.
