Cassandra cqlsh 查询失败,没有错误
Cassandra cqlsh query fails with no error
我一直在尝试运行这样的查询:
SELECT COUNT(*) FROM sensors WHERE sensor_id = 1 and date = '2014-11';
列族。 WHERE 子句过滤到具有大约 200 万列的分区键。我希望得到大约的计数结果。 200 万,但我收到此错误:
errors={}, last_host=[THE_IP_OF_MY_SERVER]
如果我运行查询以获取列,它 return 数据很好,但它不能 return 计数。我了解此类计数查询可能存在的性能问题(例如讨论的问题 here),但我仍然希望为我的测试获得此查询的一些结果。
所以我的问题是:
- 这是超时错误吗?如果是,我该如何增加超时时间?
- 如果不是,为什么会出现此错误?有没有办法获得更多详细信息?我检查了集群中每个节点上的 system.log,在查询期间没有打印任何内容。
我在运行 Ubuntu 14.04.
的两个节点集群上使用 Cassandra 2.1 与 cqlsh 5.0.1 和 spec 3.2
谢谢
应该是超时了。如果您计划使用范围查询,则可以通过更改 "read_request_timeout_in_ms" 甚至 "range_request_timeout_in_ms"(在 cassandra.yaml 中)的值来增加请求所需的最长时间。更改值后重新启动集群(它们默认为 10 秒)。
请注意,如果您 运行 对分区键进行精确查询,您将得到 0 或 1 作为计数。因此,如果 returns 多于 1 行,则您的查询是针对聚类列(主键第一列之后的列)。
编辑 ~/.cqlshrc 或 ~/.cassandra/cqlshrc:
[connection]
client_timeout = 20
根据需要调整超时数(以秒为单位)。
我一直在尝试运行这样的查询:
SELECT COUNT(*) FROM sensors WHERE sensor_id = 1 and date = '2014-11';
列族。 WHERE 子句过滤到具有大约 200 万列的分区键。我希望得到大约的计数结果。 200 万,但我收到此错误:
errors={}, last_host=[THE_IP_OF_MY_SERVER]
如果我运行查询以获取列,它 return 数据很好,但它不能 return 计数。我了解此类计数查询可能存在的性能问题(例如讨论的问题 here),但我仍然希望为我的测试获得此查询的一些结果。
所以我的问题是:
- 这是超时错误吗?如果是,我该如何增加超时时间?
- 如果不是,为什么会出现此错误?有没有办法获得更多详细信息?我检查了集群中每个节点上的 system.log,在查询期间没有打印任何内容。
我在运行 Ubuntu 14.04.
的两个节点集群上使用 Cassandra 2.1 与 cqlsh 5.0.1 和 spec 3.2谢谢
应该是超时了。如果您计划使用范围查询,则可以通过更改 "read_request_timeout_in_ms" 甚至 "range_request_timeout_in_ms"(在 cassandra.yaml 中)的值来增加请求所需的最长时间。更改值后重新启动集群(它们默认为 10 秒)。
请注意,如果您 运行 对分区键进行精确查询,您将得到 0 或 1 作为计数。因此,如果 returns 多于 1 行,则您的查询是针对聚类列(主键第一列之后的列)。
编辑 ~/.cqlshrc 或 ~/.cassandra/cqlshrc:
[connection]
client_timeout = 20
根据需要调整超时数(以秒为单位)。