Dela via


Kvarhållningsprincip

Gäller för: ✅Microsoft FabricAzure 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 till Disabled.
  • 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å Enabledkan 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

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, MyTable2och 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 och MyTable2 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 och MyTable2anger du en kvarhållningsprincip på tabellnivå och kontrollerar att principen på databasnivå och tabellnivå för MySpecialTable 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 och MyTable2anger du en kvarhållningsprincip på tabellnivå. För tabell MySpecialTableanger 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 "{}"