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