Delen via


Hoe beheert Azure Databricks de compatibiliteit van Delta Lake-functies?

Delta Lake is een onafhankelijk opensource-project onder het beheer van de Linux Foundation. Databricks introduceert ondersteuning voor nieuwe Delta Lake-functies en -optimalisaties die zijn gebaseerd op Delta Lake in Databricks Runtime-releases.

Azure Databricks-optimalisaties die gebruikmaken van Delta Lake-functies, respecteren de protocollen die worden gebruikt in OSS Delta Lake voor compatibiliteit.

Veel Azure Databricks-optimalisaties vereisen het inschakelen van Delta Lake-functies op een table. Delta Lake-functies zijn altijd achterwaarts compatibel, dus tables geschreven door een lagere Databricks Runtime-versie kan altijd worden gelezen en geschreven door een hogere Databricks Runtime-versie. Als u sommige functies inschakelt, wordt de voorwaartse compatibiliteit met workloads die in een lagere Databricks Runtime-versie worden uitgevoerd, verbroken. Voor functies die de forwaartse compatibiliteit verbreken, moet u alle workloads update die naar de geüpgradede tables verwijzen, aanpassen om een compatibele Databricks Runtime-versie te gebruiken.

Notitie

U kunt deletionVectors, v2Checkpoint, columnMapping, typeWidening-previewen collations-preview verwijderen in Azure Databricks. Zie functies van Drop Delta table.

Belangrijk

Alle protocolwijzigingsbewerkingen conflicteren met alle gelijktijdige schrijfbewerkingen.

Streaming-leesbewerkingen mislukken wanneer ze een commit tegenkomen die table-metagegevens wijzigt. Als u wilt dat de stream wordt voortgezet, moet u deze opnieuw starten. Zie Productieoverwegingen voor Gestructureerd streamen voor aanbevolen methoden.

Voor welke Delta Lake-functies zijn Databricks Runtime-upgrades vereist?

De volgende Delta Lake-functies bieden een aparte compatibiliteit. Functies zijn op een table-op-table basis ingeschakeld. In dit table wordt de laagste Databricks Runtime-versie vermeld die nog steeds wordt ondersteund door Azure Databricks.

Functie Vereist databricks Runtime-versie of hoger Documentatie
CHECK Beperkingen Databricks Runtime 9.1 LTS Set een CHECK-constraint in Azure Databricks
Gegevensfeed wijzigen Databricks Runtime 9.1 LTS Delta Lake-wijzigingenfeed gebruiken in Azure Databricks
Gegenereerd columns Databricks Runtime 9.1 LTS Delta Lake gegenereerd columns
toewijzing van Column Databricks Runtime 10.4 LTS columns hernoemen en verwijderen met Delta Lake column mapping
Identiteit columns Databricks Runtime 10.4 LTS Identiteit columns gebruiken in Delta Lake
Kenmerken van Table Databricks Runtime 12.2 LTS Wat zijn table functies?
Verwijderingsvectoren Databricks Runtime 12.2 LTS Wat zijn verwijderingsvectoren?
TijdstempelNTZ Databricks Runtime 13.3 LTS TIMESTAMP_NTZ type
Uniform Databricks Runtime 13.3 LTS Iceberg-lezen inschakelen voor Delta tables (UniForm)
Liquid clustering Databricks Runtime 13.3 LTS Liquid Clustering gebruiken voor Delta-tables
Rijtracering Databricks Runtime 14.1 Rijtracking gebruiken voor Delta-tables
Type breder maken Databricks Runtime 15.2 Type breder maken
Variant Databricks Runtime 15.3 Variantondersteuning in Delta Lake
Sorteringen Databricks Runtime 16.1 ** Collatie-ondersteuning voor Delta Lake

Zie de releaseversies en compatibiliteit van Databricks Runtime.

Notitie

Delta Live Tables en Databricks SQL upgraden automatisch runtime-omgevingen met regelmatige releases ter ondersteuning van nieuwe functies. Zie releaseopmerkingen voor Delta Live Tables en het release-upgradeproces en releaseopmerkingen voor Databricks SQL.

Wat is een table protocolspecificatie?

Elke Delta-table heeft een protocolspecificatie die de set aangeeft van functies die door de table worden ondersteund. De protocolspecificatie wordt gebruikt door toepassingen die de table lezen of schrijven om te bepalen of ze alle functies kunnen verwerken die door de table worden ondersteund. Als een toepassing niet weet hoe een functie moet worden verwerkt die wordt vermeld als ondersteund in het protocol van een table, kan die toepassing die tableniet lezen of schrijven.

De protocolspecificatie is onderverdeeld in twee onderdelen: het leesprotocol en het schrijfprotocol.

Waarschuwing

De meeste upgrades van protocolversies kunnen niet ongedaan worden gemaakt en het upgraden van de protocolversie kan de bestaande Delta Lake table-lezers, -schrijvers, of beide verstoren. Databricks raadt u aan om specifieke tables alleen bij te werken wanneer dat nodig is, zoals aanmelden voor nieuwe functies in Delta Lake. Controleer ook of al uw huidige en toekomstige productiehulpprogramma's Delta Lake-tables ondersteunen met de nieuwe protocolversie.

Protocol downgrades zijn beschikbaar voor sommige functies. Zie functies van Drop Delta table.

Leesprotocol

Het leesprotocol bevat alle functies die een table ondersteunt en die een toepassing moet begrijpen om de table correct te kunnen lezen. Voor het upgraden van het leesprotocol van een table moeten alle lezertoepassingen de toegevoegde functies ondersteunen.

Belangrijk

Alle toepassingen die naar een Delta-table schrijven, moeten een momentopname van de tablekunnen maken. Als zodanig moeten workloads die naar Delta tables schrijven, zowel aan de lees- als aan de schrijversprotocollen voldoen.

Als u een protocol tegenkomt dat niet wordt ondersteund door een workload in Azure Databricks, moet u een upgrade uitvoeren naar een hogere Databricks Runtime die dat protocol ondersteunt.

Schrijfprotocol

Het schrijfprotocol bevat alle functies die een table ondersteunt en die een toepassing moet begrijpen om naar de table te schrijven. Voor het upgraden van het schrijfprotocol van een table moeten alle schrijftoepassingen de toegevoegde functies ondersteunen. Het heeft geen invloed op alleen-lezentoepassingen, tenzij het leesprotocol ook wordt bijgewerkt.

Welke protocollen moeten worden bijgewerkt?

Voor sommige functies is het upgraden van zowel het leesprotocol als het schrijfprotocol vereist. Voor andere functies is alleen een upgrade van het schrijfprotocol vereist.

Als voorbeeld is ondersteuning voor CHECK beperkingen een functie voor schrijfprotocol: alleen het schrijven van toepassingen hoeft te weten te komen over CHECK beperkingen en deze af te dwingen.

Daarentegen vereist column-toewijzing het bijwerken van zowel de lees- als schrijfprotocollen. Omdat de gegevens anders worden opgeslagen in de table, moeten reader-applicaties inzicht hebben in column mapping, zodat ze de gegevens correct kunnen lezen.

Minimale lezer- en schrijfversies

Notitie

U moet de table protocol versie expliciet bijwerken wanneer u column mapping inschakelt.

Wanneer u Delta-functies inschakelt op een table, wordt het table-protocol automatisch bijgewerkt. Databricks raadt aan om de eigenschappen van de minReaderVersion en minWriterVersiontable niet te wijzigen. Als u deze table-eigenschappen wijzigt, voorkomt u geen protocolupgrade. Als u deze values instelt op een lagere waarde, wordt de tableniet gedowngraded. Zie Delta-table-functiesverwijderen.

Wat zijn table functies?

In Databricks Runtime 12.2 LTS en hoger introduceren Delta Lake table functies gedetailleerde vlaggen die aangeven welke functies worden ondersteund door een bepaalde table. In Databricks Runtime 11.3 LTS en hieronder zijn Delta Lake-functies ingeschakeld in bundels die protocolversies worden genoemd. Table functies zijn de opvolger van protocolversies en zijn ontworpen met het doel van verbeterde flexibiliteit voor clients die Delta Lake lezen en schrijven. Zie Wat is een protocolversie?

Notitie

Table functies hebben vereisten voor protocolversies. Zie Functies per protocolversie.

Een Delta table-functie is een markering die aangeeft dat de table een bepaalde functie ondersteunt. Elke functie is een schrijfprotocolfunctie (wat betekent dat het alleen het schrijfprotocol bijwerken) of een lees-/schrijfprotocolfunctie (wat betekent dat zowel lees- als schrijfprotocollen worden bijgewerkt om de functie in te schakelen).

