awesome-everything EN
↑ Обратно к восхождению

Data engineering

Parquet: тест с выбором ответа

Суть Синтез всего юнита Parquet в формате с выбором ответа — колоночная раскладка, статистики футера и pushdown, encoding против compression, размер row group и ловушка small files.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов, проходящих сквозь весь юнит. Каждый — это решение, которое ты принимаешь, проектируя таблицу в озере данных: не определение для пересказа, а компромисс, который надо взвесить против реального запроса и реальной цены.

Цель

Убедись, что умеешь связать колоночную раскладку, статистики футера, encoding против compression, размер row group и продакшен-ловушки — синтез, к которому вёл урок.

Викторина

Таблица events из 40 колонок запрашивается как SELECT user_id, country WHERE day = '2024-02-01'. Два независимых механизма Parquet делают это гораздо дешевле, чем CSV. Какие?

Викторина

В таблице есть статистики по day на каждую row group, но WHERE day = '2024-02-01' всё равно сканирует почти все row groups. Какая причина наиболее вероятна?

Викторина

Коллега говорит: 'Parquet сжимает данные, значит encoding и compression — это одно и то же.' Какая точная поправка?

Викторина

Ты включаешь dictionary encoding на колонке случайных UUID. Какой вероятный исход и почему?

Викторина

Kafka-консьюмер сбрасывает крошечный Parquet-файл в S3 каждые 10 секунд. Дашборды над таблицей стали мучительно медленными. Какое решение даёт наибольший рычаг?

Викторина

Сырые Parquet-файлы в директории дают тебе колоночное хранение и pushdown. Что добавляют сверху Iceberg, Delta Lake и Hudi и почему это важно?

Итог

Сквозная линия юнита — один цикл проектирования: колоночная раскладка даёт column pruning, min/max в футере дают пропуск row group и pages (predicate pushdown) — но только когда данные кластеризованы по колонкам фильтра. Encoding и compression — отдельные наложенные выигрыши, и dictionary encoding бьёт по рукам на колонках высокой кардинальности. Повторяющиеся продакшен-ловушки — это small-files problem (лечится compaction, а не кодеком получше) и размер row group. А поскольку у сырого Parquet нет транзакций, table formats — Iceberg, Delta Lake, Hudi — оборачивают его слоем манифеста ради ACID, time travel, безопасной schema evolution и pruning на уровне манифеста.

Продолжить восхождение ↑Parquet: тест на припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.