我有一個用於存儲日常信息的cassandra內部的列家族。通過每天,我認爲它應該每天被刪除。Cassandra每日數據清除?
所以,我想知道,如果有可能在cassandra中配置清除這些數據。
我來到這裏,因爲我沒有在cassandra的頁面中找到關於數據清除的更深層次的信息。
謝謝!
我有一個用於存儲日常信息的cassandra內部的列家族。通過每天,我認爲它應該每天被刪除。Cassandra每日數據清除?
所以,我想知道,如果有可能在cassandra中配置清除這些數據。
我來到這裏,因爲我沒有在cassandra的頁面中找到關於數據清除的更深層次的信息。
謝謝!
還沒有使用它,但卡桑德拉0.7有一個列的TTL。也許這會幫助你,它會基本上刪除列的一段時間過去之後:
我知道這是一個老問題,但對於誰一起去想爲2個版本的答案任何的Google .x +,這裏是Determining Time To Live(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驅動程序中使用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));