Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit Delta Lake können Sie den RESTORE Befehl verwenden, um einen älteren Tabellenzustand wieder aktuell zu machen.
RESTORE Stellt eine Delta-Tabelle auf eine frühere Tabellenversion oder auf den Tabellenzustand zu einem bestimmten Zeitstempel zurück.
Verwenden Sie diese Einstellung RESTORE , wenn Sie schnell eine fehlerhafte Änderung wiederherstellen müssen, ohne die Tabelle manuell neu zu erstellen. Da Delta-Tabellen den Transaktionsverlauf beibehalten, können Sie häufig einen Rollback auf einen bekannten Zustand in einem einzigen Befehl ausführen.
Funktionsweise von RESTORE
RESTORE ändert den aktuellen Status einer Delta-Tabelle, sodass sie einer früheren zugesicherten Version entspricht.
Sie können eine Tabelle wiederherstellen, wenn Sie Folgendes benötigen:
- Wiederherstellen von versehentlichen Löschungen oder Updates
- Rückgängigmachen eines fehlerhaften
MERGEVorgangs, Überschreibens oder Anfügens - Eine Schemaänderung rückgängig machen, die nachgelagerte Workloads beeinträchtigt
- Sich von einer Beschädigung erholen, die durch einen fehlerhaften Schreib- oder Pipelineschritt verursacht wurde
Im Gegensatz zu einer schreibgeschützten historischen Abfrage verändert RESTORE den Zustand der Live-Tabelle, den neue Leser zu sehen bekommen.
Syntax
Verwenden Sie eines dieser Formulare, um eine Delta-Tabelle wiederherzustellen.
Auf eine bestimmte Version einer Delta-Tabelle wiederherstellen:
Wiederherstellen des Tabellenzustands zu einem bestimmten Zeitstempel:
RESTORE TABLE schema_name.table_name TO TIMESTAMP AS OF '2026-05-01 12:00:00'
Bevor Sie wiederherstellen, überprüfen Sie den Tabellenverlauf, damit Sie die richtige Version auswählen können:
Ein allgemeiner Wiederherstellungsworkflow sieht wie folgt aus:
Die PySpark-Methoden DeltaTable führen den gleichen logischen Vorgang wie der SQL-Befehl RESTORE TABLE aus.
Was während der Wiederherstellung geschieht
Wenn Sie ausführen RESTORE, schreibt Delta Lake die Zielversion nicht neu. Stattdessen wird eine neue Version im Delta-Protokoll erstellt, die auf die mit der ausgewählten Version oder dem ausgewählten Zeitstempel verknüpften Datendateien verweist.
Dieses Verhalten hat einige wichtige Konsequenzen:
-
RESTOREerstellt eine neue aktuelle Version der Tabelle. - Die Dateien vom wiederhergestellten Punkt werden wieder aktiv.
- Die Dateien aus dem aktuellen Zustand vor der Wiederherstellung werden nicht sofort gelöscht.
- Diese nun nicht mehr referenzierten Dateien können später mit
VACUUMbereinigt werden. - Die Wiederherstellung selbst wird als versionierte Tabellenänderung aufgezeichnet.
Da RESTORE versioniert ist, können Sie sie im Tabellenverlauf überprüfen:
WIEDERHERSTELLUNG, Zeitreise und VAKUUM
RESTORE und Zeitreisen verwenden die gleiche Delta-Geschichte, aber sie lösen verschiedene Probleme.
- Verwenden Sie Zeitreisen , wenn Sie nur ältere Daten lesen müssen, ohne den aktuellen Tabellenstatus zu ändern.
- Verwenden Sie
RESTORE, wenn der ältere Zustand für alle neuen Lese- und Schreibvorgänge zum aktuellen Status werden soll.
VACUUM wirkt sich auf die Wiederherstellung aus, da nicht referenzierte Dateien aus dem Speicher entfernt werden. Nach einer Wiederherstellung werden die Dateien aus dem zuvor aktuellen Zustand in der Regel nicht mehr referenziert. Wenn Sie sie nicht mehr benötigen, können Sie sie mit VACUUM bereinigen.
Umgekehrt ist es auch wichtig: VACUUM kann eine zukünftige Wiederherstellung verhindern. Wenn VACUUM die Dateien, die für die Version erforderlich sind, die Sie wiederherstellen möchten, bereits entfernt hat, schlägt RESTORE fehl, da der Tabellenverlauf keinen Zugriff mehr auf diese physischen Dateien hat.
Einschränkungen
RESTORE funktioniert nur, wenn die Zielversion weiterhin alle erforderlichen Datendateien zur Verfügung hat.
Beachten Sie die folgenden Grenzwerte:
- Sie können nur Versionen wiederherstellen, deren Datendateien noch vorhanden sind.
- Wenn
VACUUMdiese Dateien entfernt wurden, schlägt der Wiederherstellungsvorgang fehl. - Der Wiederherstellungsverlauf unterliegt den Delta-Aufbewahrungseinstellungen, einschließlich
delta.logRetentionDurationund der tatsächlichen Aufbewahrung von Datendateien im Speicher. - In der Praxis wirken sich sowohl die Aufbewahrung von Transaktionsprotokollen als auch die Dateiaufbewahrung darauf aus, wie weit Sie wiederherstellen können.
Bewährte Methoden
Verwenden Sie diese Methoden, um Risiken zu reduzieren:
- Führen Sie
DESCRIBE HISTORYvor der Wiederherstellung aus, damit Sie die richtige Version oder den richtigen Zeitstempel überprüfen können. - Verwenden Sie Zuerst Zeitreiseabfragen, wenn Sie nur ältere Daten prüfen müssen und den aktuellen Tabellenzustand nicht ändern möchten.
- Führen Sie
VACUUMnach einer Wiederherstellung aus, wenn Sie nicht referenzierte Dateien aus dem Zustand vor der Wiederherstellung bereinigen möchten. - Teste zuerst den Wiederherstellungspfad in einer Klontabelle, wenn du mit kritischen Produktionsdaten arbeitest.