我知道 cassandra 不支持按二级索引排序,但我真的不希望按功能排序。我想要的只是能够以升序或降序获取存储在列族中的列,因为 cassandra 已经对列名进行了排序。
我想将 cassandra 中的时间序列数据建模为宽行。我需要按升序或降序访问这些数据。我还想创建几个二级索引来进行选择查询。所以我的列族 at_data 看起来像,
create table at_data (acct_bucket_id text,
... ts varint,
... status int,
... side int,
... instrument_id varint,
... data text,
... PRIMARY KEY (acct_bucket_id, ts, status, side, instrument_id)
... ) with comment = 'audit data';
如果我将数据添加到此列族。
insert into at_data (acct_bucket_id, ts, status, side, instrument_id, data) values ('1:1', 1, 1, 1, 1, 'order 1');
insert into at_data (acct_bucket_id, ts, status, side, instrument_id, data) values ('1:1', 2, 1, 1, 1, 'order 2');
insert into at_data (acct_bucket_id, ts, status, side, instrument_id, data) values ('1:1', 3, 2, 1, 1, 'order 3');
并希望在状态与 1 匹配的情况下按降序获取“数据”。所以我创建了查询,从 at_data 中选择 *,其中 acct_bucket_id='1:1' 和 status=1 order by ts desc;
并得到错误,Bad Request: ORDER BY with 2ndary index is not supported。
我如何实现这一目标?
谢谢,施里达尔