Почему аналитические данные хранят в Parquet, что означает колончатый формат и когда обычный CSV остаётся удобнее.
У таблицы бывает разная упаковка
Представим условный набор сведений о доставках: дата, город, стоимость, статус и ещё несколько десятков признаков. Аналитику нужно посчитать стоимость по городам. Большая часть полей для этого вопроса не нужна, но способ хранения влияет на то, сколько сведений придётся прочитать.
Apache Parquet — открытый формат файлов, ориентированный на хранение данных по столбцам. Его используют аналитические инструменты, включая Apache Spark. Это не отдельная база данных и не программа для редактирования таблиц. Формат задаёт, как сведения упакованы в файл, а читать и обрабатывать их должен подходящий инструмент.
Что означает хранение по столбцам
В привычном текстовом представлении таблицы человек видит одну запись за другой. Колончатый подход объединяет значения отдельных столбцов внутри частей файла. Условно можно представить коробку с анкетами: для подсчёта городов удобнее получить список городов, чем рассматривать все ответы каждого человека.
В обзоре Apache Parquet колончатое хранение связано с эффективным чтением и сжатием данных. Если обработке нужны только определённые поля, совместимый инструмент может прочитать соответствующие части. Это не обещание ускорения любой задачи: результат зависит от запроса, устройства файлов и того, как именно работает программа чтения.
Подробнее: Apache Parquet: обзор формата.
Зачем файлу знать типы значений
Дата доставки, денежная сумма и название города имеют разный смысл. Parquet хранит сведения о структуре данных, включая типы полей. Это помогает инструментам интерпретировать содержимое последовательно, хотя правильность исходных сведений всё равно зависит от подготовки.
Документация Spark описывает поддержку чтения и записи Parquet и работу со схемой данных. Схема — описание полей и их типов. Если в одном файле стоимость записана как число, а в другом как произвольный текст, объединение требует внимания. Сам переход к формату не исправляет противоречия автоматически и не заменяет проверку источника.
Подробнее: Apache Spark: работа с Parquet.
Чем отличается от CSV
CSV удобен как простой текстовый обмен: его содержимое можно просмотреть без специальной аналитической системы. Parquet не рассчитан на обычное чтение человеком в текстовом редакторе. Для него нужен совместимый просмотрщик или инструмент обработки. Поэтому вопрос выбора зависит от того, кому и для чего передают данные.
В условном примере небольшую таблицу для разовой проверки коллегой бывает удобнее передать в CSV. Повторяющуюся аналитическую обработку большого набора можно рассматривать отдельно. Не стоит менять формат только ради модного названия: сначала проверьте поддержку у получателя, необходимость ручного просмотра и характер будущих задач.
Где возникают неожиданные сложности
Формат файла — лишь одна часть процесса. Данные могут быть разбиты на множество маленьких файлов, иметь разные схемы или содержать ошибки. Тогда ожидание, что Parquet сам сделает обработку быстрой и правильной, не оправдается. Организацию набора нужно рассматривать вместе с инструментом чтения.
Перед передачей полезно договориться о названиях полей, единицах измерения, значении пустых значений и периоде выгрузки. Получатель должен знать, какие сведения он открывает. Файл со структурой не является полноценным объяснением бизнес-смысла: поле «сумма» без уточнения может означать стоимость до скидки, после неё или уже полученную оплату.
Как новичку оценить применимость
Сформулируйте задачу без названия технологии. Нужно разово посмотреть небольшую выгрузку? Регулярно считать итоги по нескольким полям? Передавать набор в систему, которая поддерживает определённые форматы? Эти вопросы помогают выбрать способ хранения осмысленно.
Для знакомства сравните один понятный набор в двух представлениях и проверьте, сохраняются ли значения и типы при чтении выбранным инструментом. Не делайте вывод о будущей скорости всей платформы по одному маленькому примеру. В работе с PySpark полезно понимать Parquet как один из вариантов организации данных, а не обязательную замену всех остальных файлов.
Читайте также
Обучение в NovaData
Углубить знания в направлении поможет программа «PySpark для инженеров и аналитиков данных». Проверьте темы и требования к подготовке, чтобы сопоставить обучение со своей задачей.


