Выбор ответа Middle Parquet и партиционирование обновлено
Обновление строки в Parquet
Вопрос
Нужно поменять статус одного заказа в таблице, хранящейся как набор файлов Parquet без табличного формата. Что придётся сделать?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Переписать файл (или файлы) со строкой целиком: Parquet неизменяем. Файлы Parquet не редактируются по месту.
Варианты ответа
- Выполнить UPDATE: Parquet поддерживает обновление строк по месту
- Дописать новую версию строки в конец файла, а старую пометить флагом
- Поменять значение в футере файла, где хранятся данные row group
- Переписать файл (или файлы) со строкой целиком: Parquet неизменяемправильный ответ
Разбор
Файлы Parquet не редактируются по месту. Без табличного формата обновление означает перезапись файлов и согласование читателей вручную. Iceberg, Delta и Hudi делают это за вас: переписывают нужные файлы или пишут файлы удалений и атомарно публикуют новую версию. Дописать в конец Parquet нельзя, футер в конце файла. Футер хранит метаданные, а не значения строк.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.