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, ANALYZEPURGE 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 TABLEDROP 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ů:

  1. Když se zásada změní, všechny záznamy mezi 60 a 90 dny staré jsou už archivovány.
  2. Po dobu 30 dnů nejsou archivovány žádné nové soubory (nejstarší nearchivované soubory jsou v době prodloužení zásady starší 60 dnů).
  3. 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:

  1. 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 na 90 days.
  2. 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.

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á.