我想通过CQL3中的行键以外的组合键查询数据过滤。 这是我的查询:使用组合键(Cassandra中的行键)以外的查询
CREATE TABLE grades (id int,
date timestamp,
subject text,
status text,
PRIMARY KEY (id, subject, status, date)
);
当我试图访问数据,
SELECT * FROM grades where id = 1098; //works fine
SELECT * FROM grades where subject = 'English' ALLOW FILTERING; //works fine
SELECT * FROM grades where status = 'Active' ALLOW FILTERING; //gives an error
请求无效:PRIMARY KEY一部分的地位不被限制(前面部分主题是要么不限制或由非EQ 关系)
只是为了试验,我shuf逃离密钥,始终保持'id'作为我的Primary Row Key。考虑上面的例子,如果我在主键列表中交换主题和状态,我总是只能够使用主键行或第二个键进行查询,然后我可以使用状态进行查询,但是如果我尝试通过查询获得类似的错误主题或时间。
我做错了什么?我可以不使用CQL3中的任何其他组合键来查询数据吗? 我使用Cassandra 1.2.6和CQL3。
不错的解释! –
明白了!谢谢,现在对我来说更有意义。我想我会重新遍历我的查询,看看我想如何构建它们,因为我可能并不总是需要限制主题能够获得状态。 – user988544
帮助我很多!谢谢 – kn0x