Выбор ответа Middle Parquet и партиционирование спрашивают часто обновлено

Проблема мелких файлов

Вопрос

Стриминговая задача каждую минуту пишет в озеро новые файлы по 50 КБ. Через месяц запросы по таблице стали очень медленными. Почему и что делать?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Расходы на открытие файлов, футеры и листинг больше полезного чтения; нужна регулярная компакция. Сорок с лишним тысяч файлов в месяц на партицию это сорок тысяч запросов к хранилищу и сорок тысяч футеров.

Варианты ответа

  1. Parquet со временем деградирует из-за фрагментации футеров, нужно пересоздать таблицу целиком
  2. S3 переводит старые объекты в холодный класс хранения, и чтение их замедляется в разы
  3. Расходы на открытие файлов, футеры и листинг больше полезного чтения; нужна регулярная компакцияправильный ответ
  4. Нужно перейти на CSV: у него нет футера, и открытие мелких файлов обходится намного дешевле

Разбор

Сорок с лишним тысяч файлов в месяц на партицию это сорок тысяч запросов к хранилищу и сорок тысяч футеров. Компакция (процедуры rewrite у Iceberg, OPTIMIZE у Delta или своя задача) склеивает их. Parquet не деградирует. Хранилище не замедляет старые объекты. CSV сделает всё медленнее: нет колоночности и статистик.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.