Kompatibilita funkcí Delta Lake a protokoly

Protokoly tabulek Delta Lake určují, které funkce musí klient podporovat pro čtení nebo zápis tabulky. Tato stránka se věnuje verzím protokolů, funkcím tabulek, požadavkům na kompatibilitu a způsobu, jak Azure Databricks spravovat upgrady protokolů. Projděte si také podrobnosti tabulky s popisem podrobností.

Tabulkový protokol a kompatibilita

Každá tabulka Delta Lake má specifikaci protokolu, která označuje sadu funkcí potřebných ke čtení a zápisu do tabulky. Aplikace používají specifikaci protokolu k určení, jestli mohou podporovat všechny funkce, které tabulka používá. Pokud aplikace nemůže podporovat funkci v aktuálním protokolu tabulky, aplikace nemůže tuto tabulku číst ani zapisovat.

Většina nových funkcí Delta Lake vyžaduje upgrade protokolu tabulky.

Následující tabulka uvádí klíčové termíny, které popisují protokoly Delta Lake:

Term Description
Klient Delta Lake Jakýkoli systém, který čte nebo zapisuje do tabulky Delta Lake.
Protokol pro čtení Určuje podporu potřebnou pro klienta Delta Lake ke čtení tabulky.
Zapsat protokol Určuje podporu potřebnou pro klienta Delta Lake k zápisu do tabulky.
minReaderVersion Celočíselná hodnota protokolu čtenáře. Platné hodnoty jsou 1, 2nebo 3.
minWriterVersion Celočíselná hodnota protokolu zapisovače. Platné hodnoty jsou celá čísla 27.
Funkce tabulky Jemně odstupňovaná alternativa k verzím protokolu používaným při minReaderVersion = 3 a minWriterVersion = 7. Funkce tabulky se přiřazují k volitelně povoleným funkcím Delta Lake.
Funkce psaní Funkce tabulky, která vyžaduje podporu klienta zápisu, ale neblokuje přístup jen pro čtení.
Funkce čtenáře Funkce tabulky, která vyžaduje podporu klienta pro čtení i zápis. Viz Verze protokolu a funkce tabulek.

Funkce zápisu a zápisu mají vliv pouze na kompatibilitu s klienty zapisovače, což umožňuje přístup k tabulce jen pro čtení ze starších úloh.

Ne všechny funkce Delta Lake jsou vzájemně kompatibilní.

Některé funkce tabulek se po povolení nedají vynechat. Viz Smazat tabulku Delta Lake a snížit protokol tabulky.

Verze protokolu a funkce tabulek

Všechny tabulky Delta Lake obsahují celočíselnou verzi protokolu reprezentovanou operátorem minReaderVersion a minWriterVersion. Každá verze spojuje více funkcí a funkce jsou kumulativní napříč verzemi. Aby klienti vyhověli protokolu Delta Lake, musí implementovat podporu všech funkcí v dané verzi, včetně všech dříve vydaných funkcí.

Ve službě Databricks Runtime 12.2 LTS a vyšší nahradí funkce tabulky celočíselné protokoly podrobnými příznaky, které označují, které funkce tabulka používá. To umožňuje jemně odstupňované kontroly kompatibility mezi klienty a tabulkami.

Funkce zápisu tabulek ovlivňují způsob zápisu dat. minWriterVersion=7 Vyžadují, ale neblokují klienty čtenáře.

Funkce čtečky tabulek ovlivňují způsob čtení dat. Všechny funkce čtečky jsou také funkce pro zápis a vyžadují minReaderVersion=3 a minWriterVersion=7. Klient nemůže zapisovat do tabulky, kterou nemůže číst.

Pokud jsou funkce tabulek povolené, zobrazí se v protokolu jako readerFeatures nebo writerFeatures. Delta Lake přeloží protokol tabulky na nejnižší verzi, která podporuje všechny povolené funkce. Viz Nejnižší možný protokol.

Note

Azure Databricks zahrnuje částečnou podporu funkcí tabulek ve všech podporovaných verzích Databricks Runtime. Klienti OSS Delta Lake se rozhodnou, jak implementovat podporu pro dané funkce.

Změny protokolu

Protokol pro tabulku se mění za následujících podmínek:

  • Pokud je povolená nová funkce, protokol se upgraduje.
  • Pokud dojde k vyřazení funkce tabulky, protokol se downgraduje.

Vypnutím funkce tabulky nedojde k downgradu protokolu. Chcete-li tuto funkci úplně odebrat z protokolu, musíte ji odstranit. Ne všechny funkce tabulky je možné vynechat. Viz Smazat tabulku Delta Lake a snížit protokol tabulky.

Všechny operace změny protokolu jsou v konfliktu se souběžnými zápisy. Streamové čtení selže, pokud narazí na potvrzení, které změní metadata tabulky. Pokračujte restartováním ovlivněných datových proudů. Doporučené metody najdete v tématu Důležité informace o produkčním prostředí pro strukturované streamování.

