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.
Verwenden Sie den Befehl "Delta Lake VACUUM ", um Datendateien, auf die nicht mehr von einer Delta-Tabelle verwiesen wird, dauerhaft zu entfernen und die älter als Der Aufbewahrungsschwellenwert sind.
In Fabric hilft es Ihnen, VACUUM veraltete Dateien in OneLake nach Updates, Löschungen, Zusammenführungen und Verdichtungsoperationen zu bereinigen. Dadurch wird der Speicherverbrauch reduziert, veraltete Dateien entfernt, die Fabric für den aktuellen Tabellenzustand nicht mehr benötigt, und nach Wartungsvorgängen wie OPTIMIZE Speicherplatz freigegeben.
VACUUM folgt den gleichen kernigen Delta Lake-Konzepten, die Sie möglicherweise aus open-source Delta Lake kennen, aber Sie führen es in Fabric Spark-Umgebungen wie Notizbücher, Spark-Auftragsdefinitionen und der Lakehouse Maintenance UI aus.
Was VACUUM entfernt
Eine Delta-Tabelle verfolgt die Dateien, aus denen der aktuelle Tabellenstatus im Delta-Protokoll besteht. Wenn Vorgänge wie UPDATE, DELETE, MERGE, Überschreiben von Schreibvorgängen oder Komprimierung ältere Parkettdateien durch neuere ersetzen, können die alten Dateien nicht mehr referenziert werden.
VACUUM entfernt diese nicht referenzierten Dateien nur, wenn beide Bedingungen erfüllt sind:
- Auf die Dateien wird nicht mehr durch das Delta-Protokoll verwiesen.
- Die Dateien sind älter als der konfigurierte Aufbewahrungsschwellenwert.
Da VACUUM Dateien dauerhaft aus OneLake gelöscht werden, verwenden Sie sie sorgfältig, wenn Sie weiterhin ältere Tabellenversionen benötigen.
Warum VACUUM wichtig ist
Führen Sie VACUUM aus, wenn Sie Folgendes tun möchten:
- Reduzieren der Speicherkosten durch Löschen veralteter Dateien aus OneLake
- Freigeben von Speicherplatz nach Aktualisierungen, Löschvorgängen und Zusammenführungsvorgängen
- Bereinigen von Dateien vor der Komprimierung, nachdem
OPTIMIZEErsatzdateien erstellt hat - Verhindern, dass sich in lang laufenden Produktivtabellen unnötige veraltete Datendateien ansammeln
VACUUM verbessert die Abfrageleistung nicht allein auf die gleiche Weise wie Komprimierungs- oder Dateilayoutoptimierungen. Der Hauptzweck ist die Speicherbereinigung.
Wo soll VACUUM ausgeführt werden?
VACUUM ist ein Spark-Befehl in Fabric. Führen Sie sie an Orten aus, wo die Spark-Engine verwendet wird, z. B.:
- Fabric-Notizbücher
- Spark-Auftragsdefinitionen
- Die Lakehouse-Wartungsoberfläche und pipelinebasierte Wartungsabläufe
Führe nicht im SQL-Analytics-Endpunkt oder im Warehouse-SQL-Editor aus.VACUUM Diese Erfahrungen unterstützen keine Spark Delta-Wartungsbefehle.
Wenn Sie einen portalbasierten Workflow benötigen, lesen Sie die Wartung von Lakehouse-Tabellen.
Note
Führen Sie in Notizbüchern SQL-Beispiele in einer Spark SQL-Zelle, Python-Beispiele in einer PySpark-Zelle und Scala-Beispiele in einer Scala-Zelle aus.
Syntaxbeispiele
Verwenden Sie die folgenden Beispiele, wenn Sie VACUUM in Fabric ausführen.
Eine Tabelle mit der standardmäßigen Aufbewahrungsdauer bereinigen
Eine Tabelle mit einem benutzerdefinierten Schwellenwert für die Aufbewahrung vakuumieren
Vorschau von Dateien mit DRY RUN
Dient DRY RUN zum Auflisten der Dateien, die gelöscht werden würden, ohne sie tatsächlich zu löschen.
VACUUM schema_name.table_name DRY RUN
Sie können auch kombinieren RETAIN und DRY RUN.
VACUUM schema_name.table_name RETAIN 168 HOURS DRY RUN
Vakuum im LITE-Modus
VACUUM LITE ist eine schnellere Alternative, die nur das Delta-Transaktionsprotokoll verwendet, um nicht referenzierte Dateien zu identifizieren, anstatt jede Datei im Tabellenverzeichnis aufzulisten. Dieser Ansatz ist für große Tabellen mit vielen Dateien wesentlich schneller.
VACUUM schema_name.table_name LITE
VACUUM schema_name.table_name LITE RETAIN 168 HOURS
VACUUM LITE identifiziert Dateien, die entfernt werden sollen, indem das Delta-Protokoll gelesen wird, anstatt eine vollständige Verzeichnisauflistung auszuführen. Es ist schneller, aber es erfordert genügend Protokollverlauf, um zu bestimmen, welche Dateien nicht referenziert sind. Wenn das Delta-Protokoll stärker bereinigt wurde, als es der Modus LITE erfordert, wird eine DELTA_CANNOT_VACUUM_LITE-Ausnahme ausgelöst — in diesem Fall greifen Sie auf das standardmäßige VACUUM zurück (vollständiger Modus).
Note
VACUUM LITE wird in Fabric Spark Runtime 2.0 (Delta 4.1) oder höher unterstützt. Überprüfen Sie, ob Ihre Fabric Laufzeitversion dieses Feature unterstützt.
Vacuum mit Inventartabelle
Bei sehr großen Tabellen, bei denen selbst die standardmäßige vollständige VACUUM Verzeichnisauflistung langsam ist, können Sie einen vorab komputierten Bestand von Dateien bereitstellen. Anstatt das Tabellenverzeichnis zur Laufzeit aufzulisten, liest VACUUM Dateipfade aus dem von Ihnen bereitgestellten Inventar.
VACUUM schema_name.table_name USING INVENTORY inventory_table_name
VACUUM schema_name.table_name USING INVENTORY (SELECT * FROM inventory_table_name WHERE path LIKE 'abfss://%')
Die Bestandstabelle (oder Abfrage) muss das folgende Schema aufweisen:
| Column | Typ | Description |
|---|---|---|
path |
string | Vollständig qualifizierte Datei-URI. |
length |
Ganzzahl | Dateigröße in Byte. |
isDir |
Boolescher Wert | Gibt an, ob es sich bei dem Eintrag um ein Verzeichnis handelt. |
modificationTime |
Ganzzahl | Zeit der letzten Änderung der Datei in Millisekunden seit der Unix-Epoch. |
Sie können eine Bestandstabelle aus OneLake-Dateimetadaten, Speicherkontoinventarberichten oder einem benutzerdefinierten Spark-Auftrag auffüllen, der das Tabellenverzeichnis nach einem Zeitplan auflistet. Dadurch wird der teure Dateiauflistungsschritt vom VACUUM Vorgang selbst entkoppelt.
Standardaufbewahrungszeitraum
Wenn Sie kein Aufbewahrungsintervall angeben, verwendet VACUUM die standardmäßige Aufbewahrungsdauer von sieben Tagen, was 168 Stunden entspricht.
Dadurch erhalten aktive Leser, Autoren und Zeitreiseabfragen ein sichereres Fenster, bevor ältere Dateien entfernt werden.
Sicherheitsüberprüfung für kurze Aufbewahrungsfristen
Delta Lake enthält eine Sicherheitsprüfung zur Aufbewahrung, die durch spark.databricks.delta.retentionDurationCheck.enabled gesteuert wird.
Wenn Sie versuchen, einen Aufbewahrungszeitraum zu verwenden, der kürzer als sieben Tage ist, warnt Sie diese Sicherheitsüberprüfung, es sei denn, Sie deaktivieren die Überprüfung in Ihrer Spark-Konfiguration explizit.
Verwenden Sie zusätzliche Vorsicht, bevor Sie diesen Schutz deaktivieren. Ein kurzer Aufbewahrungszeitraum kann Dateien entfernen, die von parallel ausgeführten Workloads oder in Wiederherstellungsszenarien noch benötigt werden.
Mit diesen Befehlen wird beispielsweise ein eintägiger Aufbewahrungszeitraum angefordert:
Wenn Ihre Umgebung die Sicherheitsüberprüfung aktiviert hält, warnt Sie die Laufzeit vor Aufbewahrungseinstellungen unter sieben Tagen.
Verstehen der Auswirkungen auf die Zeitreise
Mit delta Lake Time Travel können Sie ältere Tabellenversionen abfragen, solange die erforderlichen historischen Dateien noch vorhanden sind.
VACUUM entfernt Dateien, die älter als das Aufbewahrungsfenster sind, sodass auch die Datendateien entfernt werden, die für die Zeitreise über dieses Fenster hinaus benötigt werden. Nachdem diese Dateien abgesaugt wurden, können Sie diese älteren Versionen nicht mehr abfragen.
Bevor Sie die Aufbewahrung reduzieren, entscheiden Sie, wie viel historischer Zugriff Auf Ihre Workloads, Audits, Debuggingschritte und Wiederherstellungsprozesse erforderlich sind. Weitere Informationen finden Sie unter "Zeitreise".
Die Auswirkungen auf Löschvektoren verstehen
Löschvektoren können Zeilen als gelöscht markieren, ohne jede betroffene Datendatei sofort neu zu schreiben. Aufgrund dieses Verhaltens sind Dateien, die alt aussehen, möglicherweise noch Teil des aktiven Tabellenzustands.
VACUUM entfernt keine Dateien, auf die noch verwiesen wird, einschließlich Dateien, die weiterhin gültig sind, da die Metadaten des Löschvektors weiterhin auf sie verweisen. Wenn Sie Löschvektoren verwenden und die Tabelle später neu organisieren oder optimieren, kommen nach Abschluss dieser Änderungen möglicherweise weitere veraltete Dateien für VACUUM infrage.
Informationen zum physischen Umschreiben von Daten, die von Löschvektoren betroffen sind, finden Sie unter REORG Delta-Tabellen.
Bewährte Methoden befolgen
Verwenden Sie diese Methoden, wenn Sie VACUUM in Fabric ausführen:
- Führen Sie
VACUUMnachOPTIMIZEaus, um Dateien vor der Komprimierung zu entfernen, die nicht mehr benötigt werden. - Stellen Sie die Aufbewahrungsdauer nicht auf weniger als sieben Tage ein, es sei denn, Sie verstehen die Auswirkungen auf die Zeitreise, Leser, Schreiber und die Wiederherstellung genau.
- Planen Sie regelmäßige
VACUUM-Operationen in Produktionspipelines, damit sich veraltete Dateien nicht in OneLake ansammeln. - Entscheiden Sie sich für Ihre Zeitreiseanforderungen, bevor Sie die Aufbewahrung verkürzen.
- Verwenden Sie
DRY RUNzuerst, wenn Sie überprüfen möchten, welche Dateien entfernt werden sollen.
Hinweise zur Fabric-weiten Wartung finden Sie unter Table maintenance overview und Lakehouse table maintenance.
Verstehen, was VAKUUM nicht entfernt
VACUUM entfernt veraltete Datendateien, löscht jedoch keine Delta-Protokolldateien im _delta_log Ordner.
Die Delta-Protokollbereinigung folgt dem Verhalten bei der Checkpoint- und Protokollaufbewahrung, das von VACUUM unabhängig ist.