Funkce tabulky Drop Delta

Důležité

Podpora pro vyřazení funkcí tabulek Delta a verzí protokolů downgradování je ve verzi Public Preview v Databricks Runtime 14.1 a novějších verzích.

Azure Databricks poskytuje omezenou podporu pro vyřazení funkcí tabulky. Pokud chcete odstranit funkci tabulky, musí dojít k následujícímu:

  • Zakažte vlastnosti tabulky, které používají funkci tabulky.
  • Odeberte všechna trasování funkce tabulky z datových souborů, které tabulku zálohují.
  • Odeberte položky transakcí, které používají funkci tabulky z transakčního protokolu.
  • Downgrade tabulkového protokolu.

Pokud je tato funkce podporovaná, měli byste tuto funkci použít jenom k zajištění kompatibility se staršími verzemi modulu Databricks Runtime, rozdílovým sdílením nebo jinými klienty pro čtení nebo zápisy Delta Lake.

Důležité

Všechny DROP FEATURE operace jsou v konfliktu se všemi souběžnými zápisy.

Čtení streamování selže, když narazí na potvrzení, které změní metadata tabulky. Pokud chcete, aby datový proud pokračoval, musíte ho restartovat. Doporučené metody najdete v tématu Důležité informace o produkčním prostředí pro strukturované streamování.

Jak můžu odstranit funkci tabulky Delta?

Pokud chcete odebrat funkci tabulky Delta, spusťte ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY] příkaz. Viz ALTER TABLE.

Musíte použít Databricks Runtime 14.1 nebo vyšší a mít MODIFY oprávnění k cílové tabulce Delta.

Jaké funkce tabulek Delta je možné vynechat?

Můžete vynechat následující funkce tabulky Delta:

Jiné funkce tabulky Delta nelze odstranit.

Jak se funkce tabulek Delta zahodí?

Vzhledem k tomu, že funkce tabulky Delta představují protokoly pro čtení a zápis, musí být zcela chybí v transakčním protokolu pro úplné odebrání. Vyřazení funkce probíhá ve dvou fázích a vyžaduje, aby uplynul čas před dokončením. Podrobnosti odebrání funkcí se liší podle funkce, ale následující část obsahuje obecný přehled.

Příprava na vyřazení funkce tabulky

Během první fáze se uživatel připraví k vyřazení funkce tabulky. Následující popis popisuje, co se stane v této fázi:

  1. Uživatel spustí DROP FEATURE příkaz.
  2. Vlastnosti tabulky, které konkrétně umožňují funkci tabulky, mají hodnoty nastavené tak, aby tuto funkci zakázaly.
  3. Vlastnosti tabulky, které řídí chování spojené s vyřazenou funkcí, mají možnosti nastavené na výchozí hodnoty před zavedením funkce.
  4. V případě potřeby se soubory dat a metadat přepíší s ohledem na aktualizované vlastnosti tabulky.
  5. Příkaz se dokončí a vrátí chybovou zprávu informující uživatele, že musí počkat 24 hodin, než bude pokračovat v odebrání funkce.

Po prvním zakázání funkce můžete pokračovat v zápisu do cílové tabulky před dokončením downgradu protokolu, ale nemůžete použít funkci tabulky, kterou odebíráte.

Poznámka:

Pokud necháte tabulku v tomto stavu, operace s tabulkou nepoužívají funkci tabulky, ale protokol stále podporuje funkci tabulky. Dokud nedokončíte poslední krok downgradu, nebudou moct tabulka číst klienti Delta, kteří funkci tabulky nerozumí.

Downgrade protokolu a vyřazení funkce tabulky

Pokud chcete odstranit funkci tabulky, musíte odebrat veškerou historii transakcí přidruženou k této funkci a downgradovat protokol.

  1. Po uplynutí alespoň 24 hodin uživatel znovu spustí DROP FEATURE příkaz s klauzulí TRUNCATE HISTORY .
  2. Klient potvrdí, že v zadané prahové hodnotě uchovávání nejsou žádné transakce, použije funkci tabulky a pak zkrátí historii tabulky na tuto hodnotu.
  3. Protokol se downgraduje a přehodí funkci tabulky.
  4. Pokud funkce tabulky, které jsou v tabulce, mohou být reprezentovány starší verzí protokolu, minReaderVersion a minWriterVersion u tabulky jsou downgradovány na nejnižší verzi, která podporuje přesně všechny zbývající funkce používané tabulkou Delta.

Důležité

Spuštění ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY odebere všechna data transakčního protokolu starší než 24 hodin. Po vyřazení funkce tabulky Delta nemáte přístup k historii tabulek ani k časovému cestování.

Podívejte se, jak Azure Databricks spravuje kompatibilitu funkcí Delta Lake?