首页 >ClickHouse执行insert语句插入数据时提示“Too many partitions for single INSERT block (more than 100)”错误

ClickHouse执行insert语句插入数据时提示“Too many partitions for single INSERT block (more than 100)”错误

问题描述

阿里云云数据库ClickHouse执行insert语句插入数据时,提示以下错误:

Too many partitions for single INSERT block (more than 100). The limit is controlled by 'max_partitions_per_insert_block' setting.

问题原因

ClickHouse每次写入都会生成一个data part,如果每次写入一条或者少量的数据,那会造成ClickHouse内部有大量的data part(会给merge和查询造成很大的负担)。为了防止出现大量的data part,ClickHouse内部做了很多限制。发生报错的原因是max_partitions_per_insert_block参数用来限制单个插入的Block,数据插入太频繁,ClickHouse不支持频繁插入操作。

解决方案

请执行以下操作,调整分区数或者max_partitions_per_insert_block参数:

  • 调整表结构,调整分区方式,增加写入的批量大小,避免单个插入的不同分区数超过限制。
  • 如果无法调整批量大小,可适当修改max_partitions_per_insert_block参数,放大限制,修改语法如下:
    set global on cluster default max_partitions_per_insert_block = XXX;

适用于

  • 云数据库ClickHouse
阿里云首页 相关技术圈