Note

Databricks doporučuje nikdy přímo měnit minReaderVersion vlastnosti a minWriterVersion vlastnosti tabulky. Změna těchto vlastností nezabrání upgradům protokolu a jejich nastavení na nižší hodnotu tabulku downgraduje. Viz Smazat tabulku Delta Lake a snížit protokol tabulky.

Co aktivuje upgrade protokolu

Když funkci povolíte, protokol tabulky se automaticky upgraduje.

Upgrady protokolů se aktivují následujícími způsoby:

  • Automaticky povolte na základě syntaxe použité v CREATE příkazech nebo ALTER příkazech. CLUSTER BY Například v CREATE TABLE příkazu automaticky povolí clustering liquid a GENERATED ALWAYS AS povolí generované sloupce.
  • Explicitně povolte vlastnosti tabulky. Například nastavení 'delta.enableDeletionVectors' = true umožňuje vektory odstranění.
  • Povolení funkce může automaticky povolit požadované funkce. Povolení UniFormu například automaticky povolí mapování sloupců a povolení clusteringu liquid automaticky povolí kontrolní bod V2. Projděte si příslušnou dokumentaci k Azure Databricks a zjistěte, které funkce tabulky daná funkce vyžaduje.

Funkce čtečky upgraduje protokoly pro čtení i zápis. Například mapování sloupců je funkce čtenáře a vyžaduje upgrade obou protokolů, protože data se ukládají v úložišti odlišně.

Funkce zápisu, jako CHECK jsou omezení, upgraduje pouze protokol zápisu.

Warning

Většina upgradů verzí protokolu je nevratná a může narušit stávající čtečky tabulek Delta Lake, zapisovače nebo obojí. Upgradujte konkrétní tabulky pouze v případě potřeby a ověřte, že všechny aktuální a budoucí produkční nástroje podporují novou verzi protokolu.

Pro některé funkce jsou k dispozici snížení úrovně protokolů. Viz Smazat tabulku Delta Lake a snížit protokol tabulky.

Nejnižší možný protokol

Delta Lake přeloží protokol tabulky na nejnižší verzi, která podporuje všechny povolené funkce. To může jen snížit minReaderVersion nebo minWriterVersion, nikdy je zvýšit. Funkce tabulky se nikdy neodeberou automaticky. Slouží DROP FEATURE k odebrání funkce tabulky z protokolu.

Pokud jsou všechny povolené funkce plně podporovány v nižší celočíselné verzi protokolu, tabulka se může vrátit k této verzi a odstranit readerFeatures nebo writerFeatures z protokolu. Tím se nezakážou žádné funkce. Nižší verze protokolu zvyšují kompatibilitu, protože všichni klienti je musí respektovat.

Kompatibilita Azure Databricks a Databricks Runtime

Azure Databricks zavádí podporu nových funkcí Delta Lake ve verzích Databricks Runtime:

  • Tabulky napsané nižší verzí databricks Runtime mají plnou podporu čtení a zápisu ve vyšších verzích Databricks Runtime.
  • Tabulky napsané vyšší verzí Databricks Runtime můžou používat funkce tabulek, které nejsou podporované v nižších verzích Databricks Runtime.
  • Některé funkce umožňují zápisy z nižších verzí Databricks Runtime bez plného použití všech optimalizací pro povolenou funkci.

Pokud tabulky Delta Lake používáte jenom prostřednictvím Azure Databricks, stačí sledovat podporu funkcí jenom s využitím minimálních požadavků na Databricks Runtime. Pokud čtetete nebo zapisujete tabulky z externích systémů, musíte ověřit, že tito klienti podporují funkce tabulek povolené ve vašich tabulkách.

Podpora funkcí backportované tabulky

V Databricks Runtime 12.2 LTS a novějších funkcích tabulky nahradily celočíselné protokoly podrobnými příznaky, které označují, které funkce tabulky používá.

Azure Databricks podporuje backportované funkce tabulek do databricks Runtime 11.3 LTS a níže, místo aby podporovala pouze celočíselné verze protokolu, ale jenom pro funkce, které jsou v této verzi podporované.

Můžete například číst z tabulky a zapisovat do tabulky s povolenými vygenerovanými sloupci pomocí funkcí tabulky v Databricks Runtime 9.1 LTS. Databricks Runtime 9.1 LTS ale nemůžete použít ke čtení a zápisu do tabulky se sloupci identit s povolenými funkcemi tabulky, protože sloupce identit vyžadují Databricks Runtime 10.4 LTS a vyšší.

Při použití funkcí tabulky s backportovanou podporou nemusí být některé operace dostupné v dané verzi Databricks Runtime v odpovídající verzi OSS Delta Lake. Pokud vaše architektura zahrnuje klienty OSS Delta Lake, otestujte kompatibilitu před povolením funkcí tabulek v produkčních tabulkách.

