Tous les produits
Search
Centre de documentation

Tablestore:Versions de données et TTL

Dernière mise à jour :Aug 18, 2026

Utilisez le versionnement des données et la durée de vie (TTL) pour gérer efficacement vos données, réduire l'utilisation du stockage et diminuer les coûts associés.

Max versions

Le paramètre Max Versions définit le nombre maximal de versions de données à conserver pour chaque colonne d'attribut. Lorsque le nombre de versions dans une colonne d'attribut dépasse cette limite, le système supprime de manière asynchrone les versions les plus anciennes.

Important

Actuellement, Tablestore n'applique pas de limite stricte sur Max Versions. Toutefois, pour garantir des performances et une utilisation optimales, nous vous recommandons de maintenir le nombre de versions à 500 ou moins.

Si vous ne spécifiez pas le paramètre Max Versions lors de la création d'une table de données, sa valeur par défaut est 1. Vous pouvez modifier cette valeur ultérieurement en appelant l'opération UpdateTable.

Les versions de données qui dépassent la limite Max Versions sont considérées comme invalides. Vous ne pouvez pas lire ces versions, même si le système ne les a pas encore supprimées.

  • Si vous réduisez la valeur de Max Versions, le système supprime de manière asynchrone toutes les versions plus anciennes qui dépassent désormais la nouvelle limite.

  • Si vous augmentez la valeur de Max Versions, d'anciennes versions précédemment inaccessibles peuvent redevenir lisibles si elles entrent dans la nouvelle limite et n'ont pas encore été supprimées.

Numéro de version

Après avoir configuré Max Versions pour une table de données, Tablestore crée une nouvelle version d'une valeur chaque fois que vous la mettez à jour dans une colonne d'attribut. Cette version reçoit un numéro de version, qui correspond à un horodatage en millisecondes.

Lorsque vous écrivez des données dans une colonne d'attribut, vous pouvez soit spécifier un numéro de version, soit laisser le système en générer un automatiquement. Étant donné que les numéros de version sont des horodatages basés sur les millisecondes, ils doivent être divisés par 1 000 pour être convertis en secondes aux fins des calculs de TTL et de Max Version Offset.

  • Lorsque le système génère automatiquement un numéro de version, il utilise l'heure actuelle sous forme d'horodatage en millisecondes, calculé à partir de 1970-01-01 00:00:00 UTC.

  • Lorsque vous spécifiez un numéro de version personnalisé, il doit s'agir d'un horodatage en millisecondes sur 64 bits qui se situe dans la plage de versions valide.

Les numéros de version permettent les fonctionnalités suivantes :

  • TTL

    Le numéro de version peut être utilisé pour définir le cycle de vie des valeurs dans une colonne d'attribut. Le système supprime de manière asynchrone une version de données dès que son âge dépasse la valeur TTL configurée.

    Par exemple, si une version de données possède un numéro de version de 1468944000000 (qui correspond à 2016-07-20 00:00:00 UTC+8) et que le TTL de la table de données est défini sur 86400 (un jour), cette version expire le 2016-07-21 00:00:00 UTC+8 et le système la supprime de manière asynchrone.

  • Lire les données par version

    Lors de la lecture des données d'une ligne, vous pouvez spécifier le nombre maximal de versions à lire par colonne ou une plage spécifique de numéros de version. Pour plus d'informations, consultez la rubrique Read data.

TTL

Le TTL est une propriété d'une table de données qui spécifie la période de conservation des données en secondes. Le système supprime de manière asynchrone une version de données dans une colonne d'attribut lorsque son âge dépasse la valeur TTL configurée. Si toutes les versions de données de toutes les colonnes d'attributs d'une ligne expirent, le système supprime la ligne entière de manière asynchrone.

Par exemple, si le TTL d'une table de données est défini sur 86400 (un jour), alors à 2016-07-21 00:00:00 UTC+8, toutes les données des colonnes d'attributs dont le numéro de version est inférieur à 1468944000000 expirent. Cet horodatage correspond à 2016-07-20 00:00:00 UTC+8 après conversion en secondes. Le système supprime ensuite les données expirées de manière asynchrone.

