折雨的天空
Code: 252. DB::Exception: Too many partitions for single INSERT block (more than 100)
2023-10-17 我好笨


Clickhouse批量写入的时候,报错:



Code: 252. DB::Exception: Too many partitions for single INSERT block (more than 100)



微信图片_20231017113758.png







并且,系统负载很高,写入数据就算能够成功,写入速度很慢。







根据错误信息搜索,找到解决方案:



https://blog.csdn.net/qq_45124566/article/details/127091412#:~:text=DB%3A%3AException%3A%20Too%20many%20partitions%20for%20single%20INSERT%20block,startup%2C%20slow%20INSERT%20queries%20and%20slow%20SELECT%20queries.







需要修改参数



max_partitions_per_insert_block



max_partitions_per_insert_block 参数用来限制单个插入 Block 中,包含的最大分区数量,默认值为 100。设置为 0 时,表示不限制。







上面文章中的解决方案:



调整分区数或者 max_partitions_per_insert_block 参数。

合理设置分区字段
调整表结构,调整分区方式。

避免同一批次写入包含太多分区的数据
减小写入的批量大小,避免单个插入的不同分区数超过限制。

修改 max_partitions_per_insert_block 参数,调大这个值
如果无法调整批量大小,可适当修改 max_partitions_per_insert_block 参数,放大限制。

配置文件修改: 在 users.xml 配置文件中进行配置。配置在 <profiles> 块中。CK 的配置文件是即时生效,不需要重启服务器。
在一个会话中临时修改:SET max_partitions_per_insert_block = 1000。用于临时导入大量数据的情况。







修改配置文件是没问题的,但是尝试几次,这个配置放置的位置很重要。不重启倒是真的。



这个配置应该要放在profiles下的default节点中,不是profiles节点下,如图:







微信图片_20231017114531.png









发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容