Funkce Delta Lake a verze Databricks Runtime, které jsou vyžadovány.

Následující tabulka uvádí nejnižší verzi modulu Databricks Runtime s plnou podporou každé funkce, takže jsou podporovány všechny obecně dostupné funkce pro čtení i zápisy.

Feature Vyžaduje verzi Databricks Runtime nebo novější. Documentation
CHECK omezení Všechny podporované verze Databricks Runtime CHECK Omezení
Změna datového kanálu Všechny podporované verze Databricks Runtime Použití kanálu změn dat na Azure Databricks
Vygenerované sloupce Všechny podporované verze Databricks Runtime sloupce generované službou Delta Lake
Mapování sloupců Všechny podporované verze Databricks Runtime Přejmenujte a vyřaďte sloupce pomocí mapování sloupců Delta Lake
Identifikační sloupce Všechny podporované verze Databricks Runtime Sloupce identit
Funkce tabulky Všechny podporované verze Databricks Runtime Verze protokolu a funkce tabulek
Vektory odstranění Všechny podporované verze Databricks Runtime Vektory odstranění v Databricks
TimestampNTZ Databricks Runtime 13.3 LTS TIMESTAMP_NTZ typ
Jednotný Databricks Runtime 13.3 LTS Čtení tabulek Delta Lake s klienty Icebergu pomocí UniFormu
Shlukování kapalin Databricks Runtime 13.3 LTS Použijte kapalinové shlukování pro tabulky
Sledování řad Databricks Runtime 14.3 - Verze s dlouhodobou podporou (LTS) Sledování řádků v Azure Databricks
Rozšíření typu Databricks Runtime 15.4 LTS Rozšíření typu
Variant Databricks Runtime 15.4 LTS Podpora typů variant pro Apache Iceberg a Delta Lake
Collations Databricks Runtime 16.1 Podpora řazení pro Delta Lake
Chráněné kontrolní body Databricks Runtime 16.3 Odstranění funkce tabulky Delta Lake a snížení verze tabulkového protokolu
Změny v katalogu Databricks Runtime 16.4 LTS Přírůstky do katalogu

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

Note

Kanály Lakeflow 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 kanálů Lakeflow a proces upgradu verzí a poznámky k verzi Sql pro Databricks.

Funkce podle verze protokolu

Note

Informace o kompatibilitě prostředí Databricks Runtime najdete v tématu Azure Databricks a kompatibilita modulu Databricks Runtime.

Delta Lake používá k určení možností protokolu samostatné minReaderVersion hodnoty a minWriterVersion hodnoty. Open source protokol Delta Lake má standardizované funkce tabulek, ale někteří klienti stále používají starší verze protokolu. Vzhledem k tomu, že někteří klienti nemusí podporovat všechny funkce, databricks doporučuje před povolením nových funkcí v produkčních tabulkách ověřit kompatibilitu s klientem a otestovat kompatibilitu.

Apache Iceberg používá jeden format-version místo samostatných verzí pro čtení a zápis. Verze formátu Iceberg označuje, které funkce jsou k dispozici, ale nevyžadují jejich použití. Funkce jsou dobrovolné, s výjimkou sledování řádků, které je povinné ve formátu verze 3. Když se ve sloupci Iceberg zobrazí hodnota N/A , jedná se o funkci specifickou pro rozdílu bez přímého ekvivalentu icebergu.

Následující tabulka uvádí požadavky na verzi protokolu pro funkce tabulek Delta Lake a Apache Iceberg. Typ funkce označuje, zda je nutné respektovat funkci pouze pro zápisy nebo pro čtení i zápisy.

Feature Delta minWriterVersion Delta minReaderVersion Ledovce format-version Typ funkce
Základní funkce 2 1 1 Spisovatel
CHECK omezení 3 1 N/A Spisovatel
Změna datového kanálu 4 1 N/A Spisovatel
Vygenerované sloupce 4 1 N/A Spisovatel
Mapování sloupců 5 2 N/A Čtenář a zapisovač
Sloupce identit 6 1 N/A Spisovatel
Sledování řádků 7 1 3 Spisovatel
Vektory odstranění 7 3 3 Čtenář a zapisovač
Časové razítkoNTZ 7 3 1 Čtenář a zapisovač
Seskupování kapaliny 7 3 1 Čtenář a spisovatel (1)
Čtenáři Iceberg (UniForm) 7 2 N/A Zapisovač (2)
Rozšíření typu 7 3 N/A Čtenář a zapisovač
Varianta 7 3 3 Čtenář a zapisovač
Variantové skartování 7 3 3 Čtenář a zapisovač
Řazení 7 3 N/A Čtenář a zapisovač
Chráněná kontrolní stanoviště 7 1 N/A Spisovatel
Přírůstky do katalogu 7 3 N/A Čtenář a zapisovač

(1): Clustering Liquid implementuje skryté dělení.

(2): Vyžaduje povolení mapování sloupců.