在 Cassandra 中对 timeuuid 类型的主键进行排序

Son*_*onu 2 sorting cassandra

我是 cassandra 的新手。我想根据主键即 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)
);
Run Code Online (Sandbox Code Playgroud)

谁能帮我吗。

zor*_*mic 5

您不能在主列的查询中使用 order by。仅在聚类列上支持。您必须更改此表才能执行此类查询。它可能看起来像这样:

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)
);
Run Code Online (Sandbox Code Playgroud)

然后,您的查询将如下所示:

select * from user_session where user_id=5 order by session_id ASC;
Run Code Online (Sandbox Code Playgroud)

基本上,您需要一些主键,用于搜索仅允许EQIN关系的数据,因此您不能拥有user_id > 5或类似的东西,然后您可以通过在您的情况下的聚类列对结果进行排序session_id

卓然