ClickHouse - 每个查询插入一百多个条目

ClickHouse - Inserting more than a hundred entries per query

我不知道如何增加每个查询的最大条目数。我想在每个查询中插入一千个条目,默认值为 100。

根据the doc,参数max_partitions_per_insert_block定义了同时输入的限制。

我试过从ClickHouse客户端修改,还是插入失败:

$ clickhouse-client
my-virtual-machine :) set max_partitions_per_insert_block=1000

*SET* max_partitions_per_insert_block = 1000

Ok.

0 rows in set. Elapsed: 0.001 sec. 

此外,/etc/clickhouse-server/config.xml 文件中没有 max_partitions_per_insert_block 字段。

修改 max_partitions_per_insert_block 后,我尝试插入我的数据,但我遇到了这个错误:

infi.clickhouse_orm.database.ServerError: Code: 252, e.displayText() = DB::Exception: Too many partitions for single INSERT block (more than 100). The limit is controlled by 'max_partitions_per_insert_block' setting. Large number of partitions is a common misconception. It will lead to severe negative performance impact, including slow server startup, slow INSERT queries and slow SELECT queries. Recommended total number of partitions for a table is under 1000..10000. Please note, that partitioning is not intended to speed up SELECT queries (ORDER BY key is sufficient to make range queries fast). Partitions are intended for data manipulation (DROP PARTITION, etc). (version 19.5.3.8 (official build))

编辑:我仍然坚持这个。我什至无法使用 SET max_partitions_per_insert_block = 1000 手动将参数设置为我想要的值:该值已更改但在退出并重新打开 clickhouse-client 后返回到 100(即使使用 sudo,所以它看起来不像权限问题)。

我在再次阅读文档时想通了,尤其是this document。我在 web 配置文件设置中识别了我在 system.settings table 中看到的。我只是尝试在我的默认配置文件中插入以下内容,重新加载,然后我插入了一千个条目:<max_partitions_per_insert_block>1000</max_partitions_per_insert_block>

我想这对某些人来说是显而易见的,但对于没有经验的人来说可能不是。

您很可能应该更改分区方案。每个分区都会在文件系统上生成多个文件,这可能会导致 OS 中断。另外,这可能是长期合并的原因。