Cassandra--设置数据保留时间

在Cassandra中,可以设置列的保留时间(Time To Live),当该列超过保留时间后,会下一次读取中被墓碑(Tombstone)标记,然后保留一个垃圾回收周期(表属性gc_grace_seconds设置),最后被压缩进程或修复进程自动移除。

1、如果创建表时指定default_time_to_live属性,则表中所有列列使用指定值,否则使用默认值default_time_to_live=0。
2、如果插入记录时指定TTL,则插入操作所有涉及的列的保留时间为指定TTL值(从插入操作执行开始计算)
3、如果更新记录时指定TTL,则更新操作设计到的列的保留时间未指定TTL值(从更新操作执行开始计算)

 

演示Demo:

===================================
## 在创建表时设置表级别默认保留时间
CREATE TABLE users
(
    user_name text primary key,
    user_psw text,
    user_info text,
) WITH default_time_to_live=300;


===================================
## 插入记录时设置保留时间
INSERT INTO users(user_name, user_psw,user_info)
VALUES ('cbrown', 'ch@ngem4a','this is cbrown') 
USING TTL 600;


===================================
## 更新记录时设置保留时间
UPDATE users USING TTL 600 
SET user_psw = 'ch@ngem4a'
WHERE user_name = 'cbrown';


===================================
## 查看列的保留时间
SELECT 
user_name,
user_psw,
TTL(user_psw) AS user_psw_ttl,
user_info,
TTL(user_info) AS user_info_ttl
from users

 

参考资料:
https://docs.datastax.com/en/archived/cql/3.1/cql/cql_using/use_expire_c.html
https://docs.datastax.com/en/archived/cql/3.1/cql/cql_reference/tabProp.html#tabProp__cql-default-ttl

posted @ 2019-03-20 15:13  TeyGao  阅读(1863)  评论(0编辑  收藏  举报