Выбор ответа Junior Parquet и партиционирование спрашивают часто обновлено
Почему Parquet быстрее CSV
Вопрос
Почему запрос SELECT sum(amount) FROM sales по Parquet обычно в разы быстрее, чем по тем же данным в CSV?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Parquet колоночный: читается только колонка amount, она сжата и типизирована, текст не разбирается. CSV придётся прочитать и распарсить целиком, все колонки, как текст.
Варианты ответа
- Parquet хранит в футере заранее посчитанные суммы всех числовых колонок, и запрос читает только их
- Parquet колоночный: читается только колонка
amount, она сжата и типизирована, текст не разбираетсяправильный ответ - CSV нельзя читать параллельно: строки разной длины, и файл приходится сканировать в один поток
- Parquet при первом чтении целиком кешируется в оперативной памяти движка, а CSV читается с диска
Разбор
CSV придётся прочитать и распарсить целиком, все колонки, как текст. Parquet хранит каждую колонку отдельно, с кодированием, сжатием и типами. Статистики в футере содержат min, max и число NULL, но не суммы. CSV можно читать параллельно по кускам. Parquet это файл на диске.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.