Доработка расширения PipelineDB от «Тантор Лабс»
Компания «Тантор Лабс» (входит в «Группу Астра») сообщила о масштабной доработке расширения PipelineDB – высокопроизводительного инструмента для агрегации временных рядов, совместимого с PostgreSQL и СУБД Tantor. Решение на базе открытого исходного кода для непрерывного выполнения SQL-запросов на потоках данных с инкрементальным сохранением результатов в таблицах теперь поддерживает новые версии СУБД и ряд актуальных функций.
PipelineDB – это расширение PostgreSQL, которое позволяет быстро и гибко, в реальном времени, обрабатывать потоковые данные, а также объединять их с историческими данными для сравнения и анализа. С его помощью, используя только SQL-запросы, можно передавать данные непосредственно в базы данных и непрерывно трансформировать их. PipelineDB хранит только выходные данные непрерывных запросов, которые постепенно обновляются по мере приема данных. При этом размер базы данных не зависит от объема данных, обрабатываемых с течением времени.
Исторически решение разрабатывалось как open source-проект PipelineDB Core – форк PostgreSQL. В 2018 г. проект трансформировался в расширение PostgreSQL, что упростило его использование, однако в 2019 г. он был закрыт. Последней версией Postgres, с которой работал PipelineDB, была 11-я.
Специалисты «Тантор Лабс», отмечают в компании, приложили большие усилия к возрождению проекта. Они портировали PipelineDB на новые версии PostgreSQL (13, 15 и 16-ю), добавили расширению новые функции и исправили множество ошибок.
Сегодня в состав базовой функциональности Tantor PipelineDB входит непрерывная агрегация и фильтрация потоковых данных, запросы с заданными временными интервалами, объединение потоков с таблицами и поддержка вероятностных структур данных для приближенных вычислений на потоках (фильтры Блума, count-min sketch, Filtered-Space-Saving top-k, HyperLogLog, and t-digest для приблизительных вычислений на потоках большого объема).
Кроме того, решение приобрело возможность партицирования (секционирования) – разбиения одной большой таблицы (материализованных представлений на диске) на несколько физических файлов или таблиц так, что логически для пользователя все партиции выглядят единым целым. Это позволяет сократить расходы на обновление индексов, выборки данных при чтении, удаление или архивирование старых данных. Наибольшую востребованность механизм партицирования имеет в высоконагруженных системах.
Сегодня Tantor PipelineDB поставляется как бесплатное open source-расширение (доступно в репозитории Tantor) либо как отдельный самостоятельный продукт с функциональными доработками.