Паркет Апач
![]() | |
Первоначальный выпуск | 13 марта 2013 г |
---|---|
Стабильная версия | 2.9.0 / 6 октября 2021 г [1] |
Репозиторий | |
Написано в | Java (эталонная реализация) [2] |
Операционная система | Кросс-платформенный |
Тип | Столбцово-ориентированная СУБД |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | паркет |
Apache Parquet — это бесплатный столбцово-ориентированный формат хранения данных с открытым исходным кодом в экосистеме Apache Hadoop . Он похож на RCFile и ORC , другие форматы файлов столбчатого хранения в Hadoop , и совместим с большинством платформ обработки данных на базе Hadoop . Он обеспечивает эффективные данных схемы сжатия и кодирования с повышенной производительностью для обработки больших объемов сложных данных.
История
[ редактировать ]Проект с открытым исходным кодом по созданию Apache Parquet начался как совместная работа Twitter. [3] и Клаудера . [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 включают библиотеки, позволяющие читать и писать между двумя форматами. [ нужна ссылка ]
См. также
[ редактировать ]- Апач Стрела
- Апачская свинья
- Улей Апачей
- Апач Импала
- Апач Дрель
- Апач Куду
- Апач Спарк
- Апач бережливый
- Trino (система запросов SQL)
- Престо (система запросов SQL)
- SQLite Встроенная система баз данных
- Встроенная база данных OLAP DuckDB с поддержкой Parquet
Ссылки
[ редактировать ]- ^ «Apache Parquet – Релизы» . Apache.org . Архивировано из оригинала 22 февраля 2023 года . Проверено 22 февраля 2023 г.
- ^ «Исходный код Паркет-МР» . Гитхаб . Архивировано из оригинала 11 июня 2018 года . Проверено 2 июля 2019 г.
- ^ "Дата выпуска" . Архивировано из оригинала 20 октября 2016 г. Проверено 12 сентября 2016 г.
- ^ «Представляем Parquet: эффективное столбчатое хранилище для Apache Hadoop — инженерный блог Cloudera» . 13 марта 2013 г. Архивировано из оригинала 4 мая 2013 г. Проверено 22 октября 2018 г.
- ^ «Apache Parquet открывает путь к более эффективному хранению данных Hadoop» . 28 апреля 2015 года. Архивировано из оригинала 31 мая 2017 года . Проверено 21 мая 2017 г.
- ^ «Apache Software Foundation объявляет Apache™ Parquet™ проектом высшего уровня: блог Apache Software Foundation» . 27 апреля 2015 г. Архивировано из оригинала 20 августа 2017 г. Проверено 21 мая 2017 г.
- ^ «Алгоритмы чередования и сборки из бумаги Dremel, вдохновленной Google» . гитхаб . Архивировано из оригинала 26 октября 2020 года . Проверено 13 ноября 2017 г.
- ^ «Документация по паркету Apache» . Архивировано из оригинала 5 сентября 2016 г. Проверено 12 сентября 2016 г.
- ^ «Апач Паркет Клаудера» . Архивировано из оригинала 19 сентября 2016 г. Проверено 12 сентября 2016 г.
- ^ «Апач-Трифт» . Архивировано из оригинала 12 марта 2021 г. Проверено 14 сентября 2016 г.
- ^ «Поддерживаемые платформы» . Архивировано из оригинала 2 февраля 2015 г. Проверено 12 сентября 2016 г.
- ^ Перейти обратно: а б с д «Анонсируем Parquet 1.0: столбчатое хранилище для Hadoop | Блоги Twitter» . блог.twitter.com . Архивировано из оригинала 20 октября 2016 г. Проверено 14 сентября 2016 г.