Clickhouse 内存问题

Clickhouse Memory Issue

我有一个 table 大约有 20 亿行,我试图从中查询 max(id)。 Id 不是 table 的排序键并且 table 正在使用 table 引擎 mergeTree.

无论我尝试什么,我都会遇到内存错误。这不仅限于此一个查询。一旦我尝试完全(垂直)查询任何 table 以查找数据,我的 12 GB 内存就不够用了。现在我知道我可以添加更多,但这不是重点。 Clickhouse 是否只是在没有足够内存时抛出错误的设计?是否有设置告诉 clickhouse 改用磁盘?

SQL错误[241]:ClickHouse异常,代码:241,主机:XXXXXX,端口:8123;代码:241,e.displayText() = DB::Exception:超出内存限制(用于查询):将使用 9.32 GiB(尝试分配 9440624 字节的块),最大值:9.31 GiB(版本 21.4.6.55(正式版))

Alexey Milovidov 不同意将最低 RAM 要求放入 CH 文档中。但我会说 32 GB 是生产 CH 的最低要求。

至少:

  • 你需要降低标记缓存,因为它是 5GB!!!!默认情况下(设置为 500MB)。
  • 您需要将 max_block_size 降低到 16384。
  • 您需要将 max_threads 降低到 2。
  • 您需要将 max_bytes_before_external_group_by 设置为 3GB。
  • 您需要将 aggregation_memory_efficient_merge_threads 设置为 1。

对我来说,有效的方法是将最大服务器内存使用量从 0.9 更改为 1.2。

1.2 --> config.xml

感谢您的回复,因为它最终让我想到了这个。