2015-01-24 2 views
5

я создал таблицу, как:свойство Кассандры «default_time_to_live» не удаляя данные

CREATE TABLE IF NOT EXISTS metrics_second(
    timestamp timestamp, 
    value counter, 
    PRIMARY KEY ((timestamp)) 
) WITH default_time_to_live=1; 

и вставить некоторые данные, такие как:

UPDATE metrics_second SET value = value + 1 WHERE timestamp = '2015-01-22 17:43:55-0800'; 

При выполнении SELECT * FROM metrics_second я всегда видеть данные, даже через минуту или около того, хотя свойство default_time_to_live таблицы установлено на одну секунду. Почему это?

+1

возможно дубликат [TTL для Cassandra счетчик семья. Это поддерживается?] (Http://stackoverflow.com/questions/19752308/ttl-for-cassandra-counter-column-family-is-it-supported) – RussS

+0

@RussS Я пытаюсь установить его на всю таблицу , а не только на столбец – Mark

+3

Это не имеет значения. Невозможно иметь TTL на счетчике – RussS

ответ

4

Как подтвердил @RussS, к сожалению, Cassandra не поддерживает TTL на таблицах или строках, когда есть счетчики.

Даже если default_time_to_live устанавливается при создании таблицы и не возвращается ошибка, Cassandra не будет применять TTL.

+3

FYI- Я создал билет JIRA с запросом предупреждения или сообщения об ошибке, когда TTL добавляются в таблицы счетчиков: https://issues.apache.org/jira/browse/CASSANDRA- 8678 – Aaron