我正在尝试使用cqlsh(cqlsh 5.0.1 | Cassandra 2.1.12 | CQL spec 3.2.1 | Native protocol v3
)对列族进行以下查询
查询:
select * from CassandraColumnFamily limit 10
但它会出现以下错误
错误:
ReadTimeout: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}
我可以使用以下python脚本读取数据。我无法弄清楚这里可能存在什么问题。
cluster = Cluster(
contact_points = ['IP1','IP2','IP3']
)
session = cluster.connect('cw')
query = "select col1 , col2, col3, col4, col5 from CassandraColumnFamily"
statement = SimpleStatement(query, fetch_size=50000)
答案 0 :(得分:1)
我不确定您尝试获取的行数有多大,以及有多少行。但是当您在主键上没有任何条件的情况下选择CQL时,您正在进行范围扫描,这是非常昂贵的。请记住,这不是MySQL。当您在特定行键上进行查找时,Cassandra的工作效果最佳。
无论如何,您可以尝试增加cqlsh的超时时间。
在您的主文件夹中,使用以下内容创建名为cqlshrc的文件: [连接] client_timeout = 10
您也可以像这样设置禁用超时: client_timeout =无
有关cqlshrc的更多信息 https://docs.datastax.com/en/cql/3.1/cql/cql_reference/cqlshrc.html