Condividi tramite


Criterio di conservazione

Si applica a: ✅Microsoft FabricAzure Esplora dati

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 interessarsi dopo due settimane.

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

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

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

I criteri di conservazione sono in genere 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 può essere impostato 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.
  • I criteri di conservazione in una vista materializzata influiscono solo sulla vista, non sulla tabella di origine. I dati di origine rimangono invariati.

Oggetto criteri

I criteri di conservazione includono 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 è 1,000 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 dati.
  • Ripristinabilità:
    • Ripristino 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 recuperabilità.

Comandi di gestione

Defaults

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 immediatamente ha i criteri di conservazione impostati dal 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 ha impostato i 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 restituisce l'oggetto criterio seguente applicato al database o alla tabella.

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

La cancellazione dei criteri di conservazione di un database o di una tabella può essere eseguita usando il comando seguente.

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

Esempi

Per un ambiente 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 in modo da avere un periodo di eliminazione temporanea di sette giorni e la possibilità di ripristino disabilitata.

  • Opzione 1 (scelta consigliata): impostare un criterio 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 le 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 un criterio di conservazione a livello di database e impostare un criterio 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 recuperabilità 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 per un periodo illimitato

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

  • Opzione 1: impostare un criterio di conservazione a livello di database e impostare un criterio di conservazione a livello di tabella, con un periodo di eliminazione temporanea di 1.000 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 MyTable1 e MyTable2, impostare un criterio di conservazione a livello di tabella e verificare che i criteri a livello di database e a livello di tabella per MySpecialTable non 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 MyTable1 e MyTable2, impostare un criterio di conservazione a livello di tabella. Per la tabella MySpecialTable, impostare criteri di conservazione a livello di tabella con un periodo di eliminazione temporanea di 1.000 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 "{}"