Cassandra Time-To-Live (TTL) è descritto nella documentazione Datastax. Questo post del blog lo esplora brevemente per dimostrare che TTL è impostato per colonna e non per riga.
Iniziamo ricreando l’esempio fornito nella documentazione. Creiamo uno spazio delle chiavi, una tabella e inseriamo alcuni dati in esso. Il valore TTL è molto più basso della documentazione ufficiale, poiché non voglio aspettare 24 ore prima che il TTL si esaurisca.
Ora che abbiamo creato il nostro spazio delle chiavi e la tabella, interroghiamo il TTL:
cqlsh> SELECT TTL (date), TTL (name) from excelsior.clicks; ttl(date) | ttl(name)----------------------- 52 | 52
Inserire o aggiornare per cambiare TTL per colonna
Come dimostrato dal CQL synatx, TTL è impostato per colonna. Per dimostrare questo, ora inseriamo di nuovo i dati, ma escludiamo la data.
Se aspettiamo 11 secondi, possiamo vedere che diverse colonne possono scadere in momenti diversi.
cqlsh> select * from excelsior.clicks; userid | url | date | name--------------------------------------+-------------------+------+------ 3715e600-2eb0-11e2-81c1-0800200c9a66 | http://apache.org | null | Mary
Questo può essere una sorpresa se sei abituato a righe che si comportano come una singola entità. Se si desidera aggiornare il TTL per un’intera riga in Cassandra, è necessario inserire o aggiornare nuovamente l’intera riga con un nuovo TTL.