Первый выпуск | 13 марта 2013 г.; 7 лет назад (13.03.2013) |
---|---|
Стабильный выпуск | 2.8.0 / 13 января 2020 г.; 9 месяцев назад (13.01.2020) |
Репозиторий | |
Написано на | Java (эталонная реализация) |
Операционная система | Кросс-платформенная |
Тип | Колонно-ориентированная СУБД |
Лицензия | Apache Лицензия 2.0 |
Веб-сайт | parquet.apache.org |
Apache Parquet - это бесплатный с открытым исходным кодом. формат хранения данных экосистемы Apache Hadoop. Он похож на другие форматы файлов столбчатого хранения, доступные в Hadoop, а именно RCFile и ORC. Он совместим с большинством платформ обработки данных в среде Hadoop. Он обеспечивает эффективные схемы сжатия данных и кодирования с повышенной производительностью для обработки больших объемов сложных данных.
Проект с открытым исходным кодом по созданию 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 битами на целое число. Для небольших целых чисел упаковка нескольких целых чисел в одно и то же пространство делает хранение более эффективным.
Для оптимизации хранения нескольких экземпляров одного и того же значения одно значение сохраняется один раз вместе с количеством вхождений.
Parquet реализует гибрид упаковки битов и RLE, в котором переключается кодирование, на основе которого достигается наилучший результат сжатия. Эта стратегия хорошо работает для определенных типов целочисленных данных и хорошо сочетается со словарным кодированием.
Apache Parquet можно сравнить с RCFile и Оптимизированный столбец строк ( ORC) форматов файлов - все три подпадают под категорию хранения столбчатых данных в экосистеме Hadoop. Все они имеют лучшее сжатие и кодирование с улучшенной производительностью чтения за счет более медленной записи. В дополнение к этим функциям Apache Parquet поддерживает ограниченную эволюцию схемы, т. Е. Схему можно изменять в соответствии с изменениями в данных. Он также предоставляет возможность добавлять новые столбцы и схемы слияния, которые не конфликтуют.