问题
I need to fetch rows without specific keys. for sample:
select * from users where user_id not in ("mikko");
I have tried with "not in" and this is the response:
Bad Request: line 1:35 no viable alternative at input 'not'
回答1:
"not in" is not a supported operation in CQL. Cassandra at its heart is still based on key indexed rows. So that query is basically the same as "select * from users", as you have to go through every row and figure out if it does not match the in. If you want to do that type of query you will want to setup a map reduce job to perform it.
When using Cassandra what you actually want to do is de-normalize your data model so that the queries you application performs end up querying a single partition (or just a few partitions) for their results.
Also find some great webinars and talks on Cassandra data modeling
http://www.youtube.com/watch?v=T_WRC_GjRd0&feature=youtu.be
http://youtu.be/x4Q9JeLIyNo
http://www.youtube.com/watch?v=HdJlsOZVGwM&list=PLqcm6qE9lgKJzVvwHprow9h7KMpb5hcUU&index=10
来源:https://stackoverflow.com/questions/18498445/how-to-perform-not-in-filter-in-cql3-query-select