我在一个表中有一个大型数据集(超过 200 万行,每行超过 100 列),存储在 cassandra 中,几个月前(也许是 2 个月?)我能够执行一个简单的命令来跟踪该表中的记录数量:
SELECT count(*) from mydata limit 11111111;
几天前我尝试了同样的命令并得到了以下错误:
errors={}, last_host=168.176.61.25
这个错误本身并没有说明什么,google了一下我觉得可能跟超时有关。正如您所期望的那样,运行时间较短的查询可以正确执行,并且错误总是在处理大约 10 秒后出现。
据我了解,cassandra 的超时设置在 cassandra.yaml 中,我更改了以下值
read_request_timeout_in_ms: 25000
range_request_timeout_in_ms: 25000
request_timeout_in_ms:25000
但是错误没有任何变化,同样的 10 秒后它仍然失败,
有什么想法吗?
非常感谢
富安卡
最佳答案
如果您只想计算记录的数量,请不要使用 count(*),在您的模式中放置一个计数器列:http://www.datastax.com/documentation/cql/3.0/cql/cql_using/use_counter_t.html
如果你还需要获取所有数据用于其他操作,这个超时有多个reseasons,如果你需要我可以提供一些。
关于 Cassandra 超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26680179/