我一直在尝试运行这样的查询:
SELECT COUNT(*) FROM sensors WHERE sensor_id = 1 and date = '2014-11';
列系列上的。 WHERE子句过滤到具有大约200万列的分区键。我希望得到大约的计数结果。 200万,但我得到了这个错误:
errors={}, last_host=[THE_IP_OF_MY_SERVER]
如果我运行查询来获取列,它返回数据就好了,但它不能返回计数。我理解计数查询可能存在的性能问题(例如讨论过的here)但我仍然想为我的测试得到一些查询结果。
所以我的问题是:
我在运行Ubuntu 14.04的两个节点的集群上使用Cassandra 2.1和cqlsh 5.0.1以及spec 3.2。
由于
答案 0 :(得分:3)
编辑〜/ .cqlshrc或〜/ .cassandra / cqlshrc:
[connection]
client_timeout = 20
根据需要调整超时数(秒)。
答案 1 :(得分:2)
应该是超时。您可以通过更改" read_request_timeout_in_ms"的值来增加请求所需的最长时间。甚至" range_request_timeout_in_ms" (在cassandra.yaml中)如果您打算使用范围查询。更改值后重新启动群集(默认为10秒)。
请注意,如果对分区键运行精确查询,则计数为0或1。因此,如果返回的行超过1行,则查询是在聚类列(主键的第一列之后的列)上。