Retention-principen

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 konfigureras 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 för kluster som kontinuerligt matar in data, vilket begränsar kostnaderna.

Data som är "utanför" kvarhållningsprincipen är berättigade till borttagning. Det finns ingen specifik garanti när borttagning sker. Data kan "dröja sig 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.

Anteckning

  • Borttagningstiden är inte exakt. Systemet garanterar att data inte tas bort innan gränsen överskrids, men borttagningen sker inte omedelbart efter den tidpunkten.
  • 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 till källtabellen, vilket undviker behovet av att spara data. Recoverability Därför kan bara anges till Disabled.
  • En sådan konfiguration är användbar främst när data matas in i en tabell. En transaktionsuppdateringsprincip används för att transformera den och omdirigera utdata till en annan tabell.

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 med början från den tidpunkt då data matades in.
    • Standardvärdet är 100 years.
    • När du ändrar perioden för mjuk borttagning av en tabell eller databas gäller det nya värdet både befintliga och nya data.
  • Återställningsbarhet:
    • Dataåterställning (aktiverad/inaktiverad) efter att data har tagits bort.
    • Standardvärdet är Enabled.
    • EnabledOm inställningen är inställd på kan data återställas i 14 dagar efter att de har tagits bort.
    • Det går inte att konfigurera återställningsperioden.

Kommandon för hantering

Standardvärden

När en databas eller en tabell skapas har den som standard ingen definierad kvarhållningsprincip. Normalt skapas databasen och dess kvarhållningsprincip har sedan omedelbart angetts 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 princip inställd visas Policy som null.

Standardkvarhållningsprincipen, med standardvärdena 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": "36500.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 ett kluster som har en databas med namnet MyDatabase, med tabeller MyTable1, MyTable2och MySpecialTable.

Mjuk borttagningsperiod på sju dagar och återställning inaktiverad

Ange att alla tabeller i databasen ska ha en mjuk borttagningsperiod på sju dagar och inaktiverad återställning.

  • 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 för att inaktivera en mjuk borttagningsperiod på sju dagar och återställningsbarhet.

  • Inställd MySpecialTable på 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 mjuk borttagningsperiod och återställningsbarhet.

    .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 data på obestämd tid

Ange tabeller MyTable1 och MyTable2 för att ha en mjuk borttagningsperiod på sju dagar och ha MySpecialTable kvar 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å 100 år, standardkvarhållningsprincipen 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å MySpecialTable databasnivå och tabellnivå 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 mjuk borttagningsperiod på 100 å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 "{}"