Utilisez le SDK Tablestore pour Python afin de configurer la durée de vie (TTL) d'un index de recherche. Tablestore supprime automatiquement les données de l'index à l'expiration de la période de rétention.
Prérequis
Installez le SDK Tablestore pour Python et initialisez un client.
Une table existe et son nombre maximal de versions de données est défini sur
1.
Notes d'utilisation
Avant de gérer la durée de vie (TTL) d'un index de recherche, désactivez les opérations
UpdateRowsur la table pour éviter toute incohérence des données entre la table et l'index de recherche. La TTL d'une table s'applique aux colonnes d'attributs individuelles, tandis que la TTL d'un index de recherche s'applique à la ligne entière. AvecUpdateRow, le nettoyage par TTL peut supprimer uniquement certaines colonnes de la table tout en conservant la ligne entière dans l'index de recherche. Pour mettre à jour les données, utilisezPutRowafin d'écraser la ligne complète.La TTL d'un index de recherche est exprimée en secondes et accepte
-1ou un entier positif 32 bits. Une valeur de-1permet de stocker les données de manière permanente. La valeur positive maximale représente une période de rétention d'environ 68 ans.La TTL de l'index de recherche et la TTL de la table sont configurées indépendamment, mais la TTL de l'index de recherche doit être inférieure ou égale à celle de la table. Si la TTL cible de l'index de recherche est supérieure à la TTL actuelle de la table, augmentez d'abord la TTL de la table. Si vous réduisez les deux TTL, commencez par diminuer celle de l'index de recherche.
Tablestore supprime les données expirées de l'index de recherche une fois par jour. Jusqu'à la fin du prochain nettoyage, les requêtes peuvent encore renvoyer des données expirées non supprimées. Après la mise à jour de la TTL d'une table ou d'un index de recherche, Tablestore supprime les données arrivées à expiration en raison de cette modification lors du prochain cycle de nettoyage.
Procédure
La gestion du cycle de vie consiste à désactiver les opérations UpdateRow pour la table, à configurer la TTL de l'index de recherche et, éventuellement, à configurer la TTL de la table. La configuration de la TTL de la table n'est pas toujours la dernière opération. Déterminez l'ordre des étapes 2 et 3 en fonction de la contrainte de TTL décrite ci-dessus.
-
Désactivez les opérations
UpdateRowpour la table.L'exemple suivant désactive les opérations
UpdateRowpourexample_table.table_options = TableOptions( time_to_live=None, max_version=None, max_time_deviation=None, allow_update=False, ) client.update_table( "example_table", table_options=table_options, ) -
Configurez la TTL de l'index de recherche.
Choisissez une option selon que l'index de recherche existe ou non.
Nouvel index
Définissez une TTL de sept jours lors de la création d'un index de recherche.
fields = [ FieldSchema("category", FieldType.KEYWORD, index=True), FieldSchema("price", FieldType.LONG, index=True), ] index_meta = SearchIndexMeta( fields, time_to_live=7 * 24 * 60 * 60, ) client.create_search_index( "example_table", "example_index", index_meta, )Index existant
Mettez à jour la TTL d'un index de recherche existant pour la fixer à sept jours.
index_meta = SearchIndexMeta( fields=None, time_to_live=7 * 24 * 60 * 60, ) client.update_search_index( "example_table", "example_index", index_meta, ) -
Configurez la TTL de la table si nécessaire.
L'exemple suivant définit la TTL de
example_tablesur sept jours. Exécutez cette opération avant ou après la configuration de la TTL de l'index de recherche, en fonction de la contrainte décrite précédemment.table_options = TableOptions( time_to_live=7 * 24 * 60 * 60, max_version=None, max_time_deviation=None, ) client.update_table( "example_table", table_options=table_options, )
Après la configuration, interrogez les informations de la table et interrogez les informations de l'index de recherche pour vérifier les deux TTL.