Ежедневная очистка данных Cassandra?

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

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

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

Спасибо!


person Víctor Hugo    schedule 14.02.2012    source источник


Ответы (2)


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

сообщение в блоге datastax об этом

person Marc    schedule 14.02.2012

Я знаю, что это старый вопрос, но для всех сотрудников 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) );
person Aaron    schedule 12.08.2014