Вступить в клуб →
сложнаявопросХранилища и распределённая обработка

Построчная вставка из Kafka привела к ошибке «too many parts»

Сервис доставки событий пишет в ClickHouse каждое событие отдельным INSERT, поток — около 10 тысяч событий в минуту. Через сутки после запуска: вставки стали отбиваться ошибкой о слишком большом числе кусков, SELECT-ы по таблице заметно деградировали, фоновые слияния не успевают.

Что нужно изменить? Выберите два варианта.

правильных вариантов может быть несколько

  • Накапливать события на стороне сервиса и вставлять батчами по десятки тысяч строк или раз в несколько секунд — по тому, что наступит раньше.
  • Поднять серверный порог на число кусков в таблице, чтобы вставки перестали отбиваться, пока фоновые слияния догоняют поток.
  • Переложить батчирование на ClickHouse: читать поток движком Kafka с материализованным представлением в целевую таблицу либо использовать режим асинхронной вставки, который сам собирает буфер.
  • Выполнять OPTIMIZE TABLE ... FINAL после каждой пачки вставок, чтобы куски сливались сразу, а не ждали фонового слияния.
  • Создавать отдельную таблицу на каждый день и писать в свежую, а старые отцеплять и объединять представлением — так число кусков в активной таблице будет расти медленнее.

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела