Выбор ответа Middle Parquet и партиционирование спрашивают часто обновлено
Проблема мелких файлов
Вопрос
Стриминговая задача каждую минуту пишет в озеро новые файлы по 50 КБ. Через месяц запросы по таблице стали очень медленными. Почему и что делать?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Расходы на открытие файлов, футеры и листинг больше полезного чтения; нужна регулярная компакция. Сорок с лишним тысяч файлов в месяц на партицию это сорок тысяч запросов к хранилищу и сорок тысяч футеров.
Варианты ответа
- Parquet со временем деградирует из-за фрагментации футеров, нужно пересоздать таблицу целиком
- S3 переводит старые объекты в холодный класс хранения, и чтение их замедляется в разы
- Расходы на открытие файлов, футеры и листинг больше полезного чтения; нужна регулярная компакцияправильный ответ
- Нужно перейти на CSV: у него нет футера, и открытие мелких файлов обходится намного дешевле
Разбор
Сорок с лишним тысяч файлов в месяц на партицию это сорок тысяч запросов к хранилищу и сорок тысяч футеров. Компакция (процедуры rewrite у Iceberg, OPTIMIZE у Delta или своя задача) склеивает их. Parquet не деградирует. Хранилище не замедляет старые объекты. CSV сделает всё медленнее: нет колоночности и статистик.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.