Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 2 až 7. |
| 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
CREATEpříkazech neboALTERpříkazech.CLUSTER BYNapříklad vCREATE TABLEpříkazu automaticky povolí clustering liquid aGENERATED ALWAYS ASpovolí generované sloupce. - Explicitně povolte vlastnosti tabulky. Například nastavení
'delta.enableDeletionVectors' = trueumožň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č |