Parquet (колоночное хранение Apache)
Apache Parquet — колоночный формат хранения, оптимизированный для аналитических нагрузок. Он хранит данные по столбцам, что обеспечивает эффективное сжатие и быстрое выполнение запросов, считывающих только нужные столбцы. Parquet — стандартный формат для data lake и big data.
MIME-тип
application/vnd.apache.parquet
Тип
Бинарный
Сжатие
Без потерь
Преимущества
- + Excellent compression through columnar encoding
- + Fast analytical queries — reads only needed columns
- + Predicate pushdown skips irrelevant row groups entirely
- + Standard in Spark, DuckDB, Pandas, and cloud data lakes
Недостатки
- − Not suited for transactional row-level updates
- − More complex to write than CSV or JSON
- − Schema evolution has some limitations
Когда использовать .PARQUET
Используйте Parquet для data lake, хранилищ данных, вывода ETL-пайплайнов и аналитических запросов, считывающих отдельные столбцы из широких таблиц.
Технические детали
Parquet организует данные в группы строк, состоящие из фрагментов столбцов. Каждый фрагмент сжимается независимо (Snappy, Gzip, Zstd, LZ4). Метаданные хранятся в футере файла и включают статистику min/max для предикатного пушдауна. Parquet поддерживает вложенные структуры через кодирование Dremel (уровни определения/повторения).
История
Twitter и Cloudera совместно создали Parquet в 2013 году, вдохновившись статьёй Google Dremel. Он стал проектом верхнего уровня Apache в 2015 году и является форматом по умолчанию для Spark, Hive, Presto и большинства data lake.