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

Почему Parquet быстрее CSV

Вопрос

Почему запрос SELECT sum(amount) FROM sales по Parquet обычно в разы быстрее, чем по тем же данным в CSV?

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

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

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

Коротко

Правильный ответ: Parquet колоночный: читается только колонка amount, она сжата и типизирована, текст не разбирается. CSV придётся прочитать и распарсить целиком, все колонки, как текст.

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

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

Разбор

CSV придётся прочитать и распарсить целиком, все колонки, как текст. Parquet хранит каждую колонку отдельно, с кодированием, сжатием и типами. Статистики в футере содержат min, max и число NULL, но не суммы. CSV можно читать параллельно по кускам. Parquet это файл на диске.

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

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