Apache Pinot, OLAP хранилище за данни с отворен код

Апаче Пино

Apache Pinot е разпределено OLAP хранилище за данни в реално време

Apache Pinot е разпределено OLAP решение за съхранение в реално време, проектирано да предоставя мащабируеми анализи в реално време с ниска латентност.

Може да приема данни от пакетни източници на данни (като HDFS, S3, Azure Data Lake, Google Cloud Storage), както и от стрийминг източници (като Kafka). Pinot е проектиран да се мащабира хоризонтално, така че може да се мащабира до по-големи набори от данни и по-високи нива на заявки, ако е необходимо.

Относно Apache Pinot

Проектът Pinot първоначално е разработен от LinkedIn и през 2015 г. е прехвърлен на Apache Foundation за по-нататъшно съвместно развитие. Съхранението е проектирано да работи в среда, където постоянно се добавят нови данни, и е проектирано да осигурява минимална и предвидима латентност, което позволява използването му за обработка на заявки в реално време.

Подобно на повечето други хранилища за данни и OLAP решения за съхранение на данни, Pinot поддържа SQL-подобен език за заявки , който поддържа селекция, агрегиране, филтриране, групиране, сортиране и други заявки за данни.

Apache Pinot осигурява хоризонтална мащабируемост и средство за постигане на отказоустойчивост и устойчивост на софтуерни и хардуерни повреди. Процесите на репликация и архивиране са интегрирани директно в цикъла на обработка на данни, добавени към хранилището. От една страна, този подход значително опростява архитектурата, но от друга страна, въвежда забавяне между добавянето на данни и тяхната наличност за заявки.

Данните се съхраняват в таблици в колонно-ориентирана база данни, като се поддържат различни схеми за компресия и възможност за поставяне на множество стойности в едно поле. Pinot предоставя система за индексиране с възможност за добавяне, която може да използва различни технологии за индексиране (подреден индекс, растерен индекс, инвертиран индекс, StarTree индекс, Bloom филтър, диапазонен индекс, индекс за текстово търсене (Lucence/FST), JSON индекс, геопространствен индекс).

От характеристиките, които се отличават от Apache Pinot:

  • Ориентиран към колона– Ориентирана към колони база данни с различни схеми за компресиране, като дължина на цикъла и фиксирана дължина на битовете.
  • Плъгируемо индексиране: Технологии за добавяне на индексиране, сортиран индекс, растерен индекс, обърнат индекс.
  • Оптимизиране на заявки- Възможност за оптимизиране на плана за заявка/изпълнение въз основа на метаданни за заявка и сегмент.
  • Поглъщане на потоци и партиди: Поглъщане в почти реално време на Hadoop потоци и групово поглъщане.
  • консултация: Базирана на SQL машина за изпълнение на заявки.
  • Upsert по време на поглъщане в реално време: актуализиране на данни в мащаб с последователност
  • Полета с множество стойности: поддръжка за полета с множество стойности, което ви позволява да правите заявки за полета като стойности, разделени със запетая.
  • Облачен роден на Kubernetes: Helm chart осигурява хоризонтално мащабируемо, устойчиво на грешки клъстерно внедряване, което е лесно за управление с Kubernetes.

Нова версия на Apache Pinot

Заслужава да се отбележи, че наскоро беше пусната версия 1.0 на Apache Pinot , която обобщи много работа за стабилизиране на кодовата база и отчитане на желанията на общността (разгледани са над 300 коментара).

Освен това, заслужава да се отбележи, че новият Multi-Stage Query Engine е достигнал пълния си потенциал , позволявайки поддръжка за сливания на таблици (JOIN). Първоначално използваният енджин се представяше отлично с прости операции за филтриране и агрегиране, но за да се осигури предвидимо време за изпълнение на заявките, той не поддържаше операции за свързване на таблици.

Новият енджин включва междинни етапи за обработка на сложни заявки, а SQL семантиката му е близка до ANSI SQL . Освен това, новата версия предлага вградена поддръжка за обработка на JSON данни, осигурява поддръжка за стойността "NULL", интегрира се с Apache Spark 3.x и подобрява имплементацията на таблици в режим Upsert (добавяйки компресия на сегменти и осигурявайки поддръжка за операции по изтриване).

Накрая, ако се интересувате да научите повече , трябва да знаете, че кодът на проекта е написан на Java и се разпространява под лиценза Apache. Можете да намерите подробности за новата версия на следния линк.


Добавяне като предпочитан източник в Google