Паркет Apache - Apache Parquet
Эта статья слишком полагается на Рекомендации к основные источники.Октябрь 2016) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
изначальный выпуск | 13 марта 2013 г. |
---|---|
Стабильный выпуск | 2.8.0 / 13 января 2020[1] |
Репозиторий | |
Написано в | Ява (эталонная реализация)[2] |
Операционная система | Кроссплатформенность |
Тип | Колонно-ориентированная СУБД |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | паркет |
Паркет Apache это бесплатно и с открытым исходным кодом столбчатый формат хранения данных Apache Hadoop экосистема. Он похож на другие форматы файлов столбчатого хранения, доступные в Hadoop а именно RCFile и ORC. Он совместим с большинством платформ обработки данных в Hadoop среда. Обеспечивает эффективную Сжатие данных и кодирование схемы с повышенной производительностью для массовой обработки сложных данных.
История
В Открытый исходный код проект по созданию Apache Parquet начался как совместная работа Twitter[3] и Cloudera.[4] Паркет был разработан как усовершенствование столбчатого формата хранения 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 ++, Ява, Python, PHP, так далее.[10]
По состоянию на август 2015 г.[11] Parquet поддерживает платформы обработки больших данных, включая Apache Hive, Apache Drill, Apache Impala, Apache Crunch, Апачская свинья, Каскадный, Престо и Apache Spark.
Сжатие и кодирование
В Parquet сжатие выполняется столбец за столбцом, что позволяет использовать разные схемы кодирования для текстовых и целочисленных данных. Эта стратегия также оставляет дверь открытой для новых и лучших схем кодирования, которые будут реализованы по мере их изобретения.
Кодировка словаря
В Parquet динамически включена автоматическая кодировка словаря для данных с маленький количество уникальных значений (т.е. менее 105), что обеспечивает значительное сжатие и увеличивает скорость обработки.[12]
Битовая упаковка
Хранение целых чисел обычно выполняется с выделенными 32 или 64 битами на целое число. Для небольших целых чисел упаковка нескольких целых чисел в одно и то же пространство делает хранение более эффективным.[12]
Кодирование длин серий (RLE)
Чтобы оптимизировать хранение нескольких вхождений одного и того же значения, одно значение сохраняется один раз вместе с количеством вхождений.[12]
Parquet реализует гибрид упаковки битов и RLE, в котором переключается кодирование, на основе которого достигается наилучший результат сжатия. Эта стратегия хорошо работает для определенных типов целочисленных данных и хорошо сочетается со словарным кодированием.[12]
Сравнение
Паркет Apache сопоставим с RCFile и Оптимизированный столбец строк (ORC) форматы файлов - все три подпадают под категорию хранения столбчатых данных в экосистеме Hadoop. Все они имеют лучшее сжатие и кодирование с улучшенной производительностью чтения за счет более медленной записи. В дополнение к этим функциям Apache Parquet поддерживает ограниченные эволюция схемы, то есть схема может быть изменена в соответствии с изменениями в данных. Он также предоставляет возможность добавлять новые столбцы и схемы слияния, которые не конфликтуют.
Смотрите также
- Свинья (инструмент для программирования)
- Apache Hive
- Apache Impala
- Apache Drill
- Апач Куду
- Apache Spark
- Apache Thrift
- Presto (механизм запросов SQL)
Рекомендации
- ^ "Релизы Github". Получено 26 марта 2020.
- ^ «Исходный код Parquet-MR». Получено 2 июля 2019.
- ^ "Дата выхода".
- ^ «Представляем Parquet: эффективное столбцовое хранилище для Apache Hadoop - блог разработчиков Cloudera». 2013-03-13. Архивировано из оригинал на 2013-05-04. Получено 2018-10-22.
- ^ http://www.infoworld.com/article/2915565/big-data/apache-parquet-paves-the-way-towards-better-hadoop-data-storage.html
- ^ https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces75
- ^ «Алгоритмы разметки и сборки из статьи Dremel, вдохновленной Google». github. Получено 13 ноября 2017.
- ^ «Документация по паркету Apache».
- ^ «Паркет Apache Cloudera».
- ^ "Apache Thrift".
- ^ «Поддерживаемые платформы».
- ^ а б c d «Представляем Parquet 1.0: колоночное хранилище для Hadoop | Блоги Twitter». blog.twitter.com. Получено 2016-09-14.