質問
INSERT...SELECT ステートメントを実行すると、パーツが多すぎる (TOO_MANY_PARTS) というエラーが発生します。
これを解決するにはどうすればよいですか?
回答
100_000_000 (default 1_048_576)
約 1M から 100M に増やすことで、より大きなブロックを形成できるようになります
注: この設定は、サーバー側でブロックを形成する場合にのみ適用されます。つまり、HTTP インターフェイス経由の INSERT には適用されますが、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)
これを増やすと、一般にそのテーブルに対するクエリのパフォーマンスへ影響しますが、データ移行であれば問題ありません。