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 surDisabled
. - 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
Enabled
valeur 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
- Permet
.show policy retention
d’afficher la stratégie de rétention actuelle pour une base de données, une table ou une vue matérialisée. - Permet
.alter policy retention
de modifier la stratégie de rétention actuelle d’une base de données, d’une table ou d’une vue matérialisée.
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
, MyTable2
et 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
etMyTable2
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
etMyTable2
, 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 pourMySpecialTable
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
etMyTable2
, définissez une stratégie de rétention au niveau de la table. Pour la tableMySpecialTable
, 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 "{}"
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour