Кассандра ежедневная чистка данных? - PullRequest
4 голосов
/ 14 февраля 2012

У меня есть семейство столбцов внутри Кассандры, которое используется для хранения ежедневной информации.Будучи ежедневным, я предполагаю, что его следует удалять каждый день.

Итак, я хотел бы знать, можно ли настроить в cassandra очистку этих данных.

Iпришел сюда, потому что я не нашел более подробной информации о чистке данных на странице Кассандры.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 14 февраля 2012

Еще не использовал, но у Cassandra 0.7 есть TTL для столбцов.Может быть, это поможет вам, в основном удалит столбцы по истечении определенного периода времени:

пост блога datastax об этом

0 голосов
/ 12 августа 2014

Я знаю, что это старый вопрос, но для всех пользователей Google, которые хотят получить ответ для версий 2.x +, вот документация DataStax на Определение времени жизни (TTL). Используя 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 - это количество секунд в дне. Вы также можете установить TTL с помощью подготовленного оператора в драйвере Java CQL, просто обработав его как любой другой связанный параметр:

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) );
...