Kvarhållningsprincip
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer
Kvarhållningsprincipen styr den mekanism som automatiskt tar bort data från tabeller eller materialiserade vyer. Det är användbart att ta bort data som kontinuerligt flödar till en tabell och vars relevans är åldersbaserad. Principen kan till exempel användas för en tabell som innehåller diagnostikhändelser som kan bli ointressanta efter två veckor.
Kvarhållningsprincipen kan konfigureras för en specifik tabell eller materialiserad vy eller för en hel databas. Principen gäller sedan för alla tabeller i databasen som inte åsidosätter den. När principen har konfigurerats både på databas- och tabellnivå har kvarhållningsprincipen i tabellen företräde framför databasprincipen.
Det är viktigt att konfigurera en kvarhållningsprincip vid kontinuerlig inmatning av data, vilket begränsar kostnaderna.
Data som är "utanför" kvarhållningsprincipen är berättigade till borttagning. Det finns ingen specifik garanti när borttagningen sker. Data kan "dröja kvar" även om kvarhållningsprincipen utlöses.
Kvarhållningsprincipen är oftast inställd på att begränsa dataåldern sedan inmatningen. Mer information finns i SoftDeletePeriod.
Not
- Borttagningstiden är oprecis. Systemet garanterar att data inte tas bort innan gränsen överskrids, men borttagningen sker inte omedelbart efter den punkten.
- En mjuk borttagningsperiod på 0 kan anges som en del av en kvarhållningsprincip på tabellnivå, men inte som en del av en kvarhållningsprincip på databasnivå.
- När detta är klart kommer inmatade data inte att checkas in i källtabellen, vilket undviker behovet av att spara data. Därför kan
Recoverability
bara anges tillDisabled
. - En sådan konfiguration är användbar främst när data matas in i en tabell. En transaktionell uppdateringsprincip används för att transformera den och omdirigera utdata till en annan tabell.
- Kvarhållningsprincipen i en materialiserad vy endast påverkar vyn, inte källtabellen. Källdata påverkas inte.
Principobjektet
En kvarhållningsprincip innehåller följande egenskaper:
-
SoftDeletePeriod:
- Tidsintervall för vilket det är garanterat att data hålls tillgängliga för frågor. Perioden mäts från och med den tidpunkt då data matades in.
- Standardvärdet är
1,000 years
. - När du ändrar perioden för mjuk borttagning av en tabell eller databas gäller det nya värdet för både befintliga och nya data.
-
Återställningsbarhet:
- Dataåterställning (aktiverad/inaktiverad) efter att data har tagits bort.
- Standardvärdet är
Enabled
. - Om värdet är inställt på
Enabled
kan data återställas i 14 dagar efter att de har tagits bort. - Det går inte att konfigurera återställningsperioden.
Not
Data som tas bort med mjuk borttagning eller rensning kan inte återställas oavsett inställningar för kvarhållning eller återställning.
Hanteringskommandon
- Använd
.show policy retention
för att visa den aktuella kvarhållningsprincipen för en databas, tabell eller materialiserad vy. - Använd
.alter policy retention
för att ändra den aktuella kvarhållningsprincipen för en databas, tabell eller materialiserad vy.
Standardvärden
När en databas eller en tabell skapas har den som standard ingen definierad kvarhållningsprincip. Normalt skapas databasen och har sedan omedelbart sin kvarhållningsprincip angiven av skaparen enligt kända krav.
När du kör ett .show
kommando för kvarhållningsprincipen för en databas eller tabell som inte har fått sin principuppsättning visas Policy
som null
.
Standardprincipen för kvarhållning, med de standardvärden som anges ovan, kan tillämpas med hjälp av följande kommando.
.alter database DatabaseName policy retention "{}"
.alter table TableName policy retention "{}"
.alter materialized-view ViewName policy retention "{}"
Kommandot resulterar i följande principobjekt som tillämpas på databasen eller tabellen.
{
"SoftDeletePeriod": "365000.00:00:00", "Recoverability":"Enabled"
}
Du kan rensa kvarhållningsprincipen för en databas eller tabell med hjälp av följande kommando.
.delete database DatabaseName policy retention
.delete table TableName policy retention
Exempel
För en miljö som har en databas med namnet MyDatabase
, med tabeller MyTable1
, MyTable2
och MySpecialTable
.
Mjuk borttagningsperiod på sju dagar och återställningsbarhet inaktiverad
Ange att alla tabeller i databasen ska ha en mjuk borttagningsperiod på sju dagar och inaktiverad återställningsbarhet.
Alternativ 1 (rekommenderas): Ange en kvarhållningsprincip på databasnivå och kontrollera att inga principer på tabellnivå har angetts.
.delete table MyTable1 policy retention // optional, only if the table previously had its policy set .delete table MyTable2 policy retention // optional, only if the table previously had its policy set .delete table MySpecialTable policy retention // optional, only if the table previously had its policy set .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled .alter-merge materialized-view ViewName policy retention softdelete = 7d
Alternativ 2: För varje tabell anger du en kvarhållningsprincip på tabellnivå med en mjuk borttagningsperiod på sju dagar och återställningsbarheten inaktiverad.
.alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled .alter-merge table MySpecialTable policy retention softdelete = 7d recoverability = disabled
Mjuk borttagningsperiod på sju dagar och återställning aktiverat
Ange tabeller
MyTable1
ochMyTable2
att ha en mjuk borttagningsperiod på sju dagar och återställningsbarheten inaktiverad.Ange
MySpecialTable
att ha en mjuk borttagningsperiod på 14 dagar och återställningsbarhet aktiverad.Alternativ 1 (rekommenderas): Ange en kvarhållningsprincip på databasnivå och ange en kvarhållningsprincip på tabellnivå.
.delete table MyTable1 policy retention // optional, only if the table previously had its policy set .delete table MyTable2 policy retention // optional, only if the table previously had its policy set .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
Alternativ 2: För varje tabell anger du en kvarhållningsprincip på tabellnivå med relevant period för mjuk borttagning och återställning.
.alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
Mjuk borttagningsperiod på sju dagar och MySpecialTable
behåller sina data på obestämd tid
Ställ in tabeller MyTable1
och MyTable2
att ha en mjuk borttagningsperiod på sju dagar och få MySpecialTable
behålla sina data på obestämd tid.
Alternativ 1: Ange en kvarhållningsprincip på databasnivå och ange en kvarhållningsprincip på tabellnivå med en mjuk borttagningsperiod på 1 000 år, standardprincipen för kvarhållning för
MySpecialTable
..delete table MyTable1 policy retention // optional, only if the table previously had its policy set .delete table MyTable2 policy retention // optional, only if the table previously had its policy set .alter-merge database MyDatabase policy retention softdelete = 7d .alter table MySpecialTable policy retention "{}" // this sets the default retention policy
Alternativ 2: För tabeller
MyTable1
ochMyTable2
anger du en kvarhållningsprincip på tabellnivå och kontrollerar att principen på databasnivå och tabellnivå förMySpecialTable
inte har angetts..delete database MyDatabase policy retention // optional, only if the database previously had its policy set .delete table MySpecialTable policy retention // optional, only if the table previously had its policy set .alter-merge table MyTable1 policy retention softdelete = 7d .alter-merge table MyTable2 policy retention softdelete = 7d
Alternativ 3: För tabeller
MyTable1
ochMyTable2
anger du en kvarhållningsprincip på tabellnivå. För tabellMySpecialTable
anger du en kvarhållningsprincip på tabellnivå med en period för mjuk borttagning på 1 000 år, standardprincipen för kvarhållning..alter-merge table MyTable1 policy retention softdelete = 7d .alter-merge table MyTable2 policy retention softdelete = 7d .alter table MySpecialTable policy retention "{}"