Инженерия данных

File Formats

Форматы хранения

актуальноТекущий рабочий стандарт

Колоночные форматы против строковых: почему Parquet почти всегда лучше CSV для аналитики.

Ключевые тезисы

  • Колоночное хранение читает только нужные столбцы и сжимает их в разы лучше.
  • Parquet хранит схему и статистики блоков — это позволяет пропускать целые куски файла.
  • CSV остаётся только для обмена с внешними системами: у него нет типов и он не сжимается по столбцам.

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Почему колоночный формат быстрее

Читаем только то, что нужно.

Аналитический запрос обычно берёт 3–5 столбцов из 200. Строковый формат вынуждает прочитать все данные целиком, колоночный — только нужные столбцы, и они лежат подряд, поэтому лучше сжимаются и векторизуются.

ФорматСжатиеСхемаКогда
CSVплохоенетобмен с внешними системами
Parquetотличноеестьаналитика, ML, хранение
Avroхорошееестьпотоковые события, эволюция схемы
ORCотличноеестьэкосистема Hive
2

Predicate pushdown

Как Parquet пропускает целые куски файла.

Parquet хранит min/max для каждой группы строк. Если запрос фильтрует date >= '2026-08-01', движок пропускает группы, чьи максимумы меньше — не читая их с диска вообще.

На практике

Отсюда практическое правило: сортируйте данные внутри партиции по колонке, по которой чаще всего фильтруете. Это может ускорить запросы в разы бесплатно.

Связанные темы

Платформа данных

Warehouse, Lake, Lakehouse80%

Хранилище, озеро, lakehouse · Инженерия данных

Три способа хранить аналитические данные: строгая схема, сырые файлы или гибрид с транзакциями поверх объектного хранилища.

Partitioning80%

Партиционирование · Инженерия данных

Разделение данных по ключу (обычно по дате), чтобы запрос читал минимум файлов.

Analytical SQL80%

Аналитический SQL · Инженерия данных

Оконные функции, агрегации и CTE — основной инструмент подготовки признаков на больших данных.

ETL vs ELT80%

ETL и ELT · Инженерия данных

Преобразовывать данные до загрузки или уже внутри хранилища — и почему индустрия сместилась ко второму.

Batch and Streaming80%

Батч и стриминг · Инженерия данных

Обработка по расписанию против непрерывной обработки событий. Разные задержки, разные гарантии, разная стоимость.

Orchestration80%

Оркестрация пайплайнов · Инженерия данных

Планировщик, который знает зависимости между задачами, повторяет упавшие и не даёт запускать одно и то же дважды.

Spark80%

Spark · Инженерия данных

Распределённая обработка больших объёмов данных: тот случай, когда данные не помещаются на одну машину.

Kafka80%

Kafka · Инженерия данных

Распределённый журнал событий: основа потоковой архитектуры и источник данных для онлайн-признаков.

ML Pipelines80%

ML-пайплайны · MLOps

Оформление обучения как воспроизводимой последовательности шагов вместо разрозненных ноутбуков.

Data Versioning80%

Версионирование данных · MLOps

Данные меняются чаще кода — без их версий эксперимент не воспроизвести.