VAKUUM

Gäller för:check markerad ja Databricks SQL-kontroll markerad som ja Databricks Runtime

Ta bort oanvända filer från en tabellkatalog.

Observera

Det här kommandot fungerar på olika sätt beroende på om du arbetar med en Delta- eller Apache Spark-tabell.

Dammsuga en Delta-tabell

Rekursivt vakuumkataloger som är associerade med Delta-tabellen. 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. Att partitionera tabellen i en kolumn som börjar med ett understreck är ett undantag till den här regeln. VACUUM söker igenom alla giltiga partitioner som ingår i Delta-måltabellen. Deltatabelldatafiler tas bort beroende på när de har tagits bort logiskt från Deltas transaktionslogg plus kvarhållningstimmar, inte deras ändringstidsstämplar i lagringssystemet. Standardtröskelvärdet är 7 dagar.

I Delta-tabeller utlöser VACUUM Azure Databricks inte åtgärder automatiskt. Se Ta bort oanvända datafiler med vakuum.

Om du kör VACUUM i en Delta-tabell förlorar du möjligheten att tidsfördreda tillbaka 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 rensar upp aktiva filer kan samtidiga läsare misslyckas eller, ännu värre, tabeller kan skadas när VACUUM tar bort filer som ännu inte har checkats in. 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 utförs några åtgärder 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.enabledfalse.

VACUUM table_name [RETAIN num HOURS] [DRY RUN]

Parametrar

  • Table_name

    Identifierar en befintlig Delta-tabell. Namnet får inte innehålla en temporal specifikation.

  • BEHÅLL ANTAL TIMMAR

    Tröskelvärde för kvarhållning.

  • DRY RUN

    Returnera en lista med upp till 1 000 filer som ska tas bort.

Dammsuga en no-Delta-tabell

Rekursivt dammsuger kataloger som är associerade med tabellen icke-Delta och tar bort ogenomförda filer som är äldre än ett tröskelvärde för kvarhållning. Standardtröskelvärdet ä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

  • Table_name

    Identifierar en befintlig tabell efter namn eller sökväg.

  • BEHÅLL ANTAL TIMMAR

    Tröskelvärde för kvarhållning.