Мы рады сообщить, что Apache Pinot 0.4.0 был выпущен в июне 2020 года. Apache Pinot - это распределенное хранилище данных в реальном времени, предназначенное для ответов на запросы OLAP с низкой задержкой. В этом выпуске мы представляем множество новых функций, рефакторинг и исправления ошибок, чтобы сделать Pinot более производительным, расширяемым и надежным. У нас также есть совершенно новый веб-сайт и документация для наших пользователей и разработчиков. В этом посте мы расскажем о некоторых функциях этого выпуска.

Преобразование столбца во время приема

Когда данные были загружены в Pinot, все столбцы в источнике были загружены как есть. Однако много раз нам приходилось выполнять некоторые преобразования в некоторых столбцах, и единственный подход заключался в том, чтобы выполнить преобразование в источнике до приема. В версии 0.4.0 мы добавили поддержку функций преобразования с помощью Apache Groovy, что позволило пользователям определять производные поля непосредственно в схеме. Например, если у нас есть столбцы firstName и lastName в исходных данных, мы можем определить новое поле fullName в схеме со следующим определением transformFunction: Groovy ({firstName + '' + lastName}, firstName, lastName), и у нас будет производное поле fullName в хранилище. Раньше нам приходилось добавлять этот дополнительный уровень конкатенации в исходные данные, чтобы Пино мог напрямую принимать их.

Эффективная обработка запросов диапазона с использованием индексов

У Пино было три типа индексации - инвертированный индекс, отсортированный индекс и индекс в виде звездообразного дерева, все из которых подходят для фильтров точного соответствия, но не обязательно для фильтров диапазона. Для запросов диапазона мы можем использовать двоичный поиск при сортировке столбца, но обычно сортируются не все столбцы. Инвертированный индекс может помочь уменьшить пространство поиска за счет фильтрации по индексу, но при высокой мощности столбца производительность будет такой же низкой, как при полном сканировании, особенно при наличии миллиардов записей. В версии 0.4.0 мы представили концепцию индекса диапазона, которая позволила нам использовать лучшее из обоих миров - индексацию диапазона сканирования (ограничение накладных расходов на индекс) и инвертированный индекс (быстрая фильтрация). Это также позволяет нам найти золотую середину между одной крайностью (сканирование) и другой крайностью (перевернутый индекс), используя соответствующее значение для количества диапазонов или количества документов на диапазон. Это может особенно повысить производительность запросов для запросов диапазона по столбцам времени и метрик.

Новый плагин файловой системы S3

В версии 0.3.0 мы ввели понятие плагина, позволяя добавлять новые расширения в режиме plug-and-play. Вскоре мы извлекли выгоду из этой перестройки. В версии 0.4.0 была внесена интеграция с файловой системой Amazon S3, которая добавила еще одно решение для файловой системы в дополнение к HDFS (распределенная файловая система Hadoop), ADLS (хранилище озера данных Azure) и GCS (облачное хранилище Google).

Функция агрегирования различного числа на основе тета-скетча

В версии 0.4.0 мы реализовали начальную версию функции агрегирования отдельных подсчетов на основе тета-скетча, используя библиотеку Apache DataSketches, которая обеспечивает быстрое приближение для анализа больших данных. При этом мы также поддерживаем несколько аргументов в функциях агрегирования. Следите за обновлениями в следующем выпуске.

Помимо новых функций, выделенных выше, мы также добавили множество оптимизаций для существующих функций, включая текстовый поиск, индексирование в виде дерева в виде звездочки, интеграцию с облаком и т. Д. Не стесняйтесь ознакомится с примечанием к выпуску для получения более подробной информации.

Страница загрузки: https://pinot.apache.org/download
Начало работы: https://docs.pinot.apache.org/getting-started

Специальная благодарность

Мы хотели бы воспользоваться моментом, чтобы поблагодарить наших наставников Felix Cheung, Jim Jagielski, Kishore Gopalakrishna и Olivier Lamy за их наставничество и поддержку инкубации Apache Pinot, а также огромные благодарности нашим приверженцам и авторов за их вклад в этот выпуск: Акшай Рай, Александр Пучер, Бо Чжан, Чарли Саммерс, Четан Великобритания, Дэн Хилл, Даниэль Лавуа, Илон Азулай, Хайбо Ван , Харли Джексон , Джеймс Шао , Цзялян Ли , Джихао Чжан , Картик Кхаре , Кенни Бастани , Конрад Малик , Маянк Шривастава , Неха Павар , Рави Сингал, Сынхён Ли, Сиддхарт Теотия, Суббу Субраманиам, Тамас Немет, Тинг Чен, Винсент Чен, Сян Фу, Сяохуэй Сун, Сяотян (Джеки) Цзян.