Anzeigen der Tabellengeschichte (Grundlagen des Time Travel)
Swipe um das Menü anzuzeigen
Time Travel ist eine Delta Lake-Funktion, die es ermöglicht, frühere Versionen einer Tabelle abzufragen. Mithilfe des Transaktionsprotokolls kann Databricks den Zustand Ihrer Daten zu jedem beliebigen Zeitpunkt in der aufgezeichneten Historie rekonstruieren.
Eine der leistungsstärksten "Sicherheitsnetze" in Databricks ist die Möglichkeit, genau nachzuvollziehen, wer eine Tabelle geändert hat, wann die Änderung erfolgte und wie die Daten vor dieser Änderung aussahen.
Für unsere diamonds-Tabelle unter workspace.workshop.diamonds wird jede Aktualisierung oder Löschung automatisch protokolliert.
1. Der DESCRIBE HISTORY-Befehl
Um die vollständige Zeitleiste Ihrer Daten einzusehen, verwenden Sie den Befehl DESCRIBE HISTORY — dieser liefert ein detailliertes Protokoll jeder Version der Tabelle.
DESCRIBE HISTORY workspace.workshop.diamonds
Nach Ausführung dieses Befehls erscheint eine Tabelle mit den folgenden wichtigen Spalten:
- version: eine Ganzzahl, beginnend bei 0 (Zeitpunkt der Tabellenerstellung);
- timestamp: das genaue Datum und die Uhrzeit der Änderung;
- userName: die Person, die die Aktion durchgeführt hat;
- operation: die durchgeführte Aktion (z. B.
WRITE,UPDATE,DELETEoderMERGE); - operationParameters: technische Details zur Änderung.
2. Abfrage einer bestimmten Version
Wenn eine kürzliche Aktualisierung die Spalte "Price" beschädigt hat, kann eine bestimmte ältere Version abgefragt werden, um die ursprünglichen Werte mit der Syntax VERSION AS OF anzuzeigen.
-- Look at the diamonds table exactly as it was in Version 0
SELECT * FROM workspace.workshop.diamonds VERSION AS OF 0
3. Abfrage nach Zeitstempel
Wenn die Versionsnummer nicht bekannt ist, aber der Zeitpunkt, zu dem die Daten korrekt waren, kann mit TIMESTAMP AS OF zu diesem Zeitpunkt zurückgekehrt werden.
-- Look at the data as it existed at a specific time
SELECT * FROM workspace.workshop.diamonds TIMESTAMP AS OF '2026-02-11 09:00:00'
4. Bedeutung dieser Funktion
In traditionellen Datenbanken muss bei versehentlichem Ausführen eines DELETE-Befehls ohne WHERE-Klausel ein Datenbankadministrator kontaktiert werden, um ein Backup wiederherzustellen — ein Vorgang, der Stunden dauern kann.
Mit Delta Lake Time Travel kann der Fehler in Sekunden selbst behoben werden, indem die Daten aus einer vorherigen Version ausgewählt und die aktuelle fehlerhafte Tabelle mit den intakten historischen Daten überschrieben wird.
5. Verwaltung der Historie
Standardmäßig bewahrt Delta Lake 30 Tage Historie auf. Dies ist äußerst hilfreich, erfordert jedoch das Speichern älterer Datendateien. Die zugrunde liegenden Datendateien gelöschter/überschriebener Versionen werden jedoch nur 7 Tage lang (delta.deletedFileRetentionDuration) aufbewahrt, bevor sie durch VACUUM entfernt werden können.
In professionellen Umgebungen verwenden Data Engineers den Befehl VACUUM, um sehr alte Dateien zu bereinigen und Speicherkosten zu senken. Für diesen Kurs ist Ihre Historie sicher und bereit zur Erkundung.
VACUUM ist ein Bereinigungsbefehl, der alte Datendateien, die Delta Lake nicht mehr benötigt – also jene, die nach Updates, Löschungen oder Überschreibungen übrig bleiben – dauerhaft entfernt.
VACUUM workspace.workshop.diamonds
Standardmäßig bewahrt Delta 30 Tage Dateihistorie für Time Travel auf. VACUUM entfernt Dateien, die älter als dieser Zeitraum sind, um Speicherplatz zu sparen.
Es kann auch ein individuelles Aufbewahrungsfenster festgelegt werden:
VACUUM workspace.workshop.diamonds RETAIN 7 HOURS
1. Welcher SQL-Befehl ermöglicht es, die Liste aller vorherigen Versionen und durchgeführten Operationen einer Tabelle anzuzeigen?
2. Sie haben versehentlich die Tabelle diamonds aktualisiert und möchten die Daten von vor 10 Minuten sehen. Welche Syntax sollten Sie verwenden?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen