Ошибка Too many parts при записи из Spark в clickhouse
Периодически упираюсь в ошибку
DB::Exception: Too many parts (600). Merges are processing significantly slower than inserts.
Для работы со спарком использую python. Запись ведется как из spark streaming так и просто spark. Ошибка наблюдается даже для единичной вставки данных из спарка.
Нашел 2 пути решения
- таблица buffer в кликхаусе
- заставить спарк делать меньше вставок большими объемами
Хотелось бы реализовать 2-й вариант. Для спарка немного помогло перед вставкой вызывать repartition передавая туда число экзекьюторов если текущее число партиций больше. Кроме этого уменьшил объем обрабатываеммых данных, что окончательно убрало ошибку. В случае spark streaming решения не нашел.
Может есть какие то параметры для spark или еще что то что решает эту задачу без таблиц buffer?
Забыл добавить еще 1 момент. В кликхаусе есть параметр который устанавливает максимальное количество партиций (по дефолту 300). Этот параметр изменил на 600. Вариант загонять его в космос тоже не желателен