【问题标题】:Querying table with >1000 columns fails查询具有 >1000 列的表失败
【发布时间】:2021-01-27 15:26:07
【问题描述】:

我可以创建数据并将其提取到具有 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)
...

【问题讨论】:

  • 一个表中没有 1100 列。

标签: questdb


【解决方案1】:

Ouroborus 建议可以重新访问架构可能是正确的,但关于来自 Cairo 的实际错误:

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

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

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

ulimit -n

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

ulimit -n 10000

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

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多