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 { { FULL | LITE } |  RETAIN num HOURS | DRY RUN } [...]

W środowisku Databricks Runtime 16.0 i starszych RETAIN num HOURS musi poprzedzać DRY RUN w składni.

Ważne

Okno przechowywania dla polecenia VACUUM jest określane przez właściwość tabeli delta.deletedFileRetentionDuration, 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. Aby przechowywać dane przez dłuższy okres, na przykład w celu obsługi podróży w czasie dłuższym, ustaw 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

  • table_name

    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.

  • FULL lub LITE

    Dotyczy:oznaczone jako tak Databricks Runtime 16.1 i nowsze

    FULL uruchamia operację odkurzania w pełnym trybie . Spowoduje to usunięcie plików danych poza czasem przechowywania i wszystkich plików w katalogu tabeli, do których nie odwołuje się tabela.

    LITE uruchamia operację próżniową w trybie Lite. Zamiast znajdować wszystkie pliki w katalogu tabeli, VACUUM używa dziennika transakcji delta do identyfikowania i usuwania plików, do których nie odwołuje się już żadna wersja tabeli w okresie przechowywania. Jeśli nie można ukończyć VACUUM LITE, ponieważ dziennik delty został przycięty, zostanie zgłoszony wyjątek DELTA_CANNOT_VACUUM_LITE.

    Wartość domyślna to FULL.

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.