Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Delta Lake-tabelprotocollen geven aan welke functies een client moet ondersteunen voor het lezen of schrijven van een tabel. Deze pagina bevat protocolversies, tabelfuncties, compatibiliteitsvereisten en hoe Azure Databricks protocolupgrades beheert. Zie ook Tabeldetails controleren met een beschrijving.
Tabelprotocol en compatibiliteit
Elke Delta Lake-tabel heeft een protocolspecificatie die de set mogelijkheden aangeeft die nodig zijn om van de tabel te lezen en naar de tabel te schrijven. Toepassingen gebruiken de protocolspecificatie om te bepalen of ze alle functies kunnen ondersteunen die in de tabel worden gebruikt. Als een toepassing geen ondersteuning biedt voor een functie in het huidige protocol van een tabel, kan die toepassing die tabel niet lezen of schrijven.
Voor de meeste nieuwe mogelijkheden van Delta Lake moet u het tabelprotocol upgraden.
De volgende tabel bevat de belangrijkste termen die Delta Lake-protocollen beschrijven:
| Termijn | Description |
|---|---|
| Delta Lake-client | Elk systeem dat naar een Delta Lake-tabel leest of schrijft. |
| Leesprotocol | Dit specificeert de ondersteuning die vereist is voor een Delta Lake-client om een tabel te lezen. |
| Schrijfprotocol | Hiermee geeft u de ondersteuning op die nodig is voor een Delta Lake-client om naar een tabel te schrijven. |
minReaderVersion |
Integerwaarde van het lezerprotocol. Geldige waarden zijn 1, 2of 3. |
minWriterVersion |
Integerwaarde van het writer-protocol. Geldige waarden zijn gehele getallen 2 tot en met 7. |
| Tabelfunctie | Een fijnmazig alternatief voor protocolversies die worden gebruikt bij minReaderVersion = 3 en minWriterVersion = 7. Tabelfuncties komen overeen met optioneel ingeschakelde Delta Lake-functies. |
| Schrijverfunctie | Een tabelfunctie waarvoor ondersteuning voor schrijfclients is vereist, maar die geen alleen-lezentoegang blokkeert. |
| Lezerfunctie | Een tabelfunctie waarvoor zowel ondersteuning voor lezen als schrijven is vereist. Zie Protocolversies en tabelfuncties. |
Schrijfprotocollen en schrijffuncties zijn alleen van invloed op de compatibiliteit met schrijfclients, waardoor alleen-lezentoegang tot de tabel mogelijk is vanuit verouderde workloads.
Niet alle Delta Lake-functies zijn compatibel met elkaar.
Sommige tabelfuncties kunnen niet eenmaal worden verwijderd. Zie Een Delta Lake-tabelfunctie verwijderen en het tabelprotocol degraderen.
Protocolversies en tabelfuncties
Alle Delta Lake-tabellen bevatten een protocolversie op basis van gehele getallen die wordt vertegenwoordigd door minReaderVersion en minWriterVersion. Elke versie bundelt meerdere functies en functies zijn cumulatief in verschillende versies. Om te voldoen aan het Delta Lake-protocol, moeten clients ondersteuning implementeren voor alle functies in een bepaalde versie, inclusief alle eerder uitgebrachte functies.
In Databricks Runtime 12.2 LTS en hoger vervangen tabelfuncties het protocol op basis van gehele getallen door gedetailleerde vlaggen die aangeven welke functies een tabel gebruikt. Hierdoor kunnen nauwkeurigere compatibiliteitscontroles tussen clients en tabellen worden uitgevoerd.
Tabelschrijverfuncties zijn van invloed op de manier waarop gegevens worden geschreven. Ze vereisen minWriterVersion=7 , maar blokkeren geen lezerclients.
De functies van de tabellezer zijn van invloed op de manier waarop gegevens worden gelezen. Alle lezerfuncties zijn ook schrijffuncties en vereisen minReaderVersion=3 en minWriterVersion=7. Een client kan niet schrijven naar een tabel die niet kan worden gelezen.
Wanneer tabelfuncties zijn ingeschakeld, worden ze weergegeven in het protocol als readerFeatures of writerFeatures. Delta Lake lost het tabelprotocol op naar de laagste versie die ondersteuning biedt voor alle ingeschakelde functies. Zie het laagste mogelijke protocol.
Note
Azure Databricks bevat niet-belangrijke gedeeltelijke ondersteuning voor tabelfuncties in alle ondersteunde Databricks Runtime-versies. OSS Delta Lake-clients kiezen hoe ondersteuning voor bepaalde functies moet worden geïmplementeerd.
Protocolwijzigingen
Het protocol voor een tabel verandert onder de volgende voorwaarden:
- Als een nieuwe functie is ingeschakeld, wordt het protocol bijgewerkt.
- Als een tabelfunctie wordt verwijderd, wordt het protocol gedowngraded.
Het uitschakelen van een tabelfunctie leidt niet tot een protocol downgrade. U moet de functie verwijderen om deze volledig uit het protocol te verwijderen. Niet alle tabelfuncties kunnen worden verwijderd. Zie Een Delta Lake-tabelfunctie verwijderen en het tabelprotocol degraderen.
Alle protocolwijzigingsbewerkingen conflicteren met gelijktijdige schrijfbewerkingen. Streaming-leesbewerkingen mislukken wanneer ze een doorvoer tegenkomen die metagegevens van de tabel wijzigt. Start de betrokken streams opnieuw om door te gaan. Zie voor aanbevolen methoden Productieoverwegingen voor Gestructureerde Streaming.
Note
Databricks raadt u aan de eigenschappen van de tabel en minReaderVersion de minWriterVersion tabel nooit rechtstreeks te wijzigen. Als u deze eigenschappen wijzigt, voorkomt u geen protocolupgrades en worden ze ingesteld op een lagere waarde, wordt de tabel niet gedowngraded. Zie Een Delta Lake-tabelfunctie verwijderen en het tabelprotocol degraderen.
Wat een protocolupgrade activeert
Wanneer u een functie inschakelt, wordt het tabelprotocol automatisch bijgewerkt.
Protocolupgrades worden op de volgende manieren geactiveerd:
- Automatisch inschakelen op basis van de syntaxis die wordt gebruikt in
CREATEofALTERinstructies. In eenCLUSTER BYinstructie wordt bijvoorbeeldCREATE TABLEautomatisch vloeistofclustering ingeschakeld enGENERATED ALWAYS ASworden gegenereerde kolommen ingeschakeld. - Schakel deze optie expliciet in via tabeleigenschappen. Met de instelling
'delta.enableDeletionVectors' = truekunt u bijvoorbeeld verwijderingsvectoren inschakelen. - Het inschakelen van een functie kan automatisch vereiste functies inschakelen. Als u UniForm bijvoorbeeld inschakelt, wordt kolomtoewijzing automatisch ingeschakeld en schakelt u liquid clustering automatisch in op controlepunt V2. Raadpleeg de relevante Azure Databricks documentatie om te bepalen welke tabelfuncties een bepaalde functie nodig heeft.
Lezerfuncties upgraden zowel de lees- als schrijfprotocollen. Kolomtoewijzing is bijvoorbeeld een lezerfunctie en vereist een upgrade van beide protocollen omdat gegevens anders worden opgeslagen in de opslag.
Schrijffuncties, zoals CHECK beperkingen, upgraden alleen het schrijfprotocol.
Warning
De meeste upgrades van protocolversies kunnen niet ongedaan worden genomen en kunnen bestaande Delta Lake-tabellezers, schrijvers of beide breken. Werk specifieke tabellen alleen bij wanneer dat nodig is en controleer of alle huidige en toekomstige productiehulpprogramma's ondersteuning bieden voor de nieuwe protocolversie.
Protocol downgrades zijn beschikbaar voor sommige functies. Zie Een Delta Lake-tabelfunctie verwijderen en het tabelprotocol degraderen.
Laagst mogelijke protocol
Delta Lake lost het tabelprotocol op naar de laagste versie die ondersteuning biedt voor alle ingeschakelde functies. Dit kan alleen lager minReaderVersion of minWriterVersion, nooit verhogen. Tabelfuncties worden nooit automatisch verwijderd. Hiermee DROP FEATURE verwijdert u een tabelfunctie uit het protocol.
Als alle ingeschakelde functies volledig worden ondersteund in een lagere protocolversie op basis van gehele getallen, wordt de tabel mogelijk teruggezet naar die versie en wordt verwijderd readerFeatures of writerFeatures van het protocol. Hiermee worden geen functies uitgeschakeld. Lagere protocolversies vergroten de compatibiliteit omdat alle clients deze moeten respecteren.
compatibiliteit met Azure Databricks en Databricks Runtime
Azure Databricks introduceert ondersteuning voor nieuwe Delta Lake-functies in Databricks Runtime-releases:
- Tabellen die zijn geschreven door een lagere Databricks Runtime-versie, hebben volledige ondersteuning voor lezen en schrijven in hogere Versies van Databricks Runtime.
- Tabellen die zijn geschreven door een hogere Databricks Runtime-versie, gebruiken mogelijk tabelfuncties die niet worden ondersteund in lagere Databricks Runtime-versies.
- Sommige functies bieden schrijfbewerkingen van lagere Databricks Runtime-versies zonder dat alle optimalisaties voor de ingeschakelde functie volledig worden toegepast.
Als u alleen Delta Lake-tabellen gebruikt via Azure Databricks, hoeft u alleen functieondersteuning bij te houden met behulp van minimale Databricks Runtime-vereisten. Als u tabellen van externe systemen leest of schrijft, moet u controleren of deze clients de tabelfuncties ondersteunen die zijn ingeschakeld voor uw tabellen.
Ondersteuning voor backported table-functies
In Databricks Runtime 12.2 LTS en hoger hebben tabelfuncties het protocol op basis van gehele getallen vervangen door gedetailleerde vlaggen die aangeven welke functies een tabel gebruikt.
Azure Databricks biedt ondersteuning voor backported tablefuncties voor Databricks Runtime 11.3 LTS en lager, in plaats van alleen ondersteunde gehele protocolversies, maar alleen voor functies die al in die release worden ondersteund.
U kunt bijvoorbeeld lezen van en schrijven naar een tabel waarvoor gegenereerde kolommen zijn ingeschakeld met behulp van tabelfuncties in Databricks Runtime 9.1 LTS. U kunt Databricks Runtime 9.1 LTS echter niet gebruiken om van en naar een tabel te schrijven met identiteitskolommen die zijn ingeschakeld met behulp van tabelfuncties, omdat voor identiteitskolommen Databricks Runtime 10.4 LTS en hoger is vereist.
Wanneer u tabelfuncties gebruikt met ondersteuning voor backported, zijn sommige bewerkingen die beschikbaar zijn in een bepaalde Databricks Runtime-versie mogelijk niet beschikbaar in de bijbehorende OSS Delta Lake-versie. Als uw architectuur OSS Delta Lake-clients bevat, test u de compatibiliteit voordat u tabelfuncties voor productietabellen inschakelt.
Delta Lake-functies en vereiste Databricks Runtime-versies
De volgende tabel bevat de laagste Databricks Runtime-versie met volledige ondersteuning voor elke functie, zodat alle algemeen beschikbare mogelijkheden voor zowel lees- als schrijfbewerkingen worden ondersteund.
| Feature | Vereist Databricks Runtime, versie of hoger | Documentation |
|---|---|---|
CHECK Beperkingen |
Alle ondersteunde Databricks Runtime-versies |
CHECK beperking |
| Gegevensfeed wijzigen | Alle ondersteunde Databricks Runtime-versies | Wijzigingenfeed gebruiken voor Azure Databricks |
| Gegenereerde kolommen | Alle ondersteunde Databricks Runtime-versies | door Delta Lake gegenereerde kolommen |
| Kolomtoewijzing | Alle ondersteunde Databricks Runtime-versies | Kolommen hernoemen en verwijderen met Delta Lake-kolomtoewijzing |
| ID-kolommen | Alle ondersteunde Databricks Runtime-versies | Identiteitskolommen |
| Kenmerken van de tabel | Alle ondersteunde Databricks Runtime-versies | Protocolversies en tabelfuncties |
| Verwijderingsvectoren | Alle ondersteunde Databricks Runtime-versies | Verwijderingsvectoren in Databricks |
| TimestampNTZ | Databricks Runtime 13.3 LTS |
TIMESTAMP_NTZ Type |
| Uniform | Databricks Runtime 13.3 LTS | Delta Lake-tabellen lezen met Iceberg-clients met UniForm |
| Clusteren van vloeistoffen | Databricks Runtime 13.3 LTS | Liquid clustering gebruiken voor tabellen |
| Rijvolgsysteem | Databricks Runtime 14.3 LTS | Rijtracering in Azure Databricks |
| Type-uitbreiding | Databricks Runtime 15.4 LTS | Type breder maken |
| Variant | Databricks Runtime 15.4 LTS | Ondersteuning voor varianttypen voor Apache Iceberg en Delta Lake |
| Sorteerwijzen | Databricks Runtime 16.1 | ** Collatie-ondersteuning voor Delta Lake |
| Beveiligde controlepunten | Databricks Runtime 16.3 | Een Delta Lake-tabelfunctie verwijderen en tabelprotocol downgraden |
| Catalogusdoorvoeringen | Databricks Runtime 16.4 LTS | Catalogusdoorvoeringen |
Zie de release-opmerkingen voor versies en compatibiliteit van Databricks Runtime.
Note
Lakeflow-pijplijnen en Databricks SQL upgraden automatisch runtime-omgevingen met regelmatige releases ter ondersteuning van nieuwe functies. Zie releaseopmerkingen voor Lakeflow-pijplijnen en het release-upgradeproces en de releaseopmerkingen voor Databricks SQL.
Functies volgens protocolversie
Delta Lake maakt gebruik van afzonderlijke minReaderVersion waarden en minWriterVersion waarden om protocolmogelijkheden op te geven. Het opensource Delta Lake-protocol is gestandaardiseerd op tabelfuncties, maar sommige clients gebruiken nog steeds verouderde protocolversiebeheer. Omdat sommige clients mogelijk niet alle functies ondersteunen, raadt Databricks u aan om te controleren met uw clientdocumentatie en de compatibiliteit te testen voordat nieuwe functies in productietabellen worden ingeschakeld.
Apache Iceberg maakt gebruik van één format-version in plaats van afzonderlijke lezers- en schrijfversies. Een Iceberg-indelingsversie geeft aan welke functies beschikbaar zijn, maar vereist geen gebruik. Functies zijn optioneel inschakelbaar, behalve voor het bijhouden van rijen die verplicht zijn in formaat versie 3. Wanneer een functie N/B in de kolom Iceberg weergeeft, is het een Delta-specifieke functie zonder direct Iceberg-equivalent.
De volgende tabel bevat protocolversievereisten voor Delta Lake- en Apache Iceberg-tabelfuncties. Het functietype geeft aan of een functie alleen moet worden gerespecteerd voor schrijfbewerkingen of voor zowel lees- als schrijfbewerkingen.
| Feature | Delta minWriterVersion |
Delta minReaderVersion |
Ijsberg format-version |
Functietype |
|---|---|---|---|---|
| Basisfunctionaliteit | 2 | 1 | 1 | Schrijver |
CHECK Beperkingen |
3 | 1 | N/A | Schrijver |
| Gegevensfeed wijzigen | 4 | 1 | N/A | Schrijver |
| Gegenereerde kolommen | 4 | 1 | N/A | Schrijver |
| Kolomtoewijzing | 5 | 2 | N/A | Lezer en schrijver |
| Identiteitskolommen | 6 | 1 | N/A | Schrijver |
| Rijvolgen | 7 | 1 | 3 | Schrijver |
| Verwijderingsvectoren | 7 | 3 | 3 | Lezer en schrijver |
| TijdstempelNTZ | 7 | 3 | 1 | Lezer en schrijver |
| Liquid clustering | 7 | 3 | 1 | Lezer en schrijver (1) |
| IJsberglezers (UniForm) | 7 | 2 | N/A | Schrijver (2) |
| Type breder maken | 7 | 3 | N/A | Lezer en schrijver |
| Variant | 7 | 3 | 3 | Lezer en schrijver |
| Variant shredding | 7 | 3 | 3 | Lezer en schrijver |
| Sorteringen | 7 | 3 | N/A | Lezer en schrijver |
| Beveiligde controlepunten | 7 | 1 | N/A | Schrijver |
| Catalogusdoorvoeringen | 7 | 3 | N/A | Lezer en schrijver |
(1): Met liquide clustering wordt verborgen partitionering geïmplementeerd.