Udostępnij za pośrednictwem


VACUUM

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak 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_logelement . 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 falsewartość .

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

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

  • table_name

    Identyfikuje istniejącą tabelę według nazwy lub ścieżki.

  • RETAIN num HOURS

    Próg przechowywania.