问题
INSERT...SELECT 语句时,我遇到了 parts 过多 (TOO_MANY_PARTS) 错误。
该如何解决?
答案
100_000_000 (默认值 1_048_576)
将其从约 1M 提高到 100M,有助于形成更大的块
注意:此设置仅在由服务器生成块时生效。也就是说,仅适用于通过 HTTP 接口执行的 INSERT,不适用于 clickhouse-client
min_insert_block_size_rows = 100_000_000 (默认值 1_048_576)
将其从约 1M 提高到 100M,有助于形成更大的块。
min_insert_block_size_bytes = 500_000_000 (默认值 268_435_456)
将其从 268.44 MB 提高到 500 MB,有助于形成更大的块。
parts_to_delay_insert = 500 (默认值 150)
提高此值后,当单个分区中的活动 parts 数量达到阈值时,INSERT 不会被人为放慢。
parts_to_throw_insert = 1500 (默认值 3000)
提高此值通常会影响该表的查询性能,但对于数据迁移来说,这是可以接受的。