Criteri di conservazione

I criteri di conservazione controllano il meccanismo che rimuove automaticamente i dati dalle tabelle o dalle viste materializzate. È utile rimuovere i dati che passano continuamente in una tabella e la cui rilevanza è basata sull'età. Ad esempio, i criteri possono essere usati per una tabella che contiene eventi di diagnostica che potrebbero non essere più interessante dopo due settimane.

I criteri di conservazione possono essere configurati per una tabella o una visualizzazione materializzata specifica o per un intero database. Il criterio si applica quindi a tutte le tabelle del database che non lo sostituiscono. Quando i criteri vengono configurati sia a livello di database che a livello di tabella, i criteri di conservazione nella tabella hanno la precedenza sui criteri di database.

La configurazione di un criterio di conservazione è importante per i cluster che inseriscono continuamente i dati, che limitano i costi.

I dati "esterni" i criteri di conservazione sono idonei per la rimozione. Non esiste alcuna garanzia specifica quando si verifica la rimozione. I dati possono essere "persistenti" anche se i criteri di conservazione vengono attivati.

I criteri di conservazione sono più comunemente impostati per limitare l'età dei dati dopo l'inserimento. Per altre informazioni, vedere SoftDeletePeriod.

Nota

  • Il tempo di eliminazione è impreciso. Il sistema garantisce che i dati non vengano eliminati prima del superamento del limite, ma l'eliminazione non è immediata in seguito al superamento di tale punto.
  • Un periodo di eliminazione temporanea di 0 può essere impostato come parte di un criterio di conservazione a livello di tabella, ma non come parte di un criterio di conservazione a livello di database.
  • Al termine, i dati inseriti non verranno sottoposti a commit nella tabella di origine, evitando la necessità di rendere persistenti i dati. Di conseguenza, Recoverability è possibile impostare solo su Disabled.
  • Questa configurazione è utile principalmente quando i dati vengono inseriti in una tabella. Un criterio di aggiornamento transazionale viene usato per trasformarlo e reindirizzare l'output in un'altra tabella.

Oggetto criteri

Un criterio di conservazione include le proprietà seguenti:

  • SoftDeletePeriod:
    • Intervallo di tempo per il quale è garantito che i dati vengano mantenuti disponibili per la query. Il periodo viene misurato a partire dal momento in cui i dati sono stati inseriti.
    • Il valore predefinito è 100 years.
    • Quando si modifica il periodo di eliminazione temporanea di una tabella o di un database, il nuovo valore si applica sia ai dati esistenti che ai nuovi.
  • Ripristinabilità:
    • Recupero dei dati (abilitato/disabilitato) dopo l'eliminazione dei dati.
    • Il valore predefinito è Enabled.
    • Se impostato su Enabled, i dati saranno recuperabili per 14 giorni dopo l'eliminazione temporanea.
    • Non è possibile configurare il periodo di ripristino.

Comandi di gestione

Valori predefiniti

Per impostazione predefinita, quando viene creato un database o una tabella, non è definito un criterio di conservazione. In genere, il database viene creato e quindi ha immediatamente i criteri di conservazione impostati dal relativo creatore in base ai requisiti noti. Quando si esegue un .show comando per i criteri di conservazione di un database o di una tabella che non dispone del relativo set di criteri, Policy viene visualizzato come null.

I criteri di conservazione predefiniti, con i valori predefiniti indicati in precedenza, possono essere applicati usando il comando seguente.

.alter database DatabaseName policy retention "{}"
.alter table TableName policy retention "{}"
.alter materialized-view ViewName policy retention "{}"

Il comando genera l'oggetto criterio seguente applicato al database o alla tabella.

{
  "SoftDeletePeriod": "36500.00:00:00", "Recoverability":"Enabled"
}

È possibile cancellare i criteri di conservazione di un database o di una tabella usando il comando seguente.

.delete database DatabaseName policy retention
.delete table TableName policy retention

Esempio

Per un cluster con un database denominato MyDatabase, con tabelle MyTable1, MyTable2e MySpecialTable.

Periodo di eliminazione temporanea di sette giorni e ripristino disabilitato

Impostare tutte le tabelle nel database per avere un periodo di eliminazione temporanea di sette giorni e la ripristinabilità disabilitata.

  • Opzione 1 (scelta consigliata): impostare criteri di conservazione a livello di database e verificare che non siano impostati criteri a livello di tabella.

    .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 
    
  • Opzione 2: per ogni tabella impostare un criterio di conservazione a livello di tabella, con un periodo di eliminazione temporanea di sette giorni e la ripristinabilità disabilitata.

    .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
    

Periodo di eliminazione temporanea di sette giorni e ripristino abilitato

  • Impostare tabelle MyTable1 e MyTable2 per avere un periodo di eliminazione temporanea di sette giorni e la ripristinabilità disabilitata.

  • Impostare MySpecialTable per avere un periodo di eliminazione temporanea di 14 giorni e la ripristinabilità abilitata.

  • Opzione 1 (scelta consigliata): impostare criteri di conservazione a livello di database e impostare criteri di conservazione a livello di tabella.

    .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
    
  • Opzione 2: per ogni tabella impostare un criterio di conservazione a livello di tabella, con il periodo di eliminazione temporanea e la ripristinabilità pertinenti.

    .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
    

Periodo di eliminazione temporanea di sette giorni e MySpecialTable mantiene i dati indefiniti

Impostare tabelle MyTable1 e MyTable2 per avere un periodo di eliminazione temporanea di sette giorni e MySpecialTable mantenere i dati indefiniti.

  • Opzione 1: Impostare criteri di conservazione a livello di database e impostare criteri di conservazione a livello di tabella, con un periodo di eliminazione temporanea di 100 anni, i criteri di conservazione predefiniti per 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
    
  • Opzione 2: per le tabelle e MyTable2, impostare criteri di conservazione a livello di tabella MyTable1 e verificare che i criteri a livello di database e a livello di tabella non MySpecialTable siano impostati.

    .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
    
  • Opzione 3: per le tabelle e MyTable2, impostare un criterio di conservazione a livello di tabellaMyTable1. Per la tabella , impostare un criterio di conservazione a livello di tabella MySpecialTablecon un periodo di eliminazione temporanea di 100 anni, i criteri di conservazione predefiniti.

    .alter-merge table MyTable1 policy retention softdelete = 7d
    .alter-merge table MyTable2 policy retention softdelete = 7d
    .alter table MySpecialTable policy retention "{}"