Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Как устранить ошибку TOO MANY PARTS при `INSERT...SELECT`?

Вопрос

При выполнении оператора INSERT...SELECT возникает ошибка Too many parts (TOO_MANY_PARTS).

Как это исправить?

Ответ

Ниже приведены некоторые настройки, которые можно скорректировать, чтобы избежать этой ошибки. Это тонкая настройка ClickHouse экспертного уровня, и задавать эти значения следует только после понимания характеристик сервиса ClickHouse Cloud или локального кластера, где они будут использоваться, поэтому не воспринимайте их как «универсальное решение».

max_insert_block_size = 100_000_000 (default 1_048_576)

Увеличение примерно с 1M до 100M позволит формировать более крупные блоки

Примечание: эта настройка применяется только в тех случаях, когда блоки формирует сервер, то есть для INSERT через HTTP-интерфейс, а не для clickhouse-client

min_insert_block_size_rows = 100_000_000 (default 1_048_576)

Увеличение примерно с 1M до 100M позволит формировать более крупные блоки.

min_insert_block_size_bytes = 500_000_000 (default 268_435_456)

Увеличение с 268.44 MB до 500 MB позволит формировать более крупные блоки.

parts_to_delay_insert = 500 (default 150)

Увеличение этого значения позволяет избежать искусственного замедления INSERT при достижении числа активных частей в одной партиции.

parts_to_throw_insert = 1500 (default 3000)

Увеличение этого значения в целом скажется на производительности запросов к таблице, но для миграции данных это допустимо.

Navigation