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.
I Databricks Runtime 16.4 LTS och senare DROP FEATURE tar du bort en Delta Lake-tabellfunktion och nedgraderar tabellprotokollet till den lägsta versionen som stöder de återstående funktionerna. Använd endast detta för att återställa kompatibiliteten med tidigare Databricks Runtime-versioner, OpenSharing eller externa Delta Lake-klienter.
Alla funktioner kan inte tas bort. Se Tabellfunktioner som stöds.
Note
Äldre stöd för DROP FEATURE är tillgängligt från och med Databricks Runtime 14.3 LTS. Databricks rekommenderar att du använder Databricks Runtime 16.3 och senare för alla DROP FEATURE kommandon, vilket ersätter det äldre beteendet. Dokumentation om äldre funktioner finns i Drop Delta table features (legacy).
Ta bort en Delta Lake-funktion
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. Du måste starta om berörda strömmar. Rekommenderade metoder finns i Produktionsöverväganden för strukturerad direktuppspelning.
Du måste använda Databricks Runtime 16.3 eller senare version och ha MODIFY behörighet till Delta Lake-måltabellen. Du kan bara släppa en tabellfunktion med varje DROP FEATURE kommando.
Om du vill släppa en tabellfunktion använder du följande syntax:
ALTER TABLE <table-name> DROP FEATURE <feature-name>
Mer information finns i ALTER TABLE.
Behavior
När du släpper en tabellfunktion genomför Delta Lake atomiskt följande ändringar i tabellen:
- Inaktivera tabellegenskaper som använder tabellfunktionen.
- Skriv om underliggande datafiler efter behov för att ta bort alla spår av tabellfunktionen från den aktuella tabellversionen.
- Skapa en uppsättning skyddade kontrollpunkter som gör det möjligt för läsarklienter att läsa tabellhistoriken korrekt.
- Lägg till skrivartabellfunktionen
checkpointProtectioni tabellprotokollet. - Nedgradera tabellprotokollet till de lägsta läsar- och skrivarversionerna som stöder alla återstående tabellfunktioner. Se Lägsta möjliga protokoll.
Tabellfunktionen checkpointProtection
När du släpper en funktion skriver Delta Lake om data och metadata i tabellens historik som skyddade kontrollpunkter för att respektera nedgraderingen av protokollet.
Efter nedgraderingen kräver tabellen inte att klienter stöder den borttagna funktionen. De skyddade kontrollpunkterna och checkpointProtection funktionen utför följande:
- Läsarklienter som stöder funktionen för borttagen tabell kan läsa alla tillgängliga tabellhistorikversioner.
- Läsarklienter som inte stöder den borttagna funktionen kan läsa tabellhistorikversioner från protokollets nedgraderingsversion framåt.
- Skrivklienter ändrar inte kontrollpunkter som skapats innan protokollet nedgraderas.
-
checkpointProtectionmarkerar protokollnedgraderingspunkter som skyddade och tabellunderhållsåtgärder respekterar dessa markörer.
Du kan bara släppa en tabellfunktion med varje DROP FEATURE kommando, men en tabell kan ha flera skyddade kontrollpunkter och borttagna funktioner i tabellhistoriken.
Alla Databricks Runtime-versioner stöder checkpointProtection tabellfunktionen, vilket innebär att den här tabellfunktionen inte blockerar läsningar eller skrivningar på Azure Databricks.
checkpointProtection blockerar inte skrivskyddad åtkomst från OSS Delta Lake-klienter. Om du vill nedgradera tabellen helt och ta bort checkpointProtection tabellfunktionen måste du använda TRUNCATE HISTORY. Databricks rekommenderar att du bara använder det här mönstret om du behöver skriva till tabeller med externa Delta-klienter som inte stöder checkpointProtection. Se Fullständigt nedgradera tabellprotokoll för äldre klienter.
Tabellfunktioner som stöds
Du kan släppa följande Delta Lake-tabellfunktioner:
-
catalogManaged. Se Katalogincheckningar. -
checkConstraints. Se Begränsningar för Azure Databricks. -
collations-preview. Se Sorteringsstöd för Delta Lake. -
columnMapping. Se Byt namn på och ta bort kolumner med kolumnmappning i Delta Lake. -
deletionVectors. Se Borttagningsvektorer i Databricks. -
typeWidening. Se Typbreddning. -
v2Checkpoint. Se Nedgradera till klassisk. -
checkpointProtection. Se TabellfunktionencheckpointProtection.
Du kan inte släppa andra Delta Lake-tabellfunktioner.
Viktigt!
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.
Tänk på följande:
- Om du tar bort kolumnmappning från en tabell tar du inte bort de slumpmässiga prefix som används i katalognamn för partitionerade tabeller. Se Har Delta Lake och Parquet samma partitioneringsstrategier?.
- Vissa Delta Lake-funktioner möjliggör flera tabellfunktioner som är beroende av varandra, vilket kan hindra dig från att släppa beroende funktioner. Du kan inte återställa funktioner som inte kan tas bort.
Helt nedgradera tabellprotokoll för äldre klienter
Om du använder externa Delta Lake-klienter med skrivningar som inte stöder checkpointProtection tabellfunktionen måste du använda TRUNCATE HISTORY för att helt nedgradera tabellprotokollet och ta bort alla spår av borttagna tabellfunktioner. Om du kör TRUNCATE HISTORY tas all tabellhistorik som är äldre än 24 timmar bort.
Databricks rekommenderar att du testar standardbeteendet för DROP FEATURE innan du kör TRUNCATE HISTORY.
Den fullständiga nedgraderingen kräver två steg, med minst 24 timmars mellanrum.
Steg 1: Förbered att släppa en tabellfunktion
Kör ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY kommandot. Kommandot tillämpar följande:
- Uppdaterar tabellegenskaperna för att inaktivera funktionen.
- Återställer associerade tabellegenskaper för funktionen till deras standardvärden.
- Skriver om data- och metadatafiler efter behov för att återspegla de uppdaterade egenskaperna.
- Returnerar ett meddelande som kräver att du väntar minst 24 timmar innan du kör det igen för att slutföra nedgradering av protokollet.
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.
Note
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 stöder tabellfunktionen förrän du har slutfört det sista nedgraderingssteget.
Steg 2: Nedgradera protokollet och släpp en tabellfunktion
Efter minst 24 timmar kör du ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY kommandot igen. Kommandot tillämpar följande:
- Kortar av tabellhistoriken till kvarhållningströskeln.
- Bekräftar att inga återstående transaktioner använder funktionen.
- Släpper funktionen och nedgraderar tabellprotokollet till den lägsta versionen som stöder de återstående funktionerna.
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 använt det här kommandot för att nedgradera tabellprotokollet kan du inte komma åt tabellhistorik eller tidsresa.