Cassandra Time-To-Live (TTL) beskrivs i DataStax-dokumentationen. Det här blogginlägget utforskar kort det för att visa att TTL är inställt per kolumn och inte per rad.
vi börjar med att återskapa exemplet i dokumentationen. Vi skapar ett nyckelrum, ett bord och lägger in några data i den. TTL-värdet är mycket lägre än den officiella dokumentationen, eftersom jag inte vill vänta 24 timmar innan TTL tar slut.
nu när vi har skapat vår keyspace och tabell, låt oss fråga TTL:
cqlsh> SELECT TTL (date), TTL (name) from excelsior.clicks; ttl(date) | ttl(name)----------------------- 52 | 52
Infoga eller uppdatera för att ändra TTL per kolumn
som visas av CQL synatx, är TTL inställd per kolumn. För att visa detta sätter vi nu in data igen, men utesluter datumet.
om vi sedan väntar 11 sekunder kan vi se att olika kolumner kan löpa ut vid olika tidpunkter.
cqlsh> select * from excelsior.clicks; userid | url | date | name--------------------------------------+-------------------+------+------ 3715e600-2eb0-11e2-81c1-0800200c9a66 | http://apache.org | null | Mary
detta kan komma som en överraskning om du är van vid att rader uppträder som en enda enhet. Om du vill uppdatera TTL för en hel rad i Cassandra måste du antingen infoga eller uppdatera hela raden igen med en ny TTL.