BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Что такое Apache Parquet и зачем он нужен

Что такое Apache Parquet и зачем он нужен

Apache Parquet — это открытый колоночный формат хранения данных, который часто используют в Data Lake, Big Data-платформах, облачных хранилищах и аналитических пайплайнах. В отличие от CSV и других строковых форматов, Parquet хранит данные по столбцам, поэтому аналитические системы могут читать только нужные колонки и быстрее выполнять запросы.

Parquet помогает уменьшать объем хранения за счет эффективного сжатия, сохраняет схему и метаданные внутри файла, хорошо подходит для Spark, Hadoop, Amazon S3, Athena, DWH и lakehouse-архитектур. В статье разберем, что такое Apache Parquet, чем он отличается от CSV, Avro и ORC, какие преимущества дает для аналитики и в каких сценариях его стоит использовать.

Что внутри:

  • что такое Apache Parquet простыми словами;
  • почему Parquet называют колоночным форматом;
  • чем Parquet отличается от CSV, Avro и ORC;
  • как колоночное хранение ускоряет аналитические запросы;
  • сжатие файлов и экономия места;
  • схема и метаданные внутри Parquet-файла;
  • применение Parquet в Data Lake;
  • Parquet в Amazon S3, Athena, Spark и Hadoop;
  • когда стоит выбирать Parquet;
  • ограничения и ситуации, где Parquet может быть не лучшим выбором.

 

С момента своего появления в 2013 году Apache Parquet стал одним из самых популярных и востребованных  форматов хранения данных с открытым исходным кодом. Когда  AWS объявила об экспорте данных из Data Lake, cспециалисты компании подчеркнули, что «по сравнению с текстовыми форматами Parquet в 2 раза быстрее при выгрузке и потребляет в 6 раз меньше места для хранения в Amazon S3». Преобразование данных в колоночные форматы хранения, такие как Parquet или ORC, также способствует повышению производительности Amazon Athena.

Очевидно, что Apache Parquet незаменим при работе с Data Lake.

Parquet - один из основных форматов файлов, поддерживаемых Upsolver, мощной платформой для преобразования данных, работающей на базе SQL.  Она может вводить и выводить файлы Parquet и использует данный формат хранения по умолчанию. 

Теперь давайте подробнее рассмотрим, что такое Parquet и почему он так важен для хранения и анализа Big Data.

 

Основное определение: что такое Apache Parquet?

Apache Parquet - это формат хранения данных, разработанный для  быстрой обработки сложных данных и обладающий несколькими основными особенностями:

  1. Колоночно-ориентированный формат: в отличие от форматов хранения по строкам, таких как CSV или Avro, Apache Parquet ориентирован на столбцы - это означает то, что значения каждого столбца таблицы хранятся рядом друг с другом:

 

  1. Open-source проект: Parquet имеет открытый исходный код в соответствии с лицензией Apache Hadoop и совместим с большинством фреймворков обработки данных Hadoop. Согласно информации, размещенной на официальном сайте, “Apache Parquet … применим абсолютно для любого проекта… независимо от выбора фреймворка обработки данных, модели данных или языка программирования.”

 

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

 

Преимущества формата хранения данных  Parquet – почему я должен выбрать именно его?

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

 

  1. Сжатие файлов

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

  • Кодирование словаря: включается автоматически для данных с небольшим количеством уникальных значений.
  • Упаковка бит: для хранения целых чисел обычно выделяется 32 или 64 бита на целое число. Это позволяет более эффективно хранить небольшие целые числа.
  • Кодирование длиной длины (RLE): когда одно и то же значение встречается несколько раз, оно сохраняется один раз вместе с количеством повторений. В Parquet реализована комбинированная версия упаковки бит и RLE, в которой мед кодировки меняется в зависимости от того, какой из них дает наилучшие результаты сжатия.

 

  1. Производительность

В отличие от форматов файлов, ориентированных на строки, таких как CSV, Parquet оптимизирован для повышения производительности. Выполняя запросы к файловой системе на основе Parquet, Вы сможете сосредоточиться только на нужных Вам данных. Более того, объем сканируемых данных будет гораздо меньше, что приведет к снижению затрат на операции I/O. Чтобы лучше понять этот принцип, давайте немного углубимся в то, как устроены файлы Parquet.

Как мы уже говорили, Parquet содержит как данные, так и метаданные. Файлы Parquet состоят из групп строк, заголовка и нижнего колонтитула. Каждая группа строк содержит данные из одних и тех же столбцов. Одинаковые столбцы хранятся вместе в каждой группе строк:

 

Такая структура оптимизирована как для быстрого выполнения запросов, так и для небольшого количества операций I/O. Например, если у Вас есть таблица с 1000 столбцами, в которой Вы обычно запрашиваете только небольшое подмножество столбцов. Использование Parquet позволит Вам получить только необходимые столбцы и их значения, быстро загрузить их в память и оперативно ответить на запрос. Если бы мы использовали формат файла, основанный на строках, например CSV, нам пришлось бы загружать в память всю таблицу, что привело бы к увеличению объема операций ввода-вывода и снижению производительности в целом.

 

  1. Развитие схемы

При использовании колоночно-ориентированных форматов хранения пользователи могут начать с простой схемы и постепенно добавлять в нее новые столбцы по мере необходимости. Таким образом, у пользователя может оказаться несколько файлов Parquet с разными, но  взаимно совместимыми схемами. В таких случаях реализована поддержка автоматического объединения схем этих файлов.

 

  1. Open-source и свободное решение  

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

Хранение данных в открытых форматах позволяет избежать привязки к поставщику и повысить гибкость по сравнению с проприетарными форматами файлов, используемыми во многих современных высокопроизводительных базах данных. Это означает, что Вы можете использовать различные механизмы запросов, такие как Amazon Athena, Qubole и Amazon Redshift Spectrum, в рамках одной архитектуры Data Lake, а не привязываться к какому-то одному поставщику баз данных.

 

Колоночное хранение vs строковое хранение в рамках выполнения аналитических запросов

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

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

  • Запросы будут выполняться гораздо дольше, поскольку нужно будет просканировать больше данных, а не запрашивать только подмножество столбцов, необходимых для ответа на тот или иной запрос (что обычно требует агрегирования по размеру или категории).
  • Хранение будет более дорогостоящим, поскольку CSV файлы сжимаются не так эффективно, как Parquet

 

Колоночные форматы хранения обеспечивают лучшее сжатие и повышенную производительность, а также позволяют запрашивать данные по вертикали - столбец за столбцом.

 

В каких случаях нужно использовать Apache Parquet?

Parquet совершенно точно стоит использовать в следующих случаях:

  • Когда Вы работаете с очень большими объемами данных. Parquet создан для обеспечения производительности и эффективного сжатия файлов. Различные бенчмарки, сравнивавшие время обработки SQL-запросов в Parquet с такими форматами, как Avro или CSV (в том числе описанный в этой статье), показали, что запросы в Parquet выполняются гораздо быстрее.

 

  • Когда набор данных содержит множество столбцов, но Вам нужно получить доступ только к определенному подмножеству. В связи с растущей сложностью и объемом записываемых данных в определенный момент времени Вы можете увидеть, что вместо 20 полей для каждого события Вы теперь собираете более 100. Хотя эти данные легко хранить в Data Lake, для запроса к ним потребуется просканировать значительный объем данных, если они хранятся в форматах, основанных на строках. Колоночная природа Parquet позволяет извлекать только те столбцы, которые действительно необходимы для ответа на конкретный запрос.

 

  • Когда появляется необходимость в том, чтобы несколько сервисов могли использовать одни и те же данные из объектного хранилища. В то время как поставщики баз данных, такие как Oracle и Snowflake, предпочитают хранить данные в проприетарном формате, который могут читать только их инструменты, современная архитектура данных склоняется к отделению хранения от вычислений. Если Вы хотите работать с несколькими аналитическими службами для решения различных задач, Вам следует хранить данные в формате Parquet.

 

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

 

Parquet vs ORC

Apache Parquet и Optimized Row Columnar (ORC) – два наиболее  популярных формата хранения Big Data. Выбор наиболее подходящего формата зависит от того, что Вы хотите получить.

  • Эффективность записи: ORC лучше подходит для операций, требующих больших объемов записи. Он обеспечивает более высокую скорость записи по сравнению с Parquet, особенно при работе с развивающимися схемами.

 

  • Эффективность чтения: Parquet отлично подходит для WORM аналитических сценариев, обеспечивая высокоэффективную компрессию и декомпрессию данных. Он поддерживает пропуск данных, что позволяет запросам возвращать определенные значения столбцов, пропуская всю строку данных, что приводит к минимизации операций ввода-вывода. Совместимость: ORC хорошо совместим с экосистемой Hive, обеспечивая такие преимущества, как поддержка транзакций ACID при работе с Apache Hive. Однако Parquet предлагает более широкие возможности, поддерживая множество языков программирования, таких как Java, C++ и Python, что делает его пригодным для использования практически в любой среде Big Data. Кромего, данный формат хранения широко  используется в различных механизмах запросов, таких как Amazon Athena, Amazon Redshift Spectrum, Qubole, Google BigQuery, Microsoft Azure Data Explorer и Apache Drill.

 

  • Сжатие: И ORC, и Parquet предлагают множество вариантов сжатия и поддерживают эволюцию схемы. Однако, когда главным критерием является сжатие, как правило, выбирают Parquet, поскольку именно он позволяет получить файлы меньшего размера благодаря чрезвычайно эффективным схемам сжатия и кодирования. Он также может поддерживать конкретные схемы сжатия на основе отдельных столбцов, что еще больше оптимизирует хранение данных.

 

 

Пример: запись файлов Parquet в S3

Для наглядной демонстрации преимуществ использования колоночных форматов хранения данных рассмотрим случай использования Amazon Athena для запроса данных, хранящихся на Amazon S3.

Используя Upsolver, мы перенесли CSV-набор данных журналов сервера в S3. В обычной архитектуре Data Lake в AWS Athena используется для запросов к данным непосредственно из S3. Затем эти запросы можно визуализировать с помощью таких интерактивных инструментов визуализации данных, таких как Tableau или Looker.

 

Мы протестировали Athena с одним и тем же набором данных, хранящимся в сжатом виде CSV и в виде Apache Parquet.

Вот запрос, который мы выполнили в Athena:

SELECT tags_host AS host_id, AVG(fields_usage_active) as avg_usage
FROM server_usage
GROUP BY tags_host
HAVING AVG(fields_usage_active) > 0
LIMIT 10

 

Результаты:

 

CSV

Parquet

Столбцы

Время обработки запроса (секунды)

735

211

18

Объем отсканированных данных (Гб)

372.2

10.29

18

 

  • Сжатые файлы CSV: сжатый CSV имеет 18 столбцов и весит 27 ГБ. Athena должна просканировать весь CSV-файл, чтобы ответить на запрос, поэтому мы будем платить за 27 ГБ отсканированных данных. При увеличении объемов данных это негативно скажется на производительности в целом.

 

  • Parquet: преобразовав наши сжатые CSV-файлы в Apache Parquet, Вы получите аналогичный объем данных в S3. Однако, поскольку Parquet является колоночно-ориентированным, Athena нужно читать только те столбцы, которые имеют отношение к выполняемому запросу – это сравнительно небольшое подмножество данных. В нашем случае Athena просканировала 0,22 ГБ данных, поэтому вместо оплаты за 27 ГБ отсканированных данных мы платим только за 0,22 ГБ.

 

Достаточно ли использовать только Parquet?

Использование Parquet - это хорошее и разумное начало, но оптимизация запросов  к данным Data Lake этим не ограничивается. Для получения быстрого и экономически эффективного ответа на запросы необходимо очищать, обогащать и преобразовывать данные, выполнять соединения с высокой степенью кардинальности и внедрять лучшие практики, которые выходят далеко за рамки формата Parquet.

 

FAQ

Вопрос: Что такое Apache Parquet?

Ответ: Apache Parquet — это открытый колоночный формат хранения данных, оптимизированный для аналитических запросов, сжатия и обработки больших объемов данных.

 

Вопрос: Чем Parquet отличается от CSV?

Ответ: CSV хранит данные построчно и не содержит строгой схемы. Parquet хранит данные по колонкам, поддерживает схему и метаданные, лучше сжимается и обычно быстрее работает в аналитических запросах.

 

Вопрос: Почему Parquet используют в Data Lake?

Ответ: Parquet хорошо подходит для Data Lake, потому что экономит место, ускоряет чтение нужных колонок, поддерживается многими инструментами обработки данных и удобен для больших аналитических наборов данных.

 

Вопрос: Какие инструменты поддерживают Parquet?

Ответ: Parquet поддерживают Apache Spark, Hadoop, Hive, Presto, Trino, Amazon Athena, многие облачные DWH, lakehouse-платформы и инструменты data engineering.

 

Вопрос: Когда Parquet не подходит?

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

 

  • Apache Spark: что это и где используют
  • ETL и ELT: 5 основных отличий
  • DWH: зачем компании хранилище данных
  • Что такое витрина данных и зачем она бизнесу
  • ClickHouse для новичков

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Что такое Apache Hudi?
Следующая статья →
CDC от источника до хранилища: как в банке Синара построили CDC с применением продуктов Arenadata (конференция Smartdata 2024)

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Торгово-производственному холдингу ТБМ, специализирующемуся на поставке комплектующих и фурнитуры для производства окон, дверей, стеклопакетов и мебели, был необходим аналитический инструмент для выявления узким мест и поиска зон роста бизнеса и, как результат, оптимизации процессов. Добиться этого можно было, только внедрив data-driven подход.

  • Компания ООО "Комус" - один из лидеров российского рынка оптовых продаж офисных товаров и техники. Компания поставляет широкий ассортимент продукции - от канцелярских принадлежностей до компьютерной техники и офисной мебели.

  • В 2003 году Мерсико и пятью микрокредитными агентствами Мерсико было принято историческое решение о консолидации активов по всей территории Кыргызстана в целях образования национального финансового института по развитию сообществ - Компаньона. В октябре 2004 года Компаньон был зарегистрирован Национальным банком Кыргызской Республики.

  • В «Пивоваренной компании «Балтика» аналитическая платформа Loginom применяется для моделирования процессов или построения отчетов, в том числе для формирования рекомендаций по корректировке плана промоактивностей.
     
  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.