Cassandra TTL è per colonna

2015, marzo 02

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.