Jak Azure Databricks spravuje kompatibilitu funkcí Delta Lake?

Delta Lake je nezávislý opensourcový projekt v rámci zásad správného řízení Linux Foundation. Databricks zavádí podporu nových funkcí a optimalizací Delta Lake, které vycházejí z Delta Lake ve verzích Databricks Runtime.

Optimalizace Azure Databricks, které využívají funkce Delta Lake, respektují protokoly používané v OSS Delta Lake kvůli kompatibilitě.

Mnoho optimalizací Azure Databricks vyžaduje povolení funkcí Delta Lake v tabulce. Funkce Delta Lake jsou vždy zpětně kompatibilní, takže tabulky vytvořené nižší verzí Databricks Runtime lze vždy číst a zapisovat vyšší verzí Databricks Runtime. Povolení některých funkcí narušuje dopřednou kompatibilitu s úlohami spuštěnými v nižší verzi Databricks Runtime. U funkcí, které naruší dopřednou kompatibilitu, musíte aktualizovat všechny úlohy, které odkazují na upgradované tabulky, aby používaly kompatibilní verzi Databricks Runtime.

Poznámka:

Azure Databricks můžete vypustit deletionVectors a v2Checkpoint zapnout. Viz Funkce tabulky Drop Delta.

Důležité

Všechny operace změny protokolu kolidují 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é funkce Delta Lake vyžadují upgrady Databricks Runtime?

Následující funkce Delta Lake přeruší kompatibilitu vpřed. Funkce jsou povolené v tabulce po tabulce. Tato tabulka uvádí nejnižší verzi databricks Runtime, kterou Azure Databricks stále podporuje.

Funkce Vyžaduje verzi Databricks Runtime nebo novější. Dokumentace
CHECK Omezení Databricks Runtime 9.1 LTS Nastavení omezení CHECK v Azure Databricks
Změna datového kanálu Databricks Runtime 9.1 LTS Použití datového kanálu změn Delta Lake v Azure Databricks
Vygenerované sloupce Databricks Runtime 9.1 LTS Vygenerované sloupce Delta Lake
Mapování sloupců Databricks Runtime 10.4 LTS Přejmenování a vyřazení sloupců s mapováním sloupců Delta Lake
Sloupce identit Databricks Runtime 10.4 LTS Použití sloupců identit v Delta Lake
Funkce tabulky Databricks Runtime 12.1 (nepodporované) Co jsou funkce tabulky?
Vektory odstranění Databricks Runtime 12.1 (nepodporované) Co jsou to vektory odstranění?
Časové razítkoNTZ Databricks Runtime 13.0 (nepodporované) typ TIMESTAMP_NTZ
Jednotné Databricks Runtime 13.2 (nepodporované) Univerzální formát (UniForm) pro kompatibilitu Icebergu s tabulkami Delta
Clustering Liquid Databricks Runtime 13.3 LTS Použití clusteringu liquid pro tabulky Delta

Viz poznámky k verzi databricks Runtime a verze kompatibility.

Poznámka:

Delta Live Tables a Databricks SQL automaticky upgradují běhová prostředí s pravidelnými verzemi, aby podporovaly nové funkce. Přečtěte si poznámky k verzi Delta Live Tables a proces upgradu verzí a poznámky k verzi Sql pro Databricks.

Co je specifikace tabulkového protokolu?

Každá tabulka Delta má specifikaci protokolu, která označuje sadu funkcí, které tabulka podporuje. Specifikace protokolu používají aplikace, které čtou nebo zapisují tabulku, k určení, jestli dokážou zpracovat všechny funkce, které tabulka podporuje. Pokud aplikace neví, jak zpracovat funkci, která je uvedena jako podporovaná v protokolu tabulky, pak tato aplikace nemůže tuto tabulku číst ani zapisovat.

Specifikace protokolu je oddělena do dvou součástí: protokol pro čtení a protokol zápisu.

Upozorňující

Většina upgradů verzí protokolu je nevratná a upgrade verze protokolu může narušit stávající čtečky tabulek Delta Lake, zapisovače nebo obojí. Databricks doporučuje upgradovat konkrétní tabulky pouze v případě potřeby, například přihlásit se k novým funkcím v Delta Lake. Měli byste také zkontrolovat, že všechny aktuální a budoucí produkční nástroje podporují tabulky Delta Lake s novou verzí protokolu.

Pro některé funkce jsou k dispozici downgrady protokolů. Viz Funkce tabulky Drop Delta.

Protokol pro čtení

Protokol pro čtení obsahuje seznam všech funkcí, které tabulka podporuje, a že aplikace musí pochopit, aby mohla tabulku správně číst. Upgrade protokolu čtení tabulky vyžaduje, aby všechny aplikace pro čtení podporovaly přidané funkce.

Důležité

Všechny aplikace, které zapisují do tabulky Delta, musí být schopné vytvořit snímek tabulky. Úlohy, které zapisují do tabulek Delta, proto musí respektovat požadavky na protokol čtenáře i zápisu.

Pokud narazíte na protokol, který není podporován úlohou v Azure Databricks, musíte upgradovat na vyšší prostředí Databricks Runtime, které tento protokol podporuje.

Protokol zápisu

Protokol zápisu obsahuje seznam všech funkcí, které tabulka podporuje, a že aplikace musí rozumět, aby se zápis do tabulky správně zapsal. Upgrade protokolu zápisu tabulky vyžaduje, aby všechny aplikace pro zápis podporovaly přidané funkce. Nemá vliv na aplikace jen pro čtení, pokud není upgradován také protokol pro čtení.

Které protokoly je potřeba upgradovat?

Některé funkce vyžadují upgrade protokolu čtení i protokolu zápisu. Jiné funkce vyžadují pouze upgrade protokolu zápisu.

Například podpora CHECK omezení je funkce protokolu zápisu: pouze zápis aplikací potřebuje vědět o CHECK omezeních a vynucovat je.

Naproti tomu mapování sloupců vyžaduje upgrade protokolů pro čtení i zápis. Vzhledem k tomu, že data jsou uložená odlišně v tabulce, musí aplikace pro čtení pochopit mapování sloupců, aby mohly data správně číst.

Minimální verze čtečky a zapisovače

Poznámka:

Při povolování mapování sloupců je nutné explicitně upgradovat verzi protokolu tabulky.

Když povolíte funkce Delta v tabulce, protokol tabulky se automaticky upgraduje. Databricks doporučuje změnit minReaderVersion vlastnosti a minWriterVersion vlastnosti tabulky. Změna těchto vlastností tabulky nezabrání upgradu protokolu. Nastavení těchto hodnot na nižší hodnotu tabulku neodgraduje. Viz Funkce tabulky Drop Delta.

Co jsou funkce tabulky?

V Databricks Runtime 12.2 LTS a novějších funkcích tabulky Delta Lake zavádí podrobné příznaky určující, které funkce jsou podporovány danou tabulkou. V Databricks Runtime 11.3 LTS a níže byly funkce Delta Lake povoleny v balíčcích označovaných jako verze protokolu. Funkce tabulek jsou následníkem verzí protokolu a jsou navrženy s cílem zlepšit flexibilitu pro klienty, kteří čtou a zapisují Delta Lake. Podívejte se, co je verze protokolu?

Poznámka:

Funkce tabulek mají požadavky na verzi protokolu. Viz Funkce podle verze protokolu.

Funkce tabulky Delta je značka, která označuje, že tabulka podporuje konkrétní funkci. Každá funkce je buď funkce protokolu zápisu (což znamená, že upgraduje pouze protokol zápisu) nebo funkci protokolu pro čtení a zápis (což znamená, že funkce se upgraduje jak protokoly pro čtení, tak zápis).

Další informace o podporovaných funkcích tabulek v Delta Lake najdete v protokolu Delta Lake.

Mění funkce tabulek způsob povolení funkcí Delta Lake?

Pokud pracujete jenom s tabulkami Delta prostřednictvím Azure Databricks, můžete dál sledovat podporu funkcí Delta Lake s využitím minimálních požadavků na Databricks Runtime. Azure Databricks podporuje čtení tabulek Delta, které byly upgradovány na funkce tabulek ve všech verzích LTS modulu Databricks Runtime, pokud jsou v této verzi podporované všechny funkce používané tabulkou.

Pokud čtetete a zapisujete z tabulek Delta pomocí jiných systémů, možná budete muset zvážit, jak funkce tabulek ovlivňují kompatibilitu, protože existuje riziko, že systém nerozuměl upgradovaným verzím protokolu.

Důležité

Funkce tabulek jsou představeny ve formátu Delta Lake pro zapisovací verze 7 a čtečky verze 3. Azure Databricks má backportovaný kód do všech podporovaných verzí LTS modulu Databricks Runtime, aby se přidala podpora funkcí tabulek, ale jenom pro tyto funkce, které už databricks Runtime podporují. To znamená, že i když se můžete přihlásit k používání funkcí tabulky, abyste povolili vygenerované sloupce a stále s těmito tabulkami pracovali v Databricks Runtime 9.1 LTS, tabulky s povolenými sloupci identit (které vyžadují Databricks Runtime 10.4 LTS) se v databricks Runtime stále nepodporují.

Co je verze protokolu?

Verze protokolu je číslo protokolu, které označuje konkrétní seskupení funkcí tabulky. V Databricks Runtime 11.3 LTS a níže nemůžete povolit funkce tabulek jednotlivě. Verze protokolu sbalí skupinu funkcí.

Tabulky Delta určují samostatnou verzi protokolu pro čtení a zápis. Transakční protokol pro tabulku Delta obsahuje informace o správě verzí protokolu, které podporují vývoj Delta Lake. Přečtěte si podrobnosti o tabulce Delta Lake s popisem podrobností.

Verze protokolu sbalí všechny funkce z předchozích protokolů. Viz Funkce podle verze protokolu.

Poznámka:

Počínaje zapisovačem verze 7 a čtečkou verze 3 zavedla Delta Lake koncept funkcí tabulek. Pomocí funkcí tabulky se teď můžete rozhodnout povolit jenom ty funkce, které podporují ostatní klienti ve vašem datovém ekosystému. Podívejte se, co jsou funkce tabulek?

Funkce podle verze protokolu

Následující tabulka uvádí minimální verze protokolu vyžadované pro funkce Delta Lake.

Poznámka:

Pokud se zabýváte kompatibilitou prostředí Databricks Runtime, podívejte se, jaké funkce Delta Lake vyžadují upgrady Databricks Runtime? Rozdílové sdílení podporuje pouze čtení tabulek s funkcemi, které vyžadují minReaderVersion = 1.

Funkce minWriterVersion minReaderVersion Dokumentace
Základní funkce 2 0 Co je Delta Lake?
CHECK Omezení 3 0 Nastavení omezení CHECK v Azure Databricks
Změna datového kanálu 4 0 Použití datového kanálu změn Delta Lake v Azure Databricks
Vygenerované sloupce 4 0 Vygenerované sloupce Delta Lake
Mapování sloupců 5 2 Přejmenování a vyřazení sloupců s mapováním sloupců Delta Lake
Sloupce identit 6 2 Použití sloupců identit v Delta Lake
Čtení funkcí tabulky 7 0 Co jsou funkce tabulky?
Zápis funkcí tabulky 7 3 Co jsou funkce tabulky?
Vektory odstranění 7 3 Co jsou to vektory odstranění?
Časové razítkoNTZ 7 3 typ TIMESTAMP_NTZ
Clustering Liquid 7 3 Použití clusteringu liquid pro tabulky Delta
Jednotné 7 2 Univerzální formát (UniForm) pro kompatibilitu Icebergu s tabulkami Delta