2017-02-21 3 views
1

У меня есть таблица с столбцом timestamp, и я хотел бы управлять значениями этого столбца. Например, мне нужно сделать что-то вдоль линии:Как манипулировать столбцами временной метки в Apache Cassandra

UPDATE mytable SET datetimecolumn = datetimecolumn + 10mins

Как это делается в Apache Cassandra?

ОБНОВЛЕНИЕ: Ответ кажется «вы не можете». Но выбранный ответ наиболее близок к тому, что мы можем получить.

ответ

3

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

Использование счетчика:

Счетчик представляет собой специальный столбец, используемый для хранения числа, которое изменяется с шагом. Например, вы можете использовать столбец счетчика для подсчета количества просмотров страницы.

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

Пример:

CREATE TABLE mytable (
    pk1 int PRIMARY KEY, 
    datetimecolumn counter 
); 

Здесь вы должны использовать datetimecolumn значения в миллисекундах.
Впервые, вы должны использовать запрос на обновление со временем в миллисекундах значения, скажем 1487686182403

UPDATE mytable SET datetimecolumn = datetimecolumn + 1487686182403 where pk1 = 1 

Теперь туЬаЫм с рк = 1 содержит datetimecolumn = 1487686182403 значения.

Если вы хотите увеличить datetimecolumn на 10mins (600000 миллисекунды)

UPDATE mytable SET datetimecolumn = datetimecolumn + 600000 where pk1 = 1 

Источник: https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html

1

- анти-шаблон в кассандре. Вы управляете значением на стороне клиента и обновляете, как обычно;

Другими словами: вы должны искать (выбирать) значение, делать изменения (приращение на 10 минут) и обновлять в cassandra новое значение.

+0

Я не уверен, если я правильно понял ваш ответ. Не могли бы вы рассказать. – adrin

Смежные вопросы