Apache IoTDB returns 错误 "Too many paths in one query"
Apache IoTDB returns error "Too many paths in one query"
在 Apache IoTDB 中查询时,我得到 Too many paths in one query
。有谁知道这是什么意思?我怎样才能避免这个错误?
以下是可能的原因:
(1) 为了防止像“select * from root”这样的语句到数据库中的所有时间序列return,增加了每个查询的最大列数。默认1000,超过1000会有提示
解决方案:
如果真的需要查询那么多的时间序列,可以在iotdb-engine.properties中改成max_deduplicated_path_num=1000。更改此配置后记得重新启动服务器。
(2) 对查询进行内存控制。对于每个查询,我们根据它查询的时间序列数分配内存。如果剩余查询内存不足以支持当前查询,也会报此提示。
解决方案:
- 在 iotdb-env 中为 IoTDB 添加内存。sh/bat: 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。
在 Apache IoTDB 中查询时,我得到 Too many paths in one query
。有谁知道这是什么意思?我怎样才能避免这个错误?
以下是可能的原因:
(1) 为了防止像“select * from root”这样的语句到数据库中的所有时间序列return,增加了每个查询的最大列数。默认1000,超过1000会有提示
解决方案:
如果真的需要查询那么多的时间序列,可以在iotdb-engine.properties中改成max_deduplicated_path_num=1000。更改此配置后记得重新启动服务器。
(2) 对查询进行内存控制。对于每个查询,我们根据它查询的时间序列数分配内存。如果剩余查询内存不足以支持当前查询,也会报此提示。
解决方案:
- 在 iotdb-env 中为 IoTDB 添加内存。sh/bat: 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。