1

我可以创建数据并将其摄取到具有 1100 列的表中,但是当我尝试对其运行任何类型的查询时,例如获取所有 val:

select * from iot_agg;

看起来我无法阅读它并出现以下错误

io.questdb.cairo.CairoException: [24] Cannot open file: /root/.questdb/db/table/iot_agg.d
        at io.questdb.std.ThreadLocal.initialValue(ThreadLocal.java:36)
        at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180)
        at java.lang.ThreadLocal.get(ThreadLocal.java:170)
        at io.questdb.cairo.CairoException.instance(CairoException.java:38)
        at io.questdb.cairo.ReadOnlyMemory.of(ReadOnlyMemory.java:135)
        at io.questdb.cairo.ReadOnlyMemory.<init>(ReadOnlyMemory.java:44)
        at io.questdb.cairo.TableReader.reloadColumnAt(TableReader.java:1031)
        at io.questdb.cairo.TableReader.openPartitionColumns(TableReader.java:862)
        at io.questdb.cairo.TableReader.openPartition0(TableReader.java:841)
        at io.questdb.cairo.TableReader.openPartition(TableReader.java:806)
...
4

1 回答 1

0

Ouroborus 建议可以重新访问该模式可能是正确的,但关于开罗的实际错误:

24:操作系统错误,打开的文件太多

这取决于运行实例的操作系统,并与系统范围或用户设置相关,如有必要,可以增加设置。

对于处理大量文件的多个不同数据库引擎,达到这样的限制是相对常见的。这通常配置有内核变量来设置打开文件的最大数量。检查打开文件的最大限制可以在 Linux 和 MacOS 上使用

ulimit -n

您还可以使用ulimit将其设置为您需要的值。例如,如果您需要将其设置为 10,000,您可以这样做:

ulimit -n 10000

编辑:部署 QuestDB 时有容量规划的官方文档,其中考虑了 CPU、内存、网络容量以及这些元素的组合等多个因素。有关详细信息,请参阅容量规划指南

于 2021-01-27T16:43:45.463 回答