Введение

Если вы хотите сразу приступить к работе, ознакомьтесь с разделом Быстрый старт.

Обзор

PipelineDB создан для непрерывного выполнения SQL-запросов на потоковых данных. Результаты этих непрерывных запросов хранятся в обычных таблицах, которые можно запросить как любую другую таблицу или представление. Таким образом, непрерывные запросы можно рассматривать как очень производительные, инкрементально обновляемые материализованные представления. Как и любая система обработки данных, PipelineDB заточен для эффективной работы с определенными нагрузками и не подходит для других.

Ознакомьтесь с разделами Клиенты и Быстрый старт, где приведены примеры использования PipelineDB.

Что такое PipelineDB

PipelineDB создан для выполнения SQL-запросов, которые уменьшают мощность потоковых наборов данных. Например: обобщения и агрегации; выполнение вычислений в скользящих временных окнах; фильтрация текстового поиска; геопространственная фильтрация и т. д. Уменьшив мощность входных потоков, PipelineDB может значительно сократить объем информации, которую необходимо сохранять на диске, поскольку хранится только результат непрерывных запросов. Сырые данные отбрасываются после их прочтения соответствующими постоянными запросами.

Большую часть данных, которые проходят через PipelineDB, можно рассматривать как виртуальные данные. Эта идея виртуализации данных лежит в основе PipelineDB, и именно это позволяет ему обрабатывать большие объемы данных очень эффективно, используя относительно небольшое аппаратное обеспечение.

PipelineDB предназначен для исключения этапа ETL (извлечение, преобразование и загрузка данных) для большинства обычных конвейеров данных. Сырые данные можно напрямую передать в PipelineDB, где они непрерывно уточняются и очищаются в реальном времени с помощью непрерывных запросов, которые вы объявили. При этом периодическая обработка мелких данных перед загрузкой их уточненного вывода в базу данных становится излишней - при условии, что эта обработка, конечно, может быть определена с помощью SQL-запросов.

Для максимального удобства PipelineDB полностью совместим с PostgreSQL 9.5. Мы не изобретали собственный синтаксис, и у нас даже нет клиента PipelineDB, потому что он работает с любыми библиотеками, которые уже работают с PostgreSQL.

Чего PipelineDB не умеет

Учитывая, что непрерывные запросы должны быть известны заранее, PipelineDB не является своего рода хранилищем данных. В том время как вывод непрерывных запросов можно использовать произвольно, сырые данные, которые когда-либо проходили через PipelineDB так использовать нельзя, потому что точки данных удаляются после их прочтения. Кроме того, если требуются потоковые вычисления, которые нельзя написать на SQL, то, вероятно, PipelineDB не будет подходящим инструментом!