我在 cassandra 中有一个列族,用于存储日常信息。通过每天,我认为它应该每天都被删除。
所以,我想知道,是否可以在 cassandra 中配置对这些数据的清除。
我来到这里是因为我在 cassandra 的页面中没有找到任何关于数据清除的更深入的信息。
谢谢!
还没用过,但是 Cassandra 0.7 有列的 TTL。也许这会对你有所帮助,它基本上会在一段时间后删除列:
我知道这是一个老问题,但是对于任何想要获得 2.x+ 版本答案的 Google 员工来说,这里是关于确定生存时间(TTL) 的 DataStax 文档。将 CQL 与excelsior
键空间和clicks
列族一起使用,您可以像往常一样创建表:
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 驱动程序中使用准备好的语句设置 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) );