stringtranslate.com

Паркет Апач

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

История

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

Функции

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

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

По состоянию на август 2015 года [11] Parquet поддерживает платформы обработки больших данных, включая Apache Hive , Apache Drill , Apache Impala , Apache Crunch, Apache Pig , Cascading , Presto и Apache Spark . Это один из внешних форматов данных, используемых библиотекой манипуляции и анализа данных Pandas Python .

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

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

Кодировка словаря

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

Упаковка бит

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

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

Чтобы оптимизировать хранение нескольких вхождений одного и того же значения, одно значение сохраняется один раз вместе с количеством вхождений. [12]

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

Сравнение

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

Apache Arrow разработан как дополнение к дисковым столбчатым форматам, таким как Parquet и ORC. Проекты Arrow и Parquet включают библиотеки, позволяющие читать и писать между двумя форматами. [ нужна цитата ]

Смотрите также

Рекомендации

  1. ^ "Apache Parquet - Релизы" . Apache.org . Проверено 22 февраля 2023 г.
  2. ^ "Исходный код Паркет-МР" . Гитхаб . Проверено 2 июля 2019 г.
  3. ^ «Дата выпуска».
  4. ^ «Представляем Parquet: эффективное столбчатое хранилище для Apache Hadoop - инженерный блог Cloudera» . 13 марта 2013 г. Архивировано из оригинала 4 мая 2013 г. Проверено 22 октября 2018 г.
  5. ^ «Apache Parquet открывает путь к улучшению хранения данных Hadoop» . 28 апреля 2015 г.
  6. ^ «Фонд программного обеспечения Apache объявляет Apache™ Parquet™ проектом высшего уровня: Блог Apache Software Foundation» . 27 апреля 2015 г.
  7. ^ «Алгоритмы чередования и сборки из статьи Dremel, вдохновленной Google» . гитхаб . Проверено 13 ноября 2017 г.
  8. ^ «Документация по паркету Apache» . Архивировано из оригинала 5 сентября 2016 г. Проверено 12 сентября 2016 г.
  9. ^ "Apache Parquet Cloudera" .
  10. ^ "Апач-Трифт" .
  11. ^ «Поддерживаемые платформы».
  12. ^ abcd «Анонсируем Parquet 1.0: столбчатое хранилище для Hadoop | Блоги Twitter» . блог.twitter.com . Проверено 14 сентября 2016 г.

Внешние ссылки