Expiring data with time-to-live
Columns and tables support an optional expiration period called TTL (time-to-live); TTL is not supported on counter columns. Define the TTL value in seconds. Data expires once it exceeds the TTL period and is then marked with a tombstone. During the grace period, expired data is still stored as tombstoned data in the database. Tombstoned data is scanned by database read operations, but will not be included in the returned data. See gc_grace_seconds. Normal compaction and repair processes automatically remove the tombstone data.
|
The database storage engine can only encode TTL timestamps through |
Setting a TTL for a specific column
Use CQL to set the TTL.
To change the TTL of a specific column, you must re-insert the data with a new TTL. The database upserts the column with the new TTL.
To remove the TTL from a column, set the TTL to zero. For details, see the UPDATE documentation.
Setting a TTL for a table
Use CREATE TABLE or ref:reference:cql-commands/alter-table.adoc[ALTER TABLE] to define the default_time_to_live property for all columns in a table. If any column exceeds TTL, the entire row is deleted.
For details and examples, see Expiring data with TTL example.
- Expiring data with TTL example
-
Use the INSERT and UPDATE commands for setting the expiration time-to-live (TTL) for data in a column.
- Setting the time-to-live (TTL) for value
-
Use the USING TTL N option with INSERT and UPDATE statements to automatically expire data in a column.