Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Den här dokumentationen har dragits tillbaka och kanske inte uppdateras. De produkter, tjänster eller tekniker som nämns i det här innehållet stöds inte längre. Se Ta bort en Delta Lake-tabellfunktion och nedgradera tabellprotokollet.
Den här artikeln dokumenterar beteendet i den offentliga förhandsversionen för att ta bort Delta Lake-tabellfunktioner som är tillgängliga från och med Databricks Runtime 14.3 LTS. Databricks rekommenderar att du använder de allmänt tillgängliga funktionerna i Databricks Runtime 16.3 och senare, vilket ersätter det äldre beteendet. Se Ta bort en Delta Lake-tabellfunktion och nedgradera tabellprotokollet.
Azure Databricks ger begränsat stöd för att ta bort tabellfunktioner. När du släpper en tabellfunktion ingår följande steg:
- Inaktivera tabellegenskaper som använder tabellfunktionen.
- Ta bort alla spår av tabellfunktionen från datafilerna som stöder tabellen.
- Ta bort transaktionsposter som använder tabellfunktionen från transaktionsloggen.
- Nedgradera tabellprotokollet.
Viktigt!
Alla DROP FEATURE åtgärder står i konflikt med alla samtidiga skrivningar.
Strömningsläsningar misslyckas när de stöter på en commit som ändrar tabellmetadata. Om du vill att strömmen ska fortsätta måste du starta om den. Rekommenderade metoder finns i Produktionsöverväganden för strukturerad direktuppspelning.
Hur kan jag ta bort en Delta-tabellfunktion?
Om du vill ta bort en Delta-tabellfunktion kör du ett ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY] kommando. Se ALTER TABLE.
Du måste använda Databricks Runtime 14.3 LTS eller senare och ha MODIFY behörigheter i måltabellen för Delta.
Vilka Delta-tabellfunktioner kan tas bort?
Du kan släppa följande Delta-tabellfunktioner:
-
checkConstraints. Se Begränsningar för Azure Databricks. -
collations-preview. Se stöd för sorteringsordning för Delta Lake. -
columnMapping. Se Byt namn på och ta bort kolumner med kolumnmappning i Delta Lake. -
deletionVectors. Se Borttagningsvektorer i Databricks. -
typeWidening-preview. Se även Typbreddning. -
v2Checkpoint. Se Kompatibilitet för tabeller med flytande klustring.
Du kan inte släppa andra Delta-tabellfunktioner.
Viktigt!
Vissa Delta Lake-funktioner möjliggör flera tabellfunktioner. Vissa tabellfunktioner är beroende av andra tabellfunktioner och kan blockera att beroende tabellfunktioner släpps. Eftersom vissa tabellfunktioner inte kan tas bort innebär det att aktivering för vissa Delta Lake-funktioner inte kan återställas.
Databricks rekommenderar att du alltid testar beroende arbetsbelastningar och system för kompatibilitet med nya funktioner innan du aktiverar funktioner som uppgraderar läsar- eller skrivprotokoll för produktionsdata.
Aktivera tabellfunktioner för att släppa äldre funktioner
Anmärkning
I det här avsnittet beskrivs ett mönster som endast krävs i Databricks Runtime 16.0 och nedan.
Kommandot DROP FEATURE kräver protokollversioner som stöder tabellfunktioner som läser och skriver. Deltafunktioner som columnMapping och checkConstraints stöds i tidigare protokollversioner. Beroende på andra funktioner som är aktiverade i tabellen kan du behöva uppgradera protokollversioner innan du kan släppa dessa funktioner.
Du kan använda följande kommando för att uppgradera tabellläsaren och skrivarversionerna, vilket gör att du kan ta bort kolumnmappning och nedgradera protokollet:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.minReaderVersion' = '3',
'delta.minWriterVersion' = '7'
)
Hur tas Delta-tabellfunktionerna bort?
Eftersom Delta-tabellfunktioner påverkar hur en tabell läs-/skrivs måste de vara helt frånvarande från transaktionsloggen för fullständig borttagning. Detaljerna för funktionsborttagning varierar beroende på funktion, men följande avsnitt innehåller en allmän översikt.
Att ta bort en funktion sker i två steg och kräver att tiden har gått innan det är slutfört.
Steg 1: Förbered att släppa en tabellfunktion
Under det första steget måste du förbereda dig för att släppa tabellfunktionen. Följande beskriver vad som händer under det här steget:
- Kör kommandot
DROP FEATURE. - Tabellegenskaper som specifikt aktiverar en tabellfunktion har värden inställda för att inaktivera funktionen.
- Tabellegenskaper som styr beteenden som är associerade med den borttagna funktionen har alternativ inställda på standardvärden innan funktionen introducerades.
- Vid behov skrivs data- och metadatafiler om, med respekt för de uppdaterade tabellegenskaperna.
- Kommandot slutför körningen och returnerar ett felmeddelande som informerar dig om att du måste vänta 24 timmar för att fortsätta med funktionsborttagningen.
När du har inaktiverat en funktion kan du fortsätta skriva till måltabellen innan du slutför nedgraderingen av protokollet, men du kan inte använda tabellfunktionen som du tar bort.
Anmärkning
Om du lämnar tabellen i det här tillståndet använder åtgärder mot tabellen inte tabellfunktionen, men protokollet stöder fortfarande tabellfunktionen. Tabellen kan inte läsas av Delta-klienter som inte förstår tabellfunktionen förrän du har slutfört det sista nedgraderingssteget.
Steg 2: Nedgradera protokollet och släpp en tabellfunktion
I det andra steget trunkerar och tar du bort all transaktionshistorik som är associerad med funktionen. På så sätt kan du släppa tabellfunktionen och nedgradera protokollet.
- När minst 24 timmar har passerat kör
DROP FEATUREdu kommandot igen medTRUNCATE HISTORY-satsen. - Klienten bekräftar att inga transaktioner i det angivna kvarhållningströskelvärdet använder tabellfunktionen och trunkerar sedan tabellhistoriken till det tröskelvärdet.
- Protokollet nedgraderas och tabellfunktionen tas bort.
- Om tabellfunktionerna som finns i tabellen kan representeras av en äldre protokollversion
minReaderVersionnedgraderas tabellens ochminWriterVersiontill den lägsta versionen som stöder exakt alla återstående funktioner som används av Delta-tabellen.
Viktigt!
Körning ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY tar bort alla transaktionsloggdata som är äldre än 24 timmar. När du har släppt en Delta-tabellfunktion har du inte åtkomst till tabellhistorik eller tidsresor.