Zie het Delta Lake-protocolvoor meer informatie over ondersteunde table functies in Delta Lake.

Veranderen table functies hoe Delta Lake-functies worden ingeschakeld?

Als u alleen communiceert met Delta tables via Azure Databricks, kunt u ondersteuning voor Delta Lake-functies blijven volgen met behulp van minimale Databricks Runtime-vereisten. Azure Databricks biedt ondersteuning voor het lezen van Delta-tables die zijn bijgewerkt naar table functies in alle Databricks Runtime LTS-releases, zolang alle functies die door de table worden gebruikt, worden ondersteund door die release.

Als u delta-tables leest en schrijft met behulp van andere systemen, moet u mogelijk rekening houden met de invloed van table functies op de compatibiliteit, omdat er een risico bestaat dat het systeem de bijgewerkte protocolversies niet kan begrijpen.

Belangrijk

Table functies worden geïntroduceerd in de Delta Lake-indeling voor schrijverversie 7 en lezer versie 3. Azure Databricks heeft de code teruggeporteerd naar alle ondersteunde Databricks Runtime LTS-versies om ondersteuning toe te voegen voor table-functies, maar alleen voor die functies die al worden ondersteund in die Databricks Runtime. Dit betekent dat hoewel u ervoor kunt kiezen om table functies te gebruiken om gegenereerde columns in te schakelen en nog steeds met deze tables te werken in Databricks Runtime 9.1 LTS, tables met identiteit columns ingeschakeld (waarvoor Databricks Runtime 10.4 LTS vereist) nog steeds niet wordt ondersteund in die Databricks Runtime.

Wat is een protocolversie?

Een protocolversie is een protocolnummer dat een bepaalde groepering van table functies aangeeft. In Databricks Runtime 11.3 LTS en hieronder kunt u table functies niet afzonderlijk inschakelen. Protocolversies bundelen een groep functies.

Delta tables een afzonderlijke protocolversie opgeven voor het leesprotocol en het schrijfprotocol. Het transactielogboek voor een Delta-table bevat informatie over protocolversiebeheer die delta lake-evolutie ondersteunt. Zie Delta Lake table details bekijken met een beschrijving van de details.

De protocolversies bundelen alle functies van eerdere protocollen. Zie Functies per protocolversie.

Notitie

Vanaf writer versie 7 en lezer versie 3 heeft Delta Lake het concept van table functies geïntroduceerd. Met table functies kunt u er nu voor kiezen om alleen de functies in te schakelen die worden ondersteund door andere clients in uw gegevensecosysteem. Zie Wat zijn table functies?.

Functies per protocolversie

In de volgende table worden de minimale protocolversies weergegeven die vereist zijn voor Delta Lake-functies.

Notitie

Als u zich alleen bezig houdt met de compatibiliteit van Databricks Runtime, raadpleegt u welke Delta Lake-functies Databricks Runtime-upgrades vereisen?. Delta Sharing biedt alleen ondersteuning voor het lezen van tables met functies waarvoor minReaderVersion = 1is vereist.

Functie minWriterVersion minReaderVersion Documentatie
Basisfunctionaliteit 2 1 Wat is Delta Lake?
CHECK Beperkingen 3 1 Set een CHECK constraint in Azure Databricks
Gegevensfeed wijzigen 4 1 Delta Lake-wijzigingenfeed gebruiken in Azure Databricks
Gegenereerde columns 4 1 Delta Lake gegenereerd columns
toewijzing van Column 5 2 hernoem en verwijder columns met Delta Lake column mapping
Identiteit columns 6 2 Identiteits-columns gebruiken in Delta Lake
Table kenmerken gelezen 7 1 Wat zijn table functies?
Table functies schrijven 7 3 Wat zijn table functies?
Rijtracering 7 1 Rijbewaking gebruiken voor Delta tables
Verwijderingsvectoren 7 3 Wat zijn verwijderingsvectoren?
TijdstempelNTZ 7 3 TIMESTAMP_NTZ type
Liquid clustering 7 3 Gebruik liquid clustering voor Delta-tables
Uniform 7 2 Iceberg-lezingen inschakelen in Delta tables (UniForm)
Type breder maken 7 3 Type breder maken
Variant 7 3 Variantondersteuning in Delta Lake
Sorteringen 7 3 ** Collatie-ondersteuning voor Delta Lake