VACUUM
Dotyczy: Databricks SQL Databricks Runtime
Usuń nieużywane pliki z katalogu tabel.
Uwaga
To polecenie działa inaczej w zależności od tego, czy pracujesz z tabelą Delta, czy Apache Spark.
Opróżnianie tabeli delty
Rekursywnie katalogi próżni skojarzone z tabelą delta. Aby uzyskać szczegółowe informacje i ograniczenia, zobacz Usuwanie nieużywanych plików danych z próżnią.
VACUUM
Usuwa wszystkie pliki z katalogu tabeli, które nie są zarządzane przez funkcję Delta, a także pliki danych, które nie są już w najnowszym stanie dziennika transakcji dla tabeli i są starsze niż próg przechowywania. VACUUM
spowoduje pominięcie wszystkich katalogów rozpoczynających się od podkreślenia (_
), który zawiera _delta_log
element . Partycjonowanie tabeli w kolumnie rozpoczynającej się od podkreślenia jest wyjątkiem od tej reguły; VACUUM
skanuje wszystkie prawidłowe partycje zawarte w docelowej tabeli delty. Pliki danych tabeli różnicowej są usuwane zgodnie z czasem ich logicznego usunięcia z dziennika transakcji usługi Delta oraz godzin przechowywania, a nie ich sygnatur czasowych modyfikacji w systemie magazynu. Domyślna wartość progu to 7 dni.
W tabelach usługi Delta usługa Azure Databricks nie wyzwala VACUUM
automatycznie operacji.
W przypadku uruchomienia VACUUM
w tabeli delty utracisz możliwość powrotu do wersji starszej niż określony okres przechowywania danych.
Ostrzeżenie
Zaleca się ustawienie interwału przechowywania na co najmniej 7 dni, ponieważ stare migawki i niezatwierdzone pliki mogą nadal być używane przez równoczesnych czytników lub składników zapisywania do tabeli. Jeśli VACUUM
czyści aktywne pliki, równoczesne czytniki mogą zakończyć się niepowodzeniem lub, co gorsza, tabele mogą być uszkodzone, gdy VACUUM
usuwa pliki, które nie zostały jeszcze zatwierdzone. Należy wybrać interwał dłuższy niż najdłuższej działająca współbieżna transakcja i najdłuższy okres, o jaki każdy strumień może opóźnić się w stosunku do najnowszej aktualizacji tabeli.
Usługa Delta Lake ma kontrolę bezpieczeństwa, aby zapobiec uruchamianiu niebezpiecznego VACUUM
polecenia. W środowisku Databricks Runtime masz pewność, że nie ma żadnych operacji wykonywanych w tej tabeli, które trwają dłużej niż interwał przechowywania, który ma być określony, można wyłączyć tę kontrolę bezpieczeństwa, ustawiając właściwość spark.databricks.delta.retentionDurationCheck.enabled
konfiguracji platformy Spark na false
wartość .
VACUUM table_name [RETAIN num HOURS] [DRY RUN]
Parametry
-
Identyfikuje istniejącą tabelę delty. Nazwa nie może zawierać specyfikacji czasowej.
ZACHOWAJ LICZBA GODZIN
Próg przechowywania.
PRZEBIEG SUCHY
Zwróć listę maksymalnie 1000 plików do usunięcia.
Opróżnij tabelę inną niż delta
Rekursywnie opróżnia katalogi skojarzone z tabelą inną niż delta i usuwają niezatwierdzone pliki starsze niż próg przechowywania. Domyślna wartość progu to 7 dni.
W tabelach innych niż delta usługa Azure Databricks automatycznie wyzwala operacje VACUUM
podczas zapisywania danych.
Składnia
VACUUM table_name [RETAIN num HOURS]
Parametry
-
Identyfikuje istniejącą tabelę według nazwy lub ścieżki.
ZACHOWAJ LICZBA GODZIN
Próg przechowywania.