我在cassandra中有一个列系列,用于存储日常信息。通过每天,我认为它应该每天删除。
所以,我想知道,如果有可能在cassandra中配置清除这些数据。
我来到这里,因为我没有在cassandra页面中找到有关数据清除的更深入信息。
谢谢!
答案 0 :(得分:4)
尚未使用它,但Cassandra 0.7有一个TTL用于列。也许这会对你有帮助,它会在一段时间过后基本上删除列:
答案 1 :(得分:0)
我知道这是一个古老的问题,但对于任何希望得到2.x +版本答案的Google员工来说,这是Determining Time To Live(TTL)上的DataStax文档。使用带有excelsior
键空间和clicks
列族的CQL,可以照常创建表:
CREATE TABLE excelsior.clicks (
userid uuid,
url text,
name text,
PRIMARY KEY (userid, url)
);
插入数据时,指定USING TTL
子句,后跟数据应保留的秒数:
INSERT INTO excelsior.clicks (
userid, url, name)
VALUES (
3715e600-2eb0-11e2-81c1-0800200c9a66,
'http://apache.org',
'Mary')
USING TTL 86400;
请注意,86400是一天中的秒数。您还可以在Java CQL驱动程序中使用prepared statement设置TTL,只需将其视为任何其他绑定参数:
String strCQL = "INSERT INTO excelsior.clicks (userid, url, name) "
+ "VALUES (?,?,?) USING TTL ? ";
boundStatement = new BoundStatement(statement);
mySession.execute(boundStatement.bind(
UUID.fromString("3715e600-2eb0-11e2-81c1-0800200c9a66"),
"http://apache.org",
"Mary",
86400) );