Si vous ne définissez pas de TTL lors de la création d'une table de données, la valeur par défaut est -1, ce qui signifie que les données n'expirent jamais. Vous pouvez modifier ultérieurement le TTL en appelant l'opération UpdateTable.

Important

Le TTL d'une table de données et le TTL d'un index secondaire sont indépendants. Toutefois, le TTL de la table de données doit être supérieur ou égal au TTL de ses index secondaires. Lors de la modification du TTL d'une table de données disposant d'index secondaires, suivez les étapes appropriées selon votre scénario :

  • Si le nouveau TTL de la table de données est inférieur au TTL de son index secondaire, utilisez d'abord un SDK pour appeler l'opération UpdateTable afin de modifier le TTL de l'index secondaire vers une valeur inférieure ou égale à la valeur cible. Ensuite, modifiez le TTL de la table de données vers la valeur cible.

  • Si le nouveau TTL de la table de données est supérieur ou égal au TTL de son index secondaire, vous pouvez modifier directement le TTL de la table de données vers la valeur cible.

Les données qui ont dépassé leur TTL sont considérées comme expirées et deviennent illisibles, même si le système ne les a pas encore supprimées.

  • Si vous réduisez la valeur TTL, certaines données de la table de données peuvent expirer et le système supprimera les données expirées de manière asynchrone.

  • Si vous augmentez le TTL, d'anciennes versions qui avaient expiré sous le TTL précédent peuvent redevenir lisibles si elles entrent dans la nouvelle période TTL et n'ont pas encore été supprimées.

Max version offset

Pour éviter que les données n'expirent immédiatement après leur écriture, ce qui peut se produire si un horodatage personnalisé est antérieur au TTL de la table, vous pouvez configurer un Max Version Offset.

Le Max Version Offset représente l'écart maximal autorisé, en secondes, entre un numéro de version personnalisé et l'heure système actuelle. Il s'agit d'un entier positif.

Pour garantir le succès d'une opération d'écriture, le système vérifie le numéro de version des données pour chaque colonne d'attribut. Les données ne peuvent être écrites que si leur numéro de version, converti de millisecondes en secondes, se situe dans la plage de versions valide [max{write_time - Max Version Offset, write_time - TTL}, write_time + Max Version Offset).

Par exemple, si le Max Version Offset d'une table de données est de 86400 (un jour), à 2016-07-21 00:00:00 UTC+8, vous ne pouvez écrire que des données dont le numéro de version est supérieur à 1468944000000 (qui correspond à 2016-07-20 00:00:00 UTC+8 après conversion en secondes) et inférieur à 1469116800000 (qui correspond à 2016-07-22 00:00:00 UTC+8 après conversion en secondes). Si le numéro de version d'une colonne d'attribut dans une ligne est 1468943999000 (qui correspond à 2016-07-19 23:59:59 UTC+8 après conversion en secondes), l'opération d'écriture pour cette ligne échoue.

Si vous ne configurez pas Max Version Offset lors de la création d'une table de données, la valeur par défaut est 86400. Vous pouvez modifier cette valeur ultérieurement en appelant l'opération UpdateTable.

Méthodes de configuration

Vous pouvez configurer des paramètres tels que Max Versions et TTL lors de la création d'une table de données. Vous pouvez également modifier ces paramètres après la création de la table. Les exemples suivants montrent comment modifier la configuration d'une table existante.

Remarque

Pour savoir comment configurer Max Versions ou TTL lors de la création d'une table de données, consultez la rubrique Table operations.

Console

Utilisez la console pour modifier les paramètres Max Versions, TTL et Max Version Offset d'une table de données.

  1. Connectez-vous à la console Tablestore.

  2. Sur la page Overview, dans la colonne Actions de l'instance que vous souhaitez gérer, cliquez sur Manage Instance.

  3. Sous l'onglet Instance Details, dans la section Tables, cliquez sur le nom de la table de données.

  4. Sous l'onglet Basic Information, dans la section Description, cliquez sur Modify Attributes.

  5. Dans la boîte de dialogue Modify Attributes, configurez les paramètres comme décrit dans le tableau suivant.

    Paramètre

    Description

    Time to Live

    La période de conservation des données dans la table de données, en secondes. Lorsque l'âge des données dépasse le TTL configuré, le système les supprime automatiquement.

    Valeurs valides : une valeur supérieure ou égale à 86400 (un jour), ou -1 (les données n'expirent jamais).

    Important

    Si vous utilisez des index sur la table de données, le TTL doit respecter l'une des conditions suivantes :

    • Le TTL de la table de données est -1 (les données n'expirent jamais).

    • Le TTL de la table de données n'est pas -1 et les mises à jour de la table de données sont désactivées.

      Si vous avez déjà créé un index pour la table de données, vous devez définir Allow Updates sur No avant de modifier le TTL.

    Max Versions

    Le nombre maximal de versions à conserver pour chaque colonne d'attribut. Lorsque le nombre de versions dépasse cette limite, le système supprime automatiquement les plus anciennes.

    La valeur doit être un entier non nul.

    Important

    Si vous utilisez des index sur la table de données, Max Versions doit être défini sur 1. Si vous avez déjà créé un index pour la table de données, vous ne pouvez pas modifier Max Versions.

    Max Version Offset

    L'écart maximal autorisé, en secondes, entre un numéro de version spécifié et l'heure système actuelle. La valeur doit être un entier positif.

    Les données ne peuvent être écrites avec succès que si la différence entre le numéro de version de chaque colonne et l'heure d'écriture se situe dans le Max Version Offset configuré.

    La plage de versions valide pour une colonne d'attribut est [max{write_time - Max Version Offset, write_time - TTL}, write_time + Max Version Offset).

    Allow Updates

    Indique si les écritures de données via l'opération UpdateRow sont autorisées. La valeur par défaut est Yes.

    Si vous avez créé un index pour une table de données et souhaitez modifier son TTL, vous devez d'abord définir Allow Updates sur No.

    Important

    Pour utiliser la fonctionnalité TTL pour Search Index, vous devez définir ce paramètre sur No, ce qui interdit les écritures de données via l'opération UpdateRow. Pour plus d'informations sur le TTL des index de recherche, consultez la rubrique TTL of search indexes.

  6. Cliquez sur OK.

CLI

Exécutez les commandes suivantes pour modifier la configuration.

Utilisez la commande alter pour modifier les paramètres Max Versions ou TTL d'une table de données. Pour plus d'informations, consultez la rubrique Update a table.

L'exemple suivant modifie le TTL de la table de données mytable pour le définir à 86400 secondes (1 jour) et définit Max Versions sur 1.

alter -t mytable --ttl 86400 --version 1

SDKs

Utilisez le Java SDK, le Go SDK, le Python SDK, le Node.js SDK, le .NET SDK et le PHP SDK pour mettre à jour les propriétés de la table telles que Max Versions, TTL et Max Version Offset. L'exemple suivant utilise le Java SDK pour mettre à jour une table.

L'exemple suivant définit Max Versions d'une table de données sur 5, le TTL sur -1 et Max Version Offset sur 86400.

private static void updateTable(SyncClient client) {
    // The expiration time of data, in seconds. A value of -1 means the data never expires.
    int timeToLive = -1;
    // Update Max Versions to 5.
    int maxVersions = 5; 
    // Update Max Version Offset to 86400, in seconds.
    int maxTimeDeviation=86400;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions,maxTimeDeviation);
    // Set the table name.
    UpdateTableRequest request = new UpdateTableRequest("<TABLE_NAME>");
    request.setTableOptionsForUpdate(tableOptions);
    client.updateTable(request);
}

Facturation

  • L'utilisation de plusieurs versions de données augmente les coûts de stockage, car vous êtes facturé pour le stockage des numéros de version ainsi que des données de chaque version.

  • Le nettoyage des données basé sur le TTL est gratuit. Toutefois, l'activation du TTL ajoute un horodatage en tant que numéro de version à chaque colonne d'attribut, ce qui augmente l'utilisation du stockage.

Pour plus d'informations, consultez la rubrique Data storage.

FAQ