Direkt zum Hauptinhalt

Einführung von Delta Time Travel für Data Lakes im großen Maßstab

Introducing Delta Time Travel for Large Scale Data Lakes

Veröffentlicht: 4. Februar 2019

Ankündigungen6 min Lesezeit

Holen Sie sich eine Vorabversion von O'Reillys neuem E-Book mit der Schritt-für-Schritt-Anleitung, die Sie für die ersten Schritte mit Delta Lake benötigen.


Datenversionierung zur Reproduktion von Experimenten, zum Rollback und zur Überprüfung von Daten

Wir freuen uns, die Time-Travel-Funktionen in Databricks Delta Lake, der Unified-Analytics-Engine der nächsten Generation, die auf Apache Spark aufbaut, für alle unsere Benutzer einzuführen. Mit dieser neuen Funktion versioniert Delta automatisch die Big Data, die Sie in Ihrem Data Lake speichern, und Sie können auf jede historische Version dieser Daten zugreifen. Diese temporale Datenverwaltung vereinfacht Ihre Datenpipeline, indem sie die Überprüfung und das Rollback von Daten im Falle versehentlicher fehlerhafter Schreibvorgänge oder Löschungen sowie die Reproduktion von Experimenten und Berichten erleichtert. Ihr Unternehmen kann sich endlich auf ein sauberes, zentralisiertes und versioniertes Big-Data-Repository in Ihrem eigenen Cloud-Speicher für Ihre Analysen standardisieren.

Häufige Herausforderungen bei sich ändernden Daten

  • Änderungen an Auditsdaten: Die Überprüfung von Datenänderungen ist sowohl im Hinblick auf die Daten-Compliance als auch auf die einfache Fehlersuche von entscheidender Bedeutung, um zu verstehen, wie sich Daten im Laufe der Zeit verändert haben. Unternehmen, die von traditionellen Datensystemen auf Big-Data-Technologien und die Cloud umsteigen, haben in solchen Szenarien zu kämpfen.
  • Reproduzieren von Experimenten und Berichten: Während des Modelltrainings führen Data Scientists verschiedene Experimente mit unterschiedlichen Parametern auf einem bestimmten Datensatz durch. Wenn Wissenschaftler nach einiger Zeit ihre Experimente erneut aufgreifen, um die Modelle zu reproduzieren, wurden die Quelldaten in der Regel durch vorgelagerte Pipelines geändert. Oft werden sie von solchen vorgelagerten Datenänderungen überrascht und haben daher Schwierigkeiten, ihre Experimente zu reproduzieren. Einige Wissenschaftler und Organisationen entwickeln Best Practices, indem sie mehrere Kopien der Daten erstellen, was zu erhöhten Speicherkosten führt. Dasselbe gilt für Analysten, die Berichte erstellen.
  • Rollbacks: Datenpipelines können manchmal fehlerhafte Daten für nachgelagerte Verbraucher schreiben. Dies kann aufgrund von Problemen geschehen, die von Infrastrukturinstabilitäten über unsaubere Daten bis hin zu Fehlern in der Pipeline reichen. Bei Pipelines, die einfache Anhänge an Verzeichnisse oder eine Tabelle vornehmen, können Rollbacks leicht durch datumsbasierte Partitionierung behoben werden. Bei Aktualisierungen und Löschungen kann dies sehr kompliziert werden, und Data Engineers müssen in der Regel eine komplexe Pipeline entwickeln, um solche Szenarien zu bewältigen.

Einführung von Time Travel

Die Time-Travel-Funktionen von Delta vereinfachen den Aufbau von Datenpipelines für die oben genannten Anwendungsfälle. Wenn Sie in eine Delta-Tabelle oder ein Verzeichnis schreiben, wird jeder Vorgang automatisch versioniert. Sie können auf die verschiedenen Versionen der Daten auf zwei verschiedene Arten zugreifen:

1. Verwenden eines Zeitstempels

Scala-Syntax:

Sie können den Zeitstempel oder die Datumszeichenfolge als Option für den DataFrame-Reader angeben:

In Python:

SQL-Syntax:

Wenn sich der Lesercode in einer Bibliothek befindet, auf die Sie keinen Zugriff haben, und Sie Eingabeparameter an die Bibliothek übergeben, um Daten zu lesen, können Sie trotzdem in der Zeit zurückreisen, indem Sie den Zeitstempel im Format yyyyMMddHHmmssSSS an den Pfad übergeben:

2. Verwenden einer Versionsnummer
In Delta hat jeder Schreibvorgang eine Versionsnummer, und Sie können die Versionsnummer verwenden, um auch in der Zeit zurückzureisen.

Scala-Syntax:

Python-Syntax:

5-FACHER LEADER

Gartner®: Databricks als Leader für Cloud-Datenbanken

SQL-Syntax:

Änderungen an Auditsdaten

Sie können sich die Historie der Tabellenänderungen mit dem Befehl DESCRIBE HISTORY oder über die Benutzeroberfläche ansehen.

Reproduzieren von Experimenten und Berichten

Time Travel spielt auch eine wichtige Rolle im Machine Learning und in der Data Science. Die Reproduzierbarkeit von Modellen und Experimenten ist ein wichtiger Aspekt für Data Scientists, da sie oft Hunderte von Modellen erstellen, bevor sie eines in die Produktion überführen, und in diesem zeitaufwändigen Prozess gerne zu früheren Modellen zurückkehren möchten. Da die Datenverwaltung jedoch oft von den Data-Science-Tools getrennt ist, ist dies nur schwer zu erreichen.

Databricks löst dieses Reproduzierbarkeitsproblem, indem es die Time-Travel-Funktionen von Delta in MLflow integriert, einer Open-Source-Plattform für den Machine-Learning-Lebenszyklus. Für ein reproduzierbares Machine-Learning-Training können Sie einfach eine mit einem Zeitstempel versehene URL zum Pfad als MLflow-Parameter protokollieren, um zu verfolgen, welche Version der Daten für jeden Trainingsjob verwendet wurde. Auf diese Weise können Sie zu früheren Einstellungen und Datensätzen zurückkehren, um frühere Modelle zu reproduzieren. Sie müssen sich weder mit vorgelagerten Teams über die Daten abstimmen noch sich um das Klonen von Daten für verschiedene Experimente kümmern. Das ist die Stärke von Unified Analytics, bei dem Data Science eng mit Data Engineering verbunden ist.

Rollbacks

Time Travel erleichtert auch Rollbacks im Falle von fehlerhaften Schreibvorgängen. Wenn beispielsweise Ihr GDPR-Pipeline-Job einen Fehler hatte, der versehentlich Benutzerinformationen gelöscht hat, können Sie die Pipeline auf einfache Weise korrigieren:

Sie können auch fehlerhafte Aktualisierungen wie folgt beheben:

Fixierte Ansicht einer sich kontinuierlich aktualisierenden Delta-Tabelle über mehrere nachgeschaltete Jobs hinweg

Mit AS-OF-Abfragen können Sie jetzt den Snapshot einer sich kontinuierlich aktualisierenden Delta-Tabelle für mehrere nachgeschaltete Jobs fixieren. Stellen Sie sich eine Situation vor, in der eine Delta-Tabelle kontinuierlich aktualisiert wird, sagen wir alle 15 Sekunden, und es gibt einen nachgeschalteten Job, der periodisch aus dieser Delta-Tabelle liest und verschiedene Ziele aktualisiert. In solchen Szenarien benötigen Sie in der Regel eine konsistente Ansicht der Quell-Delta-Tabelle, so dass alle Zieltabelle denselben Zustand widerspiegeln. Sie können solche Szenarien jetzt auf einfache Weise wie folgt handhaben:

Vereinfachte Abfragen für Zeitreihenanalysen

Time Travel vereinfacht auch die Zeitreihenanalyse. Wenn Sie beispielsweise herausfinden möchten, wie viele neue Kunden Sie in der letzten Woche gewonnen haben, könnte Ihre Abfrage ganz einfach so aussehen:

Fazit

Time Travel in Delta verbessert die Entwicklerproduktivität enorm. Es hilft:

  • Data Scientists, ihre Experimente besser zu verwalten
  • Data Engineers, ihre Pipelines zu vereinfachen und fehlerhafte Schreibvorgänge rückgängig zu machen
  • Data Analysts, einfache Berichte zu erstellen

Unternehmen können sich endlich auf ein sauberes, zentralisiertes und versioniertes Big-Data-Repository in ihrem eigenen Cloud-Speicher für Analysen standardisieren. Wir sind gespannt, was Sie mit dieser neuen Funktion erreichen werden.

Die Funktion ist als Public Preview für alle Benutzer verfügbar. Erfahren Sie mehr über die Funktion. Um sie in Aktion zu sehen, melden Sie sich für eine kostenlose Testversion von Databricks an.

Interessiert an der Open-Source-Version von Delta Lake?
Besuchen Sie den Delta Lake Online-Hub, um mehr zu erfahren, den neuesten Code herunterzuladen und der Delta Lake Community beizutreten.

(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag

Verpassen Sie keinen Beitrag von Databricks

Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.