Dev*_*hou 5 cql cassandra cql3
在 Cassandra 中,我使用 cql:
select msg from log where id in ('A', 'B') and filter1 = 'filter'
Run Code Online (Sandbox Code Playgroud)
(其中id是分区键,filter1是二级索引,filter1不能用作簇列)
这给出了响应:
Select on indexed columns and with IN clause for the PRIMARY KEY are not supported
Run Code Online (Sandbox Code Playgroud)
如何更改 CQL 来防止这种情况发生?
您需要将其拆分为以下单独的查询:
select msg from log where id = 'A' and filter1 = 'filter';
Run Code Online (Sandbox Code Playgroud)
和
select msg from log where id = 'B' and filter1 = 'filter';
Run Code Online (Sandbox Code Playgroud)
由于 Cassandra 中数据的分区方式,CQL 有许多看似随意的限制(以阻止低效查询,而且因为它们实现起来很复杂)。
随着时间的推移,我认为这些限制将慢慢被取消,但现在我们必须解决它们。有关限制的更多详细信息,请参阅深入了解 CQL where 子句。
| 归档时间: |
|
| 查看次数: |
5738 次 |
| 最近记录: |