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

Обновление строки в Parquet

Вопрос

Нужно поменять статус одного заказа в таблице, хранящейся как набор файлов Parquet без табличного формата. Что придётся сделать?

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

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

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

Коротко

Правильный ответ: Переписать файл (или файлы) со строкой целиком: Parquet неизменяем. Файлы Parquet не редактируются по месту.

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

  1. Выполнить UPDATE: Parquet поддерживает обновление строк по месту
  2. Дописать новую версию строки в конец файла, а старую пометить флагом
  3. Поменять значение в футере файла, где хранятся данные row group
  4. Переписать файл (или файлы) со строкой целиком: Parquet неизменяемправильный ответ

Разбор

Файлы Parquet не редактируются по месту. Без табличного формата обновление означает перезапись файлов и согласование читателей вручную. Iceberg, Delta и Hudi делают это за вас: переписывают нужные файлы или пишут файлы удалений и атомарно публикуют новую версию. Дописать в конец Parquet нельзя, футер в конце файла. Футер хранит метаданные, а не значения строк.

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

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