我正在尝试执行查询:
select key,date,time_stamp,value from archive_all where time_stamp > '2016-11-14 19:00:00+0000' and time_Stamp <= '2016-11-14 20:00:00+0000' allow filtering
但它没有说下面给出的错误:
ReadFailure:来自服务器的错误:代码= 1300 [副本未能执行读取]消息=“操作失败 - 收到0响应和1次失败”info = {'failures':1,'received_responses' :0,'required_responses':1,'一致':'ONE'}
列time_stamp
的类型为timestamp
。
请帮我解决这个问题。
答案 0 :(得分:2)
错误表示(实际上)您的查询已超时。你要求Cassandra扫描你的所有数据集,这需要花费很多时间。
通常解决这些问题的方法是删除查询中的users
。也就是说,完全摆脱了查询。
换句话说,您应该重新考虑您的数据模型。
答案 1 :(得分:0)
您可以粘贴表架构吗? 为了能够使用“&gt;”和“&lt;”列上的运算符,您必须确保它是一个群集列。 (见documentation)
答案 2 :(得分:0)
答案 3 :(得分:0)
我遇到了同样的错误。我已经尝试了很多方法来克服这个问题。首先,它增加了tombstone_failure_threshold
的值。
根据解决方案 here,我将 GC_GRACE_SECONDS
设置为 0
。请记住,这只是单节点 Cassandra 上的可行解决方案。但是这些并没有解决我的问题。
我浏览并阅读了许多资源,并要求提供上面答案中的 timeout
。
我增加了 read_request_timeout_in_ms
文件中 cassandra.yaml
参数的值。
然后我就可以运行所有查询而没有错误。我想添加这个答案,虽然晚了,因为我认为它可能对某人有所帮助。