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:
deletionVectors
. Podívejte se, co jsou vektory odstranění?v2Checkpoint
. Viz Kompatibilita tabulek s clusteringem liquid.columnMapping
. Viz Přejmenování a vyřazení sloupců s mapováním sloupců Delta Lake.typeWidening-preview
. Viz rozšíření typu.checkConstraints
. Viz Omezení v Azure Databricks.
Jiné funkce tabulky Delta nelze odstranit.
Povolení funkcí tabulky za účelem vyřazení starších funkcí
Příkaz DROP FEATURE
vyžaduje verze protokolu, které podporují čtení a zápisy funkcí tabulky. Funkce Delta jako columnMapping
a checkConstraints
byly podporovány v dřívějších verzích protokolu. V závislosti na dalších funkcích, které jsou v tabulce povolené, možná budete muset upgradovat verze protokolu, než tyto funkce vypustíte.
K upgradu verzí čtečky tabulek a zapisovače můžete použít následující příkaz, který umožňuje převést mapování sloupců a downgradovat protokol:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.minReaderVersion' = '3',
'delta.minWriterVersion' = '7'
)
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:
- Uživatel spustí
DROP FEATURE
příkaz. - Vlastnosti tabulky, které konkrétně umožňují funkci tabulky, mají hodnoty nastavené tak, aby tuto funkci zakázaly.
- Vlastnosti tabulky, které řídí chování spojené s vyřazenou funkcí, mají možnosti nastavené na výchozí hodnoty před zavedením funkce.
- V případě potřeby se soubory dat a metadat přepíší s ohledem na aktualizované vlastnosti tabulky.
- 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.
- Po uplynutí alespoň 24 hodin uživatel znovu spustí
DROP FEATURE
příkaz s klauzulíTRUNCATE HISTORY
. - 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.
- Protokol se downgraduje a přehodí funkci tabulky.
- Pokud funkce tabulky, které jsou v tabulce, mohou být reprezentovány starší verzí protokolu,
minReaderVersion
aminWriterVersion
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?