Stratégie de rétention

La stratégie de rétention contrôle le mécanisme qui supprime automatiquement des données de tables ou de vues matérialisées. Il est utile de supprimer des données qui circulent en continu dans une table et dont la pertinence est basée sur l’âge. Par exemple, la stratégie peut être utilisée pour une table qui contient des événements de diagnostic qui peuvent devenir inintéressants après deux semaines.

La stratégie de rétention peut être configurée pour une table ou une vue matérialisée spécifique, ou pour une base de données entière. La stratégie s’applique ensuite à toutes les tables de la base de données qui ne la remplacent pas. Lorsque la stratégie est configurée au niveau de la base de données et de la table, la stratégie de rétention dans la table est prioritaire sur la stratégie de base de données.

La configuration d’une stratégie de rétention est importante pour les clusters qui ingèrent continuellement des données, ce qui limitera les coûts.

Les données qui sont « en dehors » de la stratégie de rétention peuvent être supprimées. Il n’existe aucune garantie spécifique en cas de suppression. Les données peuvent « persister » même si la stratégie de rétention est déclenchée.

La stratégie de rétention est généralement définie pour limiter l’âge des données depuis l’ingestion. Pour plus d’informations, consultez SoftDeletePeriod.

Notes

  • L’heure de suppression est imprécise. Le système garantit que les données ne seront pas supprimées avant le dépassement de la limite, mais la suppression n’est pas immédiate après ce point.
  • Une période de suppression réversible de 0 peut être définie dans le cadre d’une stratégie de rétention au niveau de la table, mais pas dans le cadre d’une stratégie de rétention au niveau de la base de données.
  • Lorsque cette opération est effectuée, les données ingérées ne sont pas validées dans la table source, ce qui évite d’avoir à rendre les données persistantes. Par conséquent, Recoverability ne peut être défini que sur Disabled.
  • Une telle configuration est principalement utile lorsque les données sont ingérées dans une table. Une stratégie de mise à jour transactionnelle est utilisée pour la transformer et rediriger la sortie vers une autre table.

Par objet de stratégie

Une stratégie de rétention comprend les propriétés suivantes :

  • SoftDeletePeriod :
    • Intervalle de temps pendant lequel il est garanti que les données restent disponibles pour l’interrogation. La période est mesurée à partir du moment où les données ont été ingérées.
    • La valeur par défaut est 100 years.
    • Lors de la modification de la période de suppression réversible d’une table ou d’une base de données, la nouvelle valeur s’applique aux données existantes et nouvelles.
  • Récupérabilité :
    • Récupération des données (activée/désactivée) après la suppression des données.
    • La valeur par défaut est Enabled.
    • Si la Enabledvaleur est définie sur , les données peuvent être récupérées pendant 14 jours après leur suppression réversible.
    • Il n’est pas possible de configurer la période de récupération.

Commandes de gestion

Valeurs par défaut

Par défaut, lorsqu’une base de données ou une table est créée, aucune stratégie de rétention n’est définie. Normalement, la base de données est créée et sa stratégie de rétention est immédiatement définie par son créateur en fonction des exigences connues. Lorsque vous exécutez une .show commande pour la stratégie de rétention d’une base de données ou d’une table dont la stratégie n’a pas été définie, Policy apparaît sous la forme null.

La stratégie de rétention par défaut, avec les valeurs par défaut mentionnées ci-dessus, peut être appliquée à l’aide de la commande suivante.

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

La commande génère l’objet de stratégie suivant appliqué à la base de données ou à la table.

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

L’effacement de la stratégie de rétention d’une base de données ou d’une table peut être effectué à l’aide de la commande suivante.

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

Exemples

Pour un cluster qui a une base de données nommée MyDatabase, avec les tables MyTable1, MyTable2et MySpecialTable.

Période de suppression réversible de sept jours et possibilité de récupération désactivée

Définissez toutes les tables de la base de données pour qu’elles aient une période de suppression réversible de sept jours et la possibilité de récupération est désactivée.

  • Option 1 (recommandé) : définissez une stratégie de rétention au niveau de la base de données et vérifiez qu’aucune stratégie au niveau de la table n’est définie.

    .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 
    
  • Option 2 : Pour chaque table, définissez une stratégie de rétention au niveau de la table, avec une période de suppression réversible de sept jours et la possibilité de récupération désactivée.

    .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
    

Période de suppression réversible de sept jours et possibilité de récupération activée

  • Définissez des tables MyTable1 et MyTable2 pour avoir une période de suppression réversible de sept jours et la possibilité de récupération désactivée.

  • Défini MySpecialTable pour avoir une période de suppression réversible de 14 jours et la possibilité de récupération activée.

  • Option 1 (recommandé) : définissez une stratégie de rétention au niveau de la base de données et définissez une stratégie de rétention au niveau de la table.

    .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
    
  • Option 2 : Pour chaque table, définissez une stratégie de rétention au niveau de la table, avec la période de suppression réversible appropriée et la possibilité de récupération.

    .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
    

Période de suppression réversible de sept jours et MySpecialTable conserve ses données indéfiniment

Définissez des tables MyTable1 et MyTable2 pour avoir une période de suppression réversible de sept jours et conserver MySpecialTable leurs données indéfiniment.

  • Option 1 : Définissez une stratégie de rétention au niveau de la base de données et définissez une stratégie de rétention au niveau de la table, avec une période de suppression réversible de 100 ans, la stratégie de rétention par défaut, pour 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
    
  • Option 2 : Pour les tables MyTable1 et MyTable2, définissez une stratégie de rétention au niveau de la table et vérifiez que la stratégie au niveau de la base de données et au niveau de la table pour MySpecialTable ne sont pas définies.

    .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
    
  • Option 3 : Pour les tables MyTable1 et MyTable2, définissez une stratégie de rétention au niveau de la table. Pour la table MySpecialTable, définissez une stratégie de rétention au niveau de la table avec une période de suppression réversible de 100 ans, la stratégie de rétention par défaut.

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