Что такое Parquet и зачем он нужен при работе с данными

Почему аналитические данные хранят в Parquet, что означает колончатый формат и когда обычный CSV остаётся удобнее.

Столбцы стеклянных плиток — образ хранения данных в Parquet

У таблицы бывает разная упаковка

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

Apache Parquet — открытый формат файлов, ориентированный на хранение данных по столбцам. Его используют аналитические инструменты, включая Apache Spark. Это не отдельная база данных и не программа для редактирования таблиц. Формат задаёт, как сведения упакованы в файл, а читать и обрабатывать их должен подходящий инструмент.

Что означает хранение по столбцам

В привычном текстовом представлении таблицы человек видит одну запись за другой. Колончатый подход объединяет значения отдельных столбцов внутри частей файла. Условно можно представить коробку с анкетами: для подсчёта городов удобнее получить список городов, чем рассматривать все ответы каждого человека.

В обзоре Apache Parquet колончатое хранение связано с эффективным чтением и сжатием данных. Если обработке нужны только определённые поля, совместимый инструмент может прочитать соответствующие части. Это не обещание ускорения любой задачи: результат зависит от запроса, устройства файлов и того, как именно работает программа чтения.

Подробнее: Apache Parquet: обзор формата.

Зачем файлу знать типы значений

Дата доставки, денежная сумма и название города имеют разный смысл. Parquet хранит сведения о структуре данных, включая типы полей. Это помогает инструментам интерпретировать содержимое последовательно, хотя правильность исходных сведений всё равно зависит от подготовки.

Документация Spark описывает поддержку чтения и записи Parquet и работу со схемой данных. Схема — описание полей и их типов. Если в одном файле стоимость записана как число, а в другом как произвольный текст, объединение требует внимания. Сам переход к формату не исправляет противоречия автоматически и не заменяет проверку источника.

Подробнее: Apache Spark: работа с Parquet.

Чем отличается от CSV

CSV удобен как простой текстовый обмен: его содержимое можно просмотреть без специальной аналитической системы. Parquet не рассчитан на обычное чтение человеком в текстовом редакторе. Для него нужен совместимый просмотрщик или инструмент обработки. Поэтому вопрос выбора зависит от того, кому и для чего передают данные.

В условном примере небольшую таблицу для разовой проверки коллегой бывает удобнее передать в CSV. Повторяющуюся аналитическую обработку большого набора можно рассматривать отдельно. Не стоит менять формат только ради модного названия: сначала проверьте поддержку у получателя, необходимость ручного просмотра и характер будущих задач.

Где возникают неожиданные сложности

Формат файла — лишь одна часть процесса. Данные могут быть разбиты на множество маленьких файлов, иметь разные схемы или содержать ошибки. Тогда ожидание, что Parquet сам сделает обработку быстрой и правильной, не оправдается. Организацию набора нужно рассматривать вместе с инструментом чтения.

Перед передачей полезно договориться о названиях полей, единицах измерения, значении пустых значений и периоде выгрузки. Получатель должен знать, какие сведения он открывает. Файл со структурой не является полноценным объяснением бизнес-смысла: поле «сумма» без уточнения может означать стоимость до скидки, после неё или уже полученную оплату.

Как новичку оценить применимость

Сформулируйте задачу без названия технологии. Нужно разово посмотреть небольшую выгрузку? Регулярно считать итоги по нескольким полям? Передавать набор в систему, которая поддерживает определённые форматы? Эти вопросы помогают выбрать способ хранения осмысленно.

Для знакомства сравните один понятный набор в двух представлениях и проверьте, сохраняются ли значения и типы при чтении выбранным инструментом. Не делайте вывод о будущей скорости всей платформы по одному маленькому примеру. В работе с PySpark полезно понимать Parquet как один из вариантов организации данных, а не обязательную замену всех остальных файлов.

Читайте также

Обучение в NovaData

Углубить знания в направлении поможет программа «PySpark для инженеров и аналитиков данных». Проверьте темы и требования к подготовке, чтобы сопоставить обучение со своей задачей.

PySpark для инженеров и аналитиков данных
Курс
Доступ сразу
PySpark для инженеров и аналитиков данных

Разработчик PySpark — это инженер, который обрабатывает большие объемы данных с помощью распределённых вычислений и строит масштабируемые системы обработки данных.

С нуля до junior
Теория и практика
Диплом по окончании
12 990
₽/мес
УЗНАТЬ ПОДРОБНЕЕ

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
47

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
46

Вертикальное и горизонтальное масштабирование данных: в чём разница

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

Журнал изменений данных: как выяснить, кто и когда изменил набор

Что можно узнать из журнала действий с данными, как он помогает разбирать ошибки и почему его записи не показывают всю историю сами по себе.

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.