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.
In Databricks Runtime 16.4 LTS en hoger DROP FEATURE verwijdert u een Delta Lake-tabelfunctie en downgradet u het tabelprotocol naar de laagste versie die ondersteuning biedt voor de resterende functies. Gebruik dit alleen om compatibiliteit met eerdere Databricks Runtime-versies, OpenSharing of externe Delta Lake-clients te herstellen.
Niet alle functies kunnen worden verwijderd. Zie Ondersteunde tabelfuncties.
Note
Verouderde ondersteuning voor DROP FEATURE is beschikbaar vanaf Databricks Runtime 14.3 LTS. Databricks raadt aan om Databricks Runtime 16.3 en hoger te gebruiken voor alle DROP FEATURE opdrachten, waardoor het verouderde gedrag wordt vervangen. Zie Drop Delta-tabelfuncties (verouderd) voor documentatie over de verouderde functionaliteit.
Een Delta Lake-functie verwijderen
Important
Alle DROP FEATURE bewerkingen conflicteren met alle gelijktijdige schrijfbewerkingen.
Streaming-leesbewerkingen mislukken wanneer ze een doorvoer tegenkomen die metagegevens van de tabel wijzigt. U moet betrokken streams opnieuw opstarten. Zie voor aanbevolen methoden Productieoverwegingen voor Gestructureerde Streaming.
U moet Databricks Runtime 16.3 of hoger gebruiken en bevoegdheden hebben MODIFY voor de Delta Lake-doeltabel. U kunt slechts één tabelfunctie met elke DROP FEATURE opdracht neerzetten.
Als u een tabelfunctie wilt verwijderen, gebruikt u de volgende syntaxis:
ALTER TABLE <table-name> DROP FEATURE <feature-name>
Zie ALTER TABLE voor meer informatie.
Gedrag
Wanneer u een tabelfunctie verwijdert, voert Delta Lake de volgende wijzigingen in de tabel atomisch door:
- Schakel tabeleigenschappen uit die gebruikmaken van de tabelfunctie.
- Herschrijf de onderliggende gegevensbestanden indien nodig om alle traceringen van de tabelfunctie te verwijderen uit de huidige tabelversie.
- Maak een set beveiligde controlepunten waarmee lezersclients de tabelgeschiedenis correct kunnen lezen.
- Voeg de schrijverstabel-functie
checkpointProtectiontoe aan het tabelprotocol. - Downgrade het tabelprotocol naar de laagste lezer- en schrijfversies die ondersteuning bieden voor alle overige tabelfuncties. Zie het laagste mogelijke protocol.
De checkpointProtection tabelfunctie
Wanneer u een functie verwijdert, herschrijft Delta Lake gegevens en metagegevens in de geschiedenis van de tabel als beveiligde controlepunten om de downgrade van het protocol te respecteren.
Na de downgrade heeft de tabel geen clients nodig om de verwijderde functie te ondersteunen. De beveiligde controlepunten en de checkpointProtection functie bereiken het volgende:
- Lezerclients die ondersteuning bieden voor de verwijderde tabelfunctie kunnen alle beschikbare tabelgeschiedenisversies lezen.
- Lezerclients die geen ondersteuning bieden voor de verwijderde functie, kunnen tabelgeschiedenisversies lezen uit de downgradeversie van het protocol.
- Schrijfclients wijzigen geen controlepunten die zijn gemaakt vóór de downgrade van het protocol.
-
checkpointProtectionmarkeert protocol downgrade controlepunten als beveiligd, en tabelonderhoudsbewerkingen respecteren deze markeringen.
Hoewel u slechts één tabelfunctie met elke DROP FEATURE opdracht kunt neerzetten, kan een tabel meerdere beveiligde controlepunten en verwijderde functies in de tabelgeschiedenis hebben.
Alle Databricks Runtime-versies ondersteunen de checkpointProtection tabelfunctie, wat betekent dat met deze tabelfunctie geen lees- of schrijfbewerkingen op Azure Databricks worden geblokkeerd.
checkpointProtection blokkeert geen alleen-lezentoegang van OSS Delta Lake-clients. Als u de tabel volledig wilt downgraden en de checkpointProtection tabelfunctie wilt verwijderen, moet u deze gebruiken TRUNCATE HISTORY. Databricks raadt u aan dit patroon alleen te gebruiken als u naar tabellen moet schrijven met externe Delta-clients die geen ondersteuning bieden checkpointProtection. Zie Tabelprotocollen volledig downgraden voor verouderde clients.
Ondersteunde tabelfuncties
U kunt de volgende Delta Lake-tabelfuncties verwijderen:
-
catalogManaged. Zie Cataloguscommits. -
checkConstraints. Zie Beperkingen voor Azure Databricks. -
collations-preview. Zie Collatie-ondersteuning voor Delta Lake. -
columnMapping. Zie Kolommen hernoemen en verwijderen met kolomtoewijzing van Delta Lake. -
deletionVectors. Zie Verwijderingsvectoren in Databricks. -
typeWidening. Zie Type breder maken. -
v2Checkpoint. Zie Downgraden naar de klassieke versie. -
checkpointProtection. Zie decheckpointProtectiontabelfunctie.
U kunt geen andere Delta Lake-tabelfuncties verwijderen.
Important
Databricks raadt u aan om altijd afhankelijke workloads en systemen te testen op compatibiliteit met nieuwe functies voordat u functies inschakelt waarmee lezer- of schrijfprotocollen voor productiegegevens worden bijgewerkt.
Houd rekening met het volgende:
- Door kolomtoewijzing uit een tabel te verwijderen, worden de willekeurige voorvoegsels die worden gebruikt in mapnamen voor gepartitioneerde tabellen niet verwijderd. Zie Delen Delta Lake en Parquet partitioneringsstrategieën?.
- Sommige Delta Lake-functies maken meerdere tabelfuncties mogelijk die afhankelijk zijn van elkaar, waardoor u mogelijk geen afhankelijke functies kunt verwijderen. U kunt geen functies terugdraaien die niet kunnen worden verwijderd.
Tabelprotocollen volledig verlagen voor verouderde clients
Als u externe Delta Lake-clients gebruikt met schrijfbewerkingen die de checkpointProtection tabelfunctie niet ondersteunen, moet u het TRUNCATE HISTORY tabelprotocol volledig downgraden en alle traceringen van de verwijderde tabelfuncties verwijderen. Als u de bewerking uitvoert TRUNCATE HISTORY , wordt alle tabelgeschiedenis verwijderd die ouder is dan 24 uur.
Databricks raadt aan het standaardgedrag voor DROP FEATURE te testen voordat TRUNCATE HISTORY wordt uitgevoerd.
Voor de volledige downgrade zijn twee stappen vereist, ten minste 24 uur na elkaar.
Stap 1: Een tabelfunctie verwijderen voorbereiden
Voer de ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY opdracht uit. De opdracht past het volgende toe:
- Hiermee worden tabeleigenschappen bijgewerkt om de functie uit te schakelen.
- Hiermee stelt u de bijbehorende tabeleigenschappen voor de functie opnieuw in op de standaardwaarden.
- Herschrijf zo nodig gegevens- en metagegevensbestanden om de bijgewerkte eigenschappen weer te geven.
- Retourneert een bericht dat u minimaal 24 uur moet wachten voordat u het opnieuw uitvoert om de protocol downgrade te voltooien.
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.
Note
Als u de tabel in deze status laat staan, gebruiken bewerkingen voor de tabel niet de tabelfunctie, 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 ondersteunen.
Stap 2: Het protocol downgraden en een tabelfunctie verwijderen
Voer na minstens 24 uur de ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY opdracht opnieuw uit. De opdracht past het volgende toe:
- Hiermee wordt de tabelgeschiedenis afgekapt tot de bewaardrempel.
- Bevestigt dat de functie geen resterende transacties gebruikt.
- Hiermee wordt de functie verwijderd en wordt het tabelprotocol gedowngraded naar de laagste versie die ondersteuning biedt voor de resterende functies.
Important
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 deze opdracht hebt gebruikt om het tabelprotocol te downgraden, hebt u geen toegang tot de tabelgeschiedenis of het tijdreizen.
Bekijk de compatibiliteit en protocollen van Delta Lake-functies.