嗨,我在用python中的cassandra。我在cassandra中有一个表,它的主键是行id(uuid)。我有大约2000000条记录(每个分区有一条记录)。当我要获取记录数时:
NumberPartitionedLine.objects.count()
我得到这个错误:
Error from server: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'consistency': 'LOCAL_ONE', 'received_responses': 0, 'required_responses': 1}
当我运行查询时 select count(*) from number_partitioned_line
在razorsql或datagrip中,我得到了超时错误,无法得到resutl。原因是什么?
1条答案
按热度按时间368yc8dk1#
您正在尝试读取200万个分区,这在cassandra中是不推荐的。
如果不受分区键的限制,那么进行计数(*)将给节点增加很大的压力,在您的情况下,您不能按分区限制,因为每个分区只有一个记录。
最好在你的案子里用一个柜台-https://docs.datastax.com/en/cql/3.3/cql/cql_using/usecountersconcept.html
您可以调整内存分配或增加yaml中的超时时间,但这只会有助于将问题推到以后。