VACUUM
Platí pro: Databricks SQL 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 nebo Apache Spark.
Automatický úklid tabulky Delta
Rekurzivní vakuové adresáře přidružené k tabulce 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é již nejsou v nejnovějším stavu transakčního protokolu pro tabulku a jsou starší než prahová hodnota uchovávání. VACUUM
přeskočí všechny adresáře, které začínají podtržítkem (_
), který obsahuje _delta_log
znak . 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ů.
V tabulkách Delta Azure Databricks neaktivuje VACUUM
automaticky operace.
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.
Upozorňující
Doporučujeme nastavit interval uchovávání nejméně 7 dní, protože staré snímky a nepotvrzené soubory se dají do tabulky dál používat souběžnými čtenáři nebo zapisovači. Pokud VACUUM
vyčistí aktivní soubory, souběžné čtenáře můžou selhat nebo horší, může být při odstranění souborů, které ještě nebyly potvrzeny, poškozeny VACUUM
tabulky. Musíte zvolit interval, který je delší než nejdéle běžící souběžná transakce, a nejdelší dobu, po kterou může jakýkoli datový proud zaostávat za nejnovější aktualizací tabulky.
Delta Lake má bezpečnostní kontrolu, abyste zabránili spuštění 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 spark.databricks.delta.retentionDurationCheck.enabled
konfigurace Sparku na false
hodnotu .
VACUUM table_name [RETAIN num HOURS] [DRY RUN]
Důležité
Interval uchovávání pro příkaz VACUUM je určen delta.deletedFileRetentionDuration
vlastností tabulky, která je ve výchozím nastavení 7 dnů. To znamená VACUUM
, že odebere datové soubory, na které už v posledních 7 dnech neodkazuje verze tabulky Delta. Pokud chcete uchovávat data delší dobu (například pro podporu doby trvání delší doby trvání), musíte tuto vlastnost tabulky nastavit 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');
Parametry
-
Identifikuje existující tabulku Delta. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností.
RETAIN num HOURS
Prahová hodnota uchovávání.
DRY RUN
Vrátí seznam až 1 000 souborů, které se mají odstranit.
Vakuum tabulky, která není delta
Rekurzivně vysazuje adresáře přidružené k tabulce non-Delta a odebere nepotvrzené soubory starší než prahová hodnota uchovávání informací. Výchozí mezní hodnota je 7 dnů.
V tabulkách, které nejsou delta, Azure Databricks automaticky aktivuje VACUUM
operace při zápisu dat.
Syntaxe
VACUUM table_name [RETAIN num HOURS]
Parametry
-
Identifikuje existující tabulku podle názvu nebo cesty.
RETAIN num HOURS
Prahová hodnota uchovávání.