Delen via


Delta-tabelfuncties verwijderen

Belangrijk

Ondersteuning voor het verwijderen van Delta-tabelfuncties en downgrading-protocolversies bevindt zich in openbare preview in Databricks Runtime 14.1 en hoger.

Azure Databricks biedt beperkte ondersteuning voor het verwijderen van tabelfuncties. Als u een tabelfunctie wilt verwijderen, moet het volgende gebeuren:

  • Schakel tabeleigenschappen uit die gebruikmaken van de tabelfunctie.
  • Verwijder alle traceringen van de tabelfunctie uit de gegevensbestanden die de tabel back-ups maken.
  • Verwijder transactievermeldingen die gebruikmaken van de tabelfunctie uit het transactielogboek.
  • Downgrade het tabelprotocol.

Indien ondersteund, moet u deze functionaliteit alleen gebruiken om compatibiliteit met eerdere Databricks Runtime-versies, Delta Sharing of andere Delta Lake-lezer- of schrijfclients te ondersteunen.

Belangrijk

Alle DROP FEATURE bewerkingen conflicteren met alle gelijktijdige schrijfbewerkingen.

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

Hoe kan ik een Delta-tabelfunctie verwijderen?

Als u een Delta-tabelfunctie wilt verwijderen, voert u een ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY] opdracht uit. Zie ALTER TABLE.

U moet Databricks Runtime 14.1 of hoger gebruiken en bevoegdheden hebben MODIFY voor de delta-doeltabel.

Welke Delta-tabelfuncties kunnen worden verwijderd?

U kunt de volgende Delta-tabelfuncties verwijderen:

U kunt geen andere Delta-tabelfuncties verwijderen.

Tabelfuncties inschakelen om verouderde functies te verwijderen

Voor de DROP FEATURE opdracht zijn protocolversies vereist die ondersteuning bieden voor lees- en schrijfbewerkingen van tabelfuncties. Delta-functies zoals columnMapping en checkConstraints werden ondersteund in eerdere protocolversies. Afhankelijk van andere functies die in de tabel zijn ingeschakeld, moet u mogelijk protocolversies upgraden voordat u deze functies kunt verwijderen.

U kunt de volgende opdracht gebruiken om de tabellezer- en schrijfversies bij te werken, zodat u kolomtoewijzing kunt verwijderen en het protocol kunt downgraden:

ALTER TABLE <table-name> SET TBLPROPERTIES (
  'delta.minReaderVersion' = '3',
  'delta.minWriterVersion' = '7'
)

Hoe worden deltatabelfuncties verwijderd?

Omdat deltatabelfuncties lezer- en schrijfprotocollen vertegenwoordigen, moeten ze volledig afwezig zijn in het transactielogboek voor volledige verwijdering. Het verwijderen van een functie vindt plaats in twee fasen en vereist tijd om te verstrijken voordat deze is voltooid. De details van het verwijderen van functies variëren per functie, maar de volgende sectie biedt een algemeen overzicht.

Voorbereiden om een tabelfunctie te verwijderen

Tijdens de eerste fase bereidt de gebruiker zich voor om de tabelfunctie te verwijderen. In het volgende wordt beschreven wat er gebeurt tijdens deze fase:

  1. De gebruiker voert de DROP FEATURE opdracht uit.
  2. Tabeleigenschappen die specifiek een tabelfunctie inschakelen, hebben waarden ingesteld om de functie uit te schakelen.
  3. Tabeleigenschappen die gedrag bepalen dat is gekoppeld aan de verwijderde functie, hebben opties ingesteld op standaardwaarden voordat de functie werd geïntroduceerd.
  4. Indien nodig worden gegevens- en metagegevensbestanden herschreven met inachtneming van de bijgewerkte tabeleigenschappen.
  5. De opdracht wordt uitgevoerd en retourneert een foutbericht met de mededeling dat de gebruiker 24 uur moet wachten om door te gaan met het verwijderen van functies.

Nadat u een functie hebt uitgeschakeld, kunt u doorgaan met schrijven naar de doeltabel voordat u de protocol downgrade voltooit, maar u kunt de tabelfunctie die u verwijdert niet gebruiken.

Notitie

Als u de tabel in deze status laat staan, gebruiken bewerkingen voor de tabel de tabelfunctie niet, maar ondersteunt het protocol nog steeds de tabelfunctie. Totdat u de laatste downgradestap hebt voltooid, kan de tabel niet worden gelezen door Delta-clients die de tabelfunctie niet begrijpen.

Het protocol downgraden en een tabelfunctie verwijderen

Als u de tabelfunctie wilt verwijderen, moet u alle transactiegeschiedenis verwijderen die is gekoppeld aan de functie en het protocol downgraden.

  1. Nadat ten minste 24 uur is verstreken, voert de gebruiker de DROP FEATURE opdracht opnieuw uit met de TRUNCATE HISTORY component.
  2. De client bevestigt dat er geen transacties in de opgegeven bewaardrempel de tabelfunctie gebruiken en vervolgens de tabelgeschiedenis afkappen naar die treshold.
  3. Het protocol wordt gedowngraded, waardoor de tabelfunctie wordt verwijderd.
  4. Als de tabelfuncties die aanwezig zijn in de tabel kunnen worden vertegenwoordigd door een verouderde protocolversie, worden de minReaderVersion en minWriterVersion voor de tabel gedowngraded naar de laagste versie die exact alle resterende functies ondersteunt die door de Delta-tabel worden gebruikt.

Belangrijk

Als u de uitvoering uitvoert ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY , worden alle transactielogboekgegevens verwijderd die ouder zijn dan 24 uur. Nadat u een Delta-tabelfunctie hebt verwijderd, hebt u geen toegang tot de tabelgeschiedenis of het tijdreizen.

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