Podpora archivace v Azure Databricks
Důležité
Tato funkce je ve verzi Public Preview pro Databricks Runtime 13.3 LTS a vyšší.
Podpora archivace v Azure Databricks představuje kolekci funkcí, které umožňují používat cloudové zásady životního cyklu v cloudovém úložišti objektů obsahujícím tabulky Delta.
Bez podpory archivace můžou operace s tabulkami Delta přerušit, protože datové soubory nebo soubory transakčních protokolů se přesunuly do archivovaných umístění a nejsou při dotazování k dispozici. Podpora archivace zavádí optimalizace, které zabrání dotazování na archivovaná data, pokud je to možné, a přidá novou syntaxi pro identifikaci souborů, které je potřeba obnovit z archivu, aby se dokončily dotazy.
Důležité
Azure Databricks má pouze podporu archivace pro Azure Archive. Podívejte se na dokumentaci Azure k optimalizaci nákladů pomocí správy životního cyklu.
Dotazy optimalizované pro archivovaná data
Podpora archivace v Azure Databricks optimalizuje následující dotazy s tabulkami Delta:
Dotaz | Nové chování |
---|---|
SELECT * FROM <table_name> LIMIT <limit> [WHERE <partition_predicate>] |
Automaticky ignorovat archivované soubory a vracet výsledky z dat v nechivované úrovni úložiště. |
Příkazy pro údržbu Delta Lake: OPTIMIZE , ZORDER , ANALYZE PURGE |
Automaticky ignorujte archivované soubory a spusťte údržbu u zbytku tabulky. |
Příkazy DDL a DML, které přepíší data nebo odstraní data, včetně následujících: REPLACE TABLE , INSERT OVERWRITE , , TRUNCATE TABLE DROP TABLE |
Označte položky transakčního protokolu pro cílové archivované datové soubory jako odstraněné. |
FSCK REPAIR TABLE |
Archivované soubory ignorujte a zkontrolujte jenom soubory, které nedosáhly zásady životního cyklu. |
Viz Omezení.
Předčasné selhání a chybové zprávy
U dotazů, které musí prohledat archivované soubory, aby se vygenerovaly správné výsledky, zajistí konfigurace podpory archivace pro Delta Lake následující:
- Dotazy selžou včas, pokud se pokusí o přístup k souborům v archivu, což snižuje plýtvání výpočetními prostředky a umožňuje uživatelům rychle přizpůsobovat a znovu spouštět dotazy.
- Chybové zprávy informují uživatele, že dotaz selhal, protože se dotaz pokusil o přístup k archivovaným souborům.
Uživatelé můžou vygenerovat sestavu souborů, které je potřeba obnovit pomocí SHOW ARCHIVED FILES
syntaxe. Viz Zobrazení archivovaných souborů.
Povolení podpory archivace
Podporu archivace v tabulkách Azure Databricks pro tabulky Delta povolíte ručním zadáním archivačního intervalu nakonfigurovaného v podkladových zásadách správy životního cyklu cloudu, jak je znázorněno v následující ukázkové syntaxi:
ALTER TABLE <table_name> SET TBLPROPERTIES(delta.timeUntilArchived = 'X days');
Delta Lake nepracuje přímo se zásadami správy životního cyklu nakonfigurovanými ve vašem cloudovém účtu. Pokud zásady v cloudovém účtu aktualizujete, musíte zásady aktualizovat v tabulce Delta. Viz Změna pravidla přechodu správy životního cyklu.
Důležité
Podpora archivace spoléhá zcela na kompatibilní výpočetní prostředí Azure Databricks a funguje jenom pro tabulky Delta. Konfigurace podpory archivace nemění chování, kompatibilitu ani podporu v klientech OSS Delta Lake nebo Databricks Runtime 12.2 LTS a novějších verzích.
Zobrazení archivovaných souborů
K identifikaci souborů, které je potřeba obnovit k dokončení daného dotazu, použijte SHOW ARCHIVED FILES
, jak je znázorněno v následujícím příkladu:
SHOW ARCHIVED FILES FOR table_name [ WHERE predicate ];
Tato operace vrátí identifikátory URI pro archivované soubory jako datový rámec Sparku.
Poznámka:
Delta Lake má přístup pouze ke statistikám dat obsaženým v transakčním protokolu během této operace (minimální hodnota, maximální hodnota, počet null a celkový počet záznamů pro prvních 32 sloupců). Vrácené soubory zahrnují všechny archivované soubory, které je třeba přečíst, aby bylo možné určit, zda v souboru existují záznamy splňující predikát. Databricks doporučuje poskytovat predikáty, které zahrnují pole, na kterých se data rozdělují, seřazené z nebo clusterované, pokud je to možné, aby se snížil počet souborů, které je potřeba obnovit.
Omezení
Jsou to následující omezení:
- Pro zásady správy životního cyklu, které nejsou založené na čase vytváření souborů, neexistuje žádná podpora. To zahrnuje zásady založené na čase přístupu a zásady založené na značkách.
- V tabulce s archivovanými soubory nelze použít
DROP COLUMN
. REORG TABLE APPLY PURGE
se snaží co nejlépe, ale funguje jenom na souborech vektorů odstranění a odkazovaných datových souborech, které nejsou archivovány.PURGE
aplikace nemůže odstranit archivované soubory vektorů odstraňování.- Rozšíření pravidla přechodu správy životního cyklu vede k neočekávanému chování. Viz Rozšíření pravidla přechodu správy životního cyklu.
Změna pravidla přechodu správy životního cyklu
Pokud změníte časový interval pro pravidlo přechodu správy životního cyklu cloudu, musíte aktualizovat vlastnost delta.timeUntilArchived
.
Pokud se časový interval před archivací zkracuje (kratší doba od vytvoření souboru), archivační podpora tabulky Delta bude fungovat normálně po aktualizaci vlastnosti tabulky.
Rozšíření pravidla přechodu správy životního cyklu
Pokud je časový interval před archivací prodloužen (více času od vytvoření souboru), může aktualizace vlastnosti delta.timeUntilArchived
na novou hodnotu vést k chybám. Poskytovatelé cloudu automaticky neobnoví soubory z archivovaného úložiště, když se změní zásady uchovávání dat. To znamená, že soubory, které dříve měly nárok na archivaci, ale nyní nejsou považovány za způsobilé pro archivaci, jsou stále archivovány.
Důležité
Chcete-li se vyhnout chybám, nikdy nenastavujte vlastnost delta.timeUntilArchived
na hodnotu větší než skutečný věk naposledy archivovaných dat.
Představte si scénář, ve kterém se časový interval pro archivaci mění z 60 dnů na 90 dnů:
- Když se zásada změní, všechny záznamy mezi 60 a 90 dny staré jsou už archivovány.
- Po dobu 30 dnů nejsou archivovány žádné nové soubory (nejstarší nearchivované soubory jsou v době prodloužení zásady starší 60 dnů).
- Po uplynutí 30 dnů zásady životního cyklu správně popisují všechna archivovaná data.
Nastavení delta.timeUntilArchived
sleduje nastavený časový interval pro čas vytvoření souboru zaznamenaný protokolem transakcí Delta. Nemá explicitní znalosti o podkladové zásadě. Během prodlevy mezi starou prahovou hodnotou archivace a novou prahovou hodnotou archivace můžete použít jeden z následujících přístupů, abyste se vyhnuli dotazování na archivované soubory:
- Nastavení můžete ponechat
delta.timeUntilArchived
se starou prahovou hodnotou, dokud nebude dostatek času, aby se všechny soubory archivovaly.- Podle výše uvedeného příkladu by se každý den prvních 30 dnů za data dalšího dne považoval za archivovaný službou Azure Databricks, ale ještě ho ne archivoval poskytovatel cloudu. Výsledkem není chyba, ale ignoruje některé datové soubory, které by mohly být dotazovány.
- Po 30 dnech aktualizujte
delta.timeUntilArchived
na90 days
.
- Nastavení
delta.timeUntilArchived
můžete aktualizovat každý den tak, aby odráželo aktuální interval v době prodlevy.- Zatímco zásady cloudu jsou nastavené na 90 dnů, skutečný věk archivovaných dat se mění v reálném čase. Například po 7 dnech nastavení
delta.timeUntilArchived
přesně67 days
odpovídá stáří všech datových souborů v archivu. - Tento přístup je nezbytný jenom v případě, že potřebujete přístup ke všem datům v horkých úrovních.
- Zatímco zásady cloudu jsou nastavené na 90 dnů, skutečný věk archivovaných dat se mění v reálném čase. Například po 7 dnech nastavení
Poznámka:
Aktualizace hodnoty delta.timeUntilArchived
pro ve skutečnosti nemění, která data se archivují. Změní pouze data, která Azure Databricks považuje za archivovaná.