VACUUM

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime

Odeberte nepoužívané soubory z adresáře tabulky.

Poznámka:

Tento příkaz funguje jinak v závislosti na tom, jestli pracujete na tabulce Delta, Apache Spark nebo Apache Iceberg.

Vakuovat tabulku Delta

Rekurzivně čistí adresáře spojené s tabulkou Delta. Úplné podrobnosti a omezení najdete v tématu Odebrání nepoužívaných datových souborů pomocí vakua.

VACUUM odebere všechny soubory z adresáře tabulky, které nespravuje Delta, a také datové soubory, které už nejsou v nejnovějším stavu transakčního protokolu pro tabulku a jsou starší než prahová hodnota uchovávání informací. VACUUM přeskočí všechny adresáře, které začínají znakem podtržítka (_), což zahrnuje _delta_log. Dělení tabulky na sloupec začínající podtržítkem je výjimkou tohoto pravidla; VACUUM prohledá všechny platné oddíly zahrnuté v cílové tabulce Delta. Datové soubory tabulky Delta se odstraní podle času, kdy byly logicky odebrány z transakčního protokolu Delta plus doby uchovávání, nikoli časové razítka jejich úprav v systému úložiště. Výchozí mezní hodnota je 7 dnů.

Pokud používáte VACUUM tabulku Delta, ztratíte možnost časového přesunu zpět na verzi starší než zadanou dobu uchovávání dat.

Pokud je povolená prediktivní optimalizace , Azure Databricks automaticky aktivuje VACUUM operaci jako součást procesu optimalizace. Ve většině případů nemusíte spouštět VACUUM ručně.

Varování

Databricks důrazně doporučuje nastavit interval uchovávání nejméně 7 dnů. Pokud máte úlohy, které běží několik dní, můžou dlouhotrvající úlohy zapisovat soubory, které ještě nejsou potvrzené. Pokud je doba uchovávání příliš krátká, VACUUM můžete tyto nepotvrzené soubory před dokončením úlohy odstranit.

Delta Lake má bezpečnostní kontrolu, aby zabránila provedení nebezpečného VACUUM příkazu. V modulu Databricks Runtime jste si jisti, že v této tabulce nejsou provedeny žádné operace, které by trvalo déle, než je zadaný interval uchovávání informací, můžete tuto bezpečnostní kontrolu vypnout nastavením vlastnosti konfigurace Sparku spark.databricks.delta.retentionDurationCheck.enabled na false.

Vakuum tabulky Apache Iceberg

Rekurzivně odebere neodkazované soubory z adresářů přidružených k tabulce Apache Iceberg. Doba uchovávání je pevná na 7 dnů.

Pokud je povolená prediktivní optimalizace , Azure Databricks automaticky aktivuje VACUUM operaci jako součást procesu optimalizace. Ve většině případů nemusíte spouštět VACUUM ručně.

Syntaxe

VACUUM table_name { { FULL | LITE } | DRY RUN } [...]

Parametry

  • table_name

    Identifikuje existující tabulku Delta. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností.

  • DRY RUN

    Vrátí seznam až 1 000 souborů, které se mají odstranit.

  • FULL nebo LITE

    Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime 16.1 a vyšší

    FULL spustí operaci vakua v plném režimu. Tím se odstraní datové soubory mimo dobu uchování a všechny soubory v adresáři tabulky, na které tabulka neodkazuje.

    LITE spustí operaci vakua v režimu Lite . Místo vyhledání všech souborů v adresáři tabulek VACUUM pomocí transakčního protokolu Delta identifikuje a odebere soubory, na které už v době uchování neodkazují žádné verze tabulek. Pokud VACUUM LITE nelze dokončit, protože protokol Delta byl vyřazen, je vyvolána výjimka DELTA_CANNOT_VACUUM_LITE.

    Výchozí hodnota je FULL.

Důležité

Okno uchovávání informací pro příkaz VACUUM je určeno vlastností tabulky delta.deletedFileRetentionDuration, která má výchozí hodnotu 7 dnů. To znamená, že VACUUM odebere datové soubory, na které už v posledních 7 dnech neodkazuje verze tabulky Delta. Chcete-li uchovávat data po delší dobu, například pro podporu delšího cestování v čase, nastavte tuto vlastnost tabulky na vyšší hodnotu. Následující příklad ukazuje nastavení této prahové hodnoty na 30 dnů:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

Úklid dalších tabulek

Rekurzivně čistí adresáře přidružené k tabulkám, které nejsou ani Delta, ani Iceberg, a odebírá nepotvrzené soubory starší než stanovená prahová hodnota uchovávání. Výchozí mezní hodnota je 7 dnů.

V těchto tabulkách Azure Databricks automaticky aktivuje VACUUM operace při zápisu dat.

Syntaxe

VACUUM table_name

Parametry

  • table_name

    Identifikuje existující tabulku podle názvu nebo cesty.