Partager via


Stratégie de rétention

S’applique à : ✅Microsoft Fabric✅Azure Data Explorer

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 le remplacent pas. Lorsque la stratégie est configurée à la fois au niveau de la base de données et de la table, la stratégie de rétention de la table est prioritaire sur la stratégie de base de données.

La configuration d’une stratégie de rétention est importante lors de l’ingestion continue de données, ce qui limite les coûts.

Les données « en dehors » de la stratégie de rétention peuvent être supprimées. Il n’existe aucune garantie spécifique lors de la suppression. Les données peuvent « s’attarder » 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.

Remarque

  • 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.
  • Une fois cette opération effectuée, les données ingérées ne seront pas validées dans la table source, ce qui évite d’avoir à conserver les données. Par conséquent, Recoverability ne peut être défini que sur Disabled.
  • Une telle configuration est utile principalement 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 dans une autre table.
  • La stratégie de rétention sur une vue matérialisée affecte uniquement la vue, et non la table source. Les données sources ne sont pas affectées.

Par objet de stratégie

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

  • SoftDeletePeriod :
    • Intervalle de temps pour lequel il est garanti que les données sont conservées à la disposition des requêtes. La période est mesurée à partir du moment où les données ont été ingérées.
    • La valeur par défaut est 1,000 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 valeur est définie Enabled, les données sont récupérables pendant 14 jours après sa 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, elle n’a pas de stratégie de rétention définie. Normalement, la base de données est créée, puis a immédiatement sa stratégie de rétention définie par son créateur en fonction des exigences connues. Lorsque vous exécutez une commande pour la stratégie de rétention d’une base de données ou d’une table qui n’a pas eu son jeu de stratégies, Policy apparaît sous la forme null..show

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": "365000.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 environnement qui a une base de données nommée MyDatabase, avec des tables MyTable1, MyTable2et MySpecialTable.

Période de suppression réversible de sept jours et désactivation de la récupération

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

  • 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 de niveau 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 une 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 les tables MyTable1 et MyTable2 définissez une période de suppression réversible de sept jours et désactivez la récupération.

  • Définissez MySpecialTable une période de suppression réversible de 14 jours et la 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 et la récupération appropriées.

    .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 indéfiniment ses données

Définissez les tables MyTable1 et MyTable2 disposez d’une période de suppression réversible de sept jours et conservez MySpecialTable indéfiniment ses données.

  • Option 1 : Définir une stratégie de rétention au niveau de la base de données et définir une stratégie de rétention au niveau de la table, avec une période de suppression réversible de 1 000 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 n’est MySpecialTable pas définie.

    .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 1 000 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 "{}"