VACUUM
Gäller för: Databricks SQL Databricks Runtime
Ta bort oanvända filer från en tabellkatalog.
Kommentar
Det här kommandot fungerar annorlunda beroende på om du arbetar med en Delta- eller Apache Spark-tabell.
Rensa en Delta-tabell
Rekursivt vakuumkataloger som är associerade med Delta-tabellen. Fullständig information och begränsningar finns i Ta bort oanvända datafiler med vakuum.
VACUUM
tar bort alla filer från tabellkatalogen som inte hanteras av Delta, samt datafiler som inte längre är i det senaste tillståndet för transaktionsloggen för tabellen och som är äldre än ett kvarhållningströskelvärde. VACUUM
hoppar över alla kataloger som börjar med ett understreck (_
), som innehåller _delta_log
. Partitionering av tabellen i en kolumn som börjar med ett understreck är ett undantag från den här regeln. VACUUM
genomsöker alla giltiga partitioner som ingår i Delta-måltabellen. Delta-tabelldatafiler tas bort beroende på den tid de har tagits bort logiskt från Deltas transaktionslogg plus kvarhållningstimmar, inte deras ändringstidsstämplar i lagringssystemet. Den standardtröskeln är 7 dagar.
I Delta-tabeller utlöser VACUUM
Inte Azure Databricks automatiskt åtgärder.
Om du kör VACUUM
i en Delta-tabell förlorar du möjligheten att tidsfördrev till en version som är äldre än den angivna datakvarhållningsperioden.
Varning
Vi rekommenderar att du anger ett kvarhållningsintervall på minst 7 dagar, eftersom gamla ögonblicksbilder och ogenomförda filer fortfarande kan användas av samtidiga läsare eller skrivare i tabellen. Om VACUUM
du rensar aktiva filer kan samtidiga läsare misslyckas eller ännu värre, tabeller kan skadas när VACUUM
filer som ännu inte har checkats in tas bort. Du måste välja ett intervall som är längre än den längsta samtidiga transaktionen som körs och den längsta perioden som någon ström kan släpa efter den senaste uppdateringen av tabellen.
Delta Lake har en säkerhetskontroll för att förhindra att du kör ett farligt VACUUM
kommando. I Databricks Runtime är du säker på att det inte finns några åtgärder som utförs i den här tabellen som tar längre tid än det kvarhållningsintervall som du planerar att ange. Du kan inaktivera den här säkerhetskontrollen genom att ställa in spark-konfigurationsegenskapen spark.databricks.delta.retentionDurationCheck.enabled
på false
.
VACUUM table_name [RETAIN num HOURS] [DRY RUN]
Parametrar
-
Identifierar en befintlig Delta-tabell. Namnet får inte innehålla någon temporal specifikation.
BEHÅLL ANTAL TIMMAR
Tröskelvärdet för kvarhållning.
TORR KÖRNING
Returnera en lista med upp till 1 000 filer som ska tas bort.
Dammsuga en tabell som inte är delta
Rekursivt dammsuger kataloger som är associerade med tabellen icke-Delta och tar bort filer som är äldre än ett kvarhållningströskelvärde. Den standardtröskeln är 7 dagar.
I icke-Delta-tabeller utlöser VACUUM
Azure Databricks automatiskt åtgärder när data skrivs.
Syntax
VACUUM table_name [RETAIN num HOURS]
Parametrar
-
Identifierar en befintlig tabell efter namn eller sökväg.
BEHÅLL ANTAL TIMMAR
Tröskelvärdet för kvarhållning.