Le temps de vie de Cassandra (TTL) est décrit dans la documentation Datastax. Cet article de blog l’explore brièvement pour démontrer que TTL est défini par colonne et non par ligne.
Nous commençons par recréer l’exemple donné dans la documentation. Nous créons un espace de clés, une table et y insérons des données. La valeur TTL est beaucoup plus faible que la documentation officielle, car je ne veux pas attendre 24 heures avant la fin du TTL.
Maintenant que nous avons créé notre espace de clés et notre table, interrogeons le TTL:
cqlsh> SELECT TTL (date), TTL (name) from excelsior.clicks; ttl(date) | ttl(name)----------------------- 52 | 52
Insérer ou mettre à jour pour modifier le TTL par colonne
Comme le montre le synatx CQL, le TTL est défini par colonne. Pour le démontrer, nous insérons à nouveau les données, mais excluons la date.
Si nous attendons ensuite 11 secondes, nous pouvons voir que différentes colonnes peuvent expirer à des moments différents.
cqlsh> select * from excelsior.clicks; userid | url | date | name--------------------------------------+-------------------+------+------ 3715e600-2eb0-11e2-81c1-0800200c9a66 | http://apache.org | null | Mary
Cela peut être une surprise si vous êtes habitué à ce que les lignes se comportent comme une seule entité. Si vous souhaitez mettre à jour le TTL pour une ligne entière dans Cassandra, vous devez insérer ou mettre à jour à nouveau la ligne entière avec un nouveau TTL.