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-preview
a 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 |