Почему для слоя данных выбирают Parquet вместо CSV
Выгрузки из источников складываются в объектное хранилище (S3/MinIO) и читаются Spark-ом и Trino. Сейчас это CSV-файлы общим объёмом около 40 ТБ. Обсуждается переход на Parquet.
Что даёт Parquet в этом сценарии?
- Возможность обновлять и удалять отдельные строки прямо в файле, не переписывая его целиком, — этим закрывают запросы на удаление персональных данных.
- Выигрыш только за счёт сжатия: ровно тот же эффект на этих объёмах даёт CSV, упакованный в gzip, и переписывать пайплайны не придётся.
- Возможность читать файл человеком без специальных инструментов и править данные вручную при инцидентах, не поднимая Spark.
- Колоночное хранение со схемой и сжатием: читаются только нужные колонки, объём на диске в разы меньше, типы данных не теряются при чтении.
