Cassandra Time-To-Live (TTL) é descrito na documentação Datastax. Este post do blog brevemente explora-o para demonstrar que TTL é definido por coluna, e não por linha.
começamos por recriar o exemplo dado na documentação. Criamos um espaço-chave, uma tabela, e inserimos alguns dados nela. O valor de TTL é muito menor do que a documentação oficial, como eu não quero esperar 24 horas antes que o TTL se esgote.
Agora que criamos o nosso espaço e a tabela, vamos consultar o TTL:
cqlsh> SELECT TTL (date), TTL (name) from excelsior.clicks; ttl(date) | ttl(name)----------------------- 52 | 52
Insert ou Update para alterar o TTL por coluna
Como demonstrado pelo CQL synatx, TTL é definido por coluna. Para demonstrar isso, agora inserimos os dados novamente, mas excluímos a data.
se então esperarmos 11 segundos, podemos ver que diferentes colunas podem expirar em momentos diferentes.
cqlsh> select * from excelsior.clicks; userid | url | date | name--------------------------------------+-------------------+------+------ 3715e600-2eb0-11e2-81c1-0800200c9a66 | http://apache.org | null | Mary
isto pode ser uma surpresa se você estiver habituado a linhas comportando-se como uma única entidade. Se você quiser atualizar o TTL para uma linha inteira em Cassandra, você precisa inserir ou atualizar a linha inteira novamente com um novo TTL.