0

在 Apache IoTDB 中查询时,我得到Too many paths in one query. 有谁知道这意味着什么?我怎样才能避免这个错误?

4

1 回答 1

0

以下是可能的原因:

(1) 为了防止像“select * from root”这样的语句返回数据库中的所有时间序列,增加了每个查询的最大列数。默认是1000,超过1000会提示。

解决方案:

如果确实需要查询这么多时间序列,可以在 iotdb-engine.properties 中更改 max_deduplicated_pa​​th_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 回答