2015-07-04 1 views
2

Я новичок в cassandra. Я хочу получить отсортированный набор результатов на основе первичного ключа, то есть timeuuid. Моя таблица выглядит.Сортировка в Кассандре на первичный ключ типа timeuuid

CREATE TABLE user_session 
(
    session_id timeuuid, 
    ip inet, 
    device_type int, 
    is_active int, 
    last_access_time timestamp, 
    logout_reason text, 
    logout_type int, 
    start_time timestamp, 
    uid int, 
    PRIMARY KEY(session_id) 
); 

Может ли кто-нибудь помочь мне.

ответ

4

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

CREATE TABLE user_session 
(
user_id int, 
session_id timeuuid, 
ip inet, 
device_type int, 
is_active int, 
last_access_time timestamp, 
logout_reason text, 
logout_type int, 
start_time timestamp, 
uid int, 
PRIMARY KEY(user_id, session_id) 
); 

Затем ваш запрос будет выглядеть следующим образом:

select * from user_session where user_id=5 order by session_id ASC; 

Basicaly, вам понадобится первичный ключ, который будет использоваться для поиска данных, где только EQ и IN отношения являются разрешено, поэтому у вас не может быть user_id > 5 или что-то подобное, и тогда вы можете заказать свои результаты по кластерной колонке, которая находится в вашем случае session_id.

Zoran

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