Sdílet prostřednictvím


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 napsané nižší verzí Databricks Runtime je možné 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é přeruší kompatibilitu vpřed, musíte aktualizovat všechny úlohy, které odkazují na upgradované tabulky, aby používaly kompatibilní verzi Databricks Runtime.

Poznámka:

Na Azure Databricks můžete zrušit deletionVectors, v2Checkpoint, columnMapping, typeWidening-previewa collations-preview. Podívejte se na funkce tabulky Drop Delta .

Důležité

Všechny operace změny protokolu kolidují se všemi souběžnými zápisy.

Streamové čtení selže, pokud 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 narušují dopřednou kompatibilitu. Funkce jsou povolené u každé jednotlivé tabulky. 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 proudu změn Delta Lake v Azure Databricks
Vygenerované sloupce Databricks Runtime 9.1 LTS sloupce generované službou Delta Lake
Mapování sloupců Databricks Runtime 10.4 LTS Přejmenujte a vyřaďte sloupce pomocí mapování sloupců Delta Lake
Identifikační sloupce Databricks Runtime 10.4 LTS Použití sloupců identity v Delta Lake
Funkce tabulky Databricks Runtime 12.2 LTS Co jsou funkce tabulky?
Vektory odstranění Databricks Runtime 12.2 LTS Co jsou to vektory odstranění?
Časové razítkoNTZ Databricks Runtime 13.3 LTS TIMESTAMP_NTZ typ
Jednotný Databricks Runtime 13.3 LTS čtení tabulek Delta s klienty Icebergu
Shlukování kapalin Databricks Runtime 13.3 LTS Použití metody liquid clustering pro tabulky Delta
Sledování řádků Databricks Runtime 14.1 Použití sledování řádků pro tabulky Delta
Rozšíření typu Databricks Runtime 15.2 Rozšíření typu
Varianta Databricks Runtime 15.3 Podpora různých variant v Delta Lake
Řazení Databricks Runtime 16.1 Podpora řazení pro Delta Lake

Viz poznámky k verzím a kompatibilitě Databricks Runtime.

Poznámka:

DLT 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 DLT a proces upgradu verze a poznámky k verzi Databricks SQL .

Co je specifikace protokolu tabulky?

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.

Varování

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 snížení úrovně protokolů. Podívejte se na 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.

Zapsat protokol

Protokol zápisu obsahuje seznam všech funkcí, které tabulka podporuje a kterým musí aplikace rozumět, aby do tabulky správně zapisovala. 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 funkcí protokolu zápisu: pouze zapisovací aplikace potřebují 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 nedoporučuje měnit vlastnosti tabulky minReaderVersion a minWriterVersion. Změna těchto vlastností tabulky nezabrání upgradu protokolu. Nastavení těchto hodnot na nižší hodnotu tabulku neodgraduje. Podívejte se na funkce tabulky Drop Delta .

Co jsou funkce tabulky?

V Databricks Runtime 12.2 LTS a novějších verzích zavádí funkce tabulky Delta Lake 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 na 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ď funkcí protokolu zápisu (což znamená, že upgraduje pouze protokol zápisu), nebo funkcí protokolu pro čtení a zápis (což znamená, že se upgraduje jak protokol čtení, tak protokol zápisu).

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

Mění funkce tabulek způsob, jak se povolují funkce 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 verzi zapisovače 7 a verzi čtečky 3. Azure Databricks má zpětně přenesený kód pro všechny podporované verze Databricks Runtime LTS, aby přidal podporu tabulkových funkcí, ale pouze pro ty funkce, které jsou již podporovány v Databricks Runtime. 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 seskupují sadu 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. Podívejte se na Podrobnosti tabulky Delta Lake s podrobným popisem.

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. Viz Co jsou funkce tabulky?.

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? Delta Sharing podporuje pouze čtení tabulek s funkcemi, které vyžadují minReaderVersion = 1.

Funkce minWriterVersion minReaderVersion Dokumentace
Základní funkce 2 1 Co je Delta Lake?
CHECK omezení 3 1 Nastavení omezení CHECK v Azure Databricks
Změna datového kanálu 4 1 Použití datového proudu změn Delta Lake v Azure Databricks
Vygenerované sloupce 4 1 sloupce generované službou Delta Lake
Mapování sloupců 5 2 Přejmenujte a odstraňte sloupce pomocí mapování sloupců Delta Lake
Sloupce identit 6 2 Použití identifikátorových sloupců v Delta Lake
Čtení vlastností tabulky 7 1 Co jsou funkce tabulky?
Funkce psaní v tabulce 7 3 Co jsou funkce tabulky?
Sledování řádků 7 1 Použití sledování řádků pro tabulky Delta
Vektory odstranění 7 3 Co jsou to vektory odstranění?
Časové razítkoNTZ 7 3 TIMESTAMP_NTZ typ
Klastr tekutin 7 3 Použití metody liquid clustering pro tabulky Delta
Uniforma 7 2 čtení tabulek Delta s klienty Icebergu
Rozšíření typu 7 3 Rozšíření typu
Varianta 7 3 Podpora variant ve službě Delta Lake
Řazení 7 3 podpora kolací pro Delta Lake