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]
Ważne
Okno przechowywania polecenia VACUUM jest określane przez delta.deletedFileRetentionDuration
właściwość tabeli, która domyślnie wynosi 7 dni. Oznacza VACUUM
to usunięcie plików danych, do których nie odwołuje się już wersja tabeli delty w ciągu ostatnich 7 dni. Jeśli chcesz przechowywać dane przez dłuższy czas (na przykład w celu obsługi podróży w czasie dłuższym), musisz ustawić tę właściwość tabeli na wyższą wartość. W poniższym przykładzie pokazano ustawienie tego progu na 30 dni:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Parametry
-
Identyfikuje istniejącą tabelę delty. Nazwa nie może zawierać specyfikacji czasowej ani specyfikacji opcji.
RETAIN num HOURS
Próg przechowywania.
DRY RUN
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.
RETAIN num HOURS
Próg przechowywania.