在 Apache IoTDB 中查询时,我得到Too many paths in one query. 有谁知道这意味着什么?我怎样才能避免这个错误?
1 回答
0
以下是可能的原因:
(1) 为了防止像“select * from root”这样的语句返回数据库中的所有时间序列,增加了每个查询的最大列数。默认是1000,超过1000会提示。
解决方案:
如果确实需要查询这么多时间序列,可以在 iotdb-engine.properties 中更改 max_deduplicated_path_num=1000。更改此配置后请记住重新启动服务器。
(2)对查询进行内存控制。对于每个查询,我们根据它查询的时间序列数分配内存。如果剩余查询内存不足以支持当前查询,也会报这个提示。
解决方案:
- 在 iotdb-env.sh/bat 中为 IoTDB 添加内存:MAX_HEAP_SIZE
- 在 iotdb-engine.properties 中为查询(读取)添加内存:write_read_schema_free_memory_proportion=4:3:1:2
- 减少查询并发
(3) 0.12.1及之前的版本,C++客户端的例子没有释放服务端的查询资源,导致内存泄漏。
解决方案:
将 IoTDB 和 CPP 客户端升级到版本 0.12.2。
于 2021-10-07T01:06:01.360 回答