Apache Parquet

редактировать
Apache Parquet
Apache Паркет
Первый выпуск13 марта 2013 г.; 7 лет назад (13.03.2013)
Стабильный выпуск 2.8.0 / 13 января 2020 г.; 9 месяцев назад (13.01.2020)
Репозиторий Измените это в Wikidata
Написано наJava (эталонная реализация)
Операционная система Кросс-платформенная
Тип Колонно-ориентированная СУБД
Лицензия Apache Лицензия 2.0
Веб-сайтparquet.apache.org

Apache Parquet - это бесплатный с открытым исходным кодом. формат хранения данных экосистемы Apache Hadoop. Он похож на другие форматы файлов столбчатого хранения, доступные в Hadoop, а именно RCFile и ORC. Он совместим с большинством платформ обработки данных в среде Hadoop. Он обеспечивает эффективные схемы сжатия данных и кодирования с повышенной производительностью для обработки больших объемов сложных данных.

Содержание
  • 1 История
  • 2 Характеристики
  • 3 Сжатие и кодирование
    • 3.1 Кодирование словаря
    • 3.2 Битовая упаковка
    • 3.3 Кодирование длин серий (RLE)
  • 4 Сравнение
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
История

Проект с открытым исходным кодом по созданию Apache Parquet начался как совместная работа Twitter и Cloudera. Parquet был разработан как усовершенствование столбчатого формата хранения Trevni, созданного создателем Hadoop Дугом Каттингом. Первая версия - Apache Parquet 1.0 - была выпущена в июле 2013 года. С 27 апреля 2015 года Apache Parquet является проектом верхнего уровня, спонсируемым Apache Software Foundation (ASF).

Функции

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

  • Сжатие по столбцам эффективно и экономит пространство для хранения
  • Методы сжатия, специфичные для типа, могут применяться как значения столбцов, как правило, имеют один и тот же тип
  • Запросы, которые извлекают определенные значения столбца, не нуждаются в чтении данных всей строки, что повышает производительность
  • К разным столбцам можно применять разные методы кодирования

Apache Parquet реализован с использованием инфраструктуры Apache Thrift, которая увеличивает его гибкость; он может работать с рядом языков программирования, таких как C ++, Java, Python, PHP и т. д.

По состоянию на август 2015 года Parquet поддерживает платформы обработки больших данных, включая Apache Hive, Apache Drill, Apache Impala, Apache Pig., Каскад, Presto и Apache Spark.

Сжатие и кодирование

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

Кодирование словаря

В Parquet динамически активировано автоматическое кодирование словаря для данных с небольшим количеством уникальных значений (например, менее 10), что обеспечивает значительное сжатие и увеличивает скорость обработки.

Битовая упаковка

Хранение целых чисел обычно выполняется с выделенными 32 или 64 битами на целое число. Для небольших целых чисел упаковка нескольких целых чисел в одно и то же пространство делает хранение более эффективным.

Кодирование длин серий (RLE)

Для оптимизации хранения нескольких экземпляров одного и того же значения одно значение сохраняется один раз вместе с количеством вхождений.

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

Сравнение

Apache Parquet можно сравнить с RCFile и Оптимизированный столбец строк ( ORC) форматов файлов - все три подпадают под категорию хранения столбчатых данных в экосистеме Hadoop. Все они имеют лучшее сжатие и кодирование с улучшенной производительностью чтения за счет более медленной записи. В дополнение к этим функциям Apache Parquet поддерживает ограниченную эволюцию схемы, т. Е. Схему можно изменять в соответствии с изменениями в данных. Он также предоставляет возможность добавлять новые столбцы и схемы слияния, которые не конфликтуют.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-11 20:10:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте