Кассандра - удаление строк временных рядов в cqlsh

Запуск Cassandra 2.0.11, и мне трудно удалить строку данных временных рядов в CQLSH. Поскольку я не могу использовать> или ‹в предложении WHERE оператора DELETE, я предполагаю, что мне нужно точное время

Схема:

CREATE TABLE account_data_by_user (
      user_id int,
      time timestamp,
      account_id int,
      account_desc text,
      ...
PRIMARY KEY ((user_id), time, account_id)

Рассматриваемая строка:

user_id | time                     | account_id | account_desc     | 
--------+--------------------------+-----------------+------------------+-
      1 | 2015-02-20 08:51:55-0600 |               1 |             null |

Попытка:

DELETE 
FROM account_data_by_user 
WHERE user_id = 1 and time = '2015-02-20 08:51:55-0600' and account_id = 1

Вышеупомянутое выполняется успешно, но строка все еще существует. Я предполагаю, что проблема в выводе cqlsh [время].

Я должен отметить, что я могу удалить такую ​​строку с помощью cqlengine.Model.delete, но я не уверен, что она выполняет для выполнения удаления.


person Blake Atkinson    schedule 21.02.2015    source источник


Ответы (1)


Итак, после долгих поисков в Google я обнаружил функции преобразования больших двоичных объектов из этой проблемы JIRA: https://issues.apache.org/jira/browse/CASSANDRA-5870

Запрос:

SELECT user_id, host_account_id, blobasbigint(timestampasblob(time)) 
FROM account_data_by_user where user_id 

Возврат:

user_id | account_id | blobasbigint(timestampasblob(time))                                                                        
---------+-----------------+-------------------------------------                                                                       
   1 |               1 |                       1424458973126                                                                        
   1 |          184531 |                       1423738054142


DELETE
FROM account_data_by_user 
WHERE user_id = 1 and time = 1424458973126 and host_account_id = 1;

Это успешно удалило нужную строку.

person Blake Atkinson    schedule 21.02.2015