Расширение PostgreSQL для высокопроизводительной аналитики временных рядов и событийных данных в реальном времени.
pg-sharding/spqr
Stateless-маршрутизатор запросов, который горизонтально шардирует PostgreSQL и позволяет одной логической базе данных охватывать несколько backend-инстансов.
- Звёзды
- 1,481
- Форки
- 100
- Открытые issues
- 102
- Последний коммит
- 3 часа назад
Что это?
SPQR — stateless-маршрутизатор запросов, который располагается между приложениями и PostgreSQL и распределяет данные по нескольким шардам базы данных. Он предназначен для баз данных объёмом в несколько терабайт и с очень высокой частотой запросов, которыми становится сложно управлять на одном экземпляре PostgreSQL.
Проект написан на Go. В его основе — процесс маршрутизатора, запускаемый командой spqr-router и настраиваемый через YAML-файл. Заявленная цель проекта — упростить переход от монолитной базы данных к шардированной конфигурации по сравнению со многими существующими решениями для шардирования, ориентированными главным образом на аналитические и гибридные нагрузки.
Документация, список возможностей и краткий пример с Docker доступны на сайте проекта. Модульные, регрессионные и сквозные тесты запускаются через Docker Compose и цели make.
Ключевые возможности
- 01Маршрутизирует запросы клиентов между несколькими шардами PostgreSQL через одну точку входа.
- 02Работает как stateless-процесс маршрутизатора, настроенный через YAML-файл.
- 03Предлагает быстрый старт с Docker с помощью make run.
- 04Включает наборы модульных, регрессионных и сквозных тестов.
Сценарии использования
- Масштабирование одной базы данных PostgreSQL, выросшей до нескольких терабайт и высокой нагрузки запросами.
- Переход от монолитного развёртывания PostgreSQL к шардированной архитектуре.
- Запуск OLTP-нагрузок, которым требуется горизонтальное распределение данных между экземплярами.
Быстрый старт
- 1
Запустите простой пример с помощью Docker
make run - 2
Соберите проект из исходного кода
make build - 3
Запустите router с файлом конфигурации
spqr-router run --config path-to-router-config.yaml
Что важно знать
- Не удалось автоматически определить лицензию, поэтому её нужно проверить в репозитории; в README указано, что это PostgreSQL Global Development Group License.
- Для локальной разработки требуется последняя версия Go.
Темы
Частые вопросы
- Что такое spqr?
- Stateless-маршрутизатор запросов, который горизонтально шардирует PostgreSQL и позволяет одной логической базе данных охватывать несколько backend-инстансов. SPQR — stateless-маршрутизатор запросов, который располагается между приложениями и PostgreSQL и распределяет данные по нескольким шардам базы данных. Он предназначен для баз данных объёмом в несколько терабайт и с очень высокой частотой запросов, которыми становится сложно управлять на одном экземпляре PostgreSQL.
- spqr можно использовать бесплатно? Какая у него лицензия?
- spqr распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- spqr всё ещё поддерживается?
- Активно поддерживается. Последний коммит в spqr — 22 окт. 2026 г..
- Для чего можно использовать spqr?
- Масштабирование одной базы данных PostgreSQL, выросшей до нескольких терабайт и высокой нагрузки запросами. Переход от монолитного развёртывания PostgreSQL к шардированной архитектуре. Запуск OLTP-нагрузок, которым требуется горизонтальное распределение данных между экземплярами.
- Как установить spqr?
- Запустите простой пример с помощью Docker: make run Соберите проект из исходного кода: make build Запустите router с файлом конфигурации: spqr-router run --config path-to-router-config.yaml
- Где скачать spqr?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pg-sharding/spqr
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Подборка программ, библиотек, инструментов, расширений и обучающих материалов для PostgreSQL, которую поддерживает сообщество.
MongoDB — доступный по исходному коду сервер документной базы данных с mongod и маршрутизатором шардирования mongos, написанный на C++.
Распределённая платформа планирования задач с веб-консолью, поддержкой Cron и фиксированных интервалов, шардированных broadcast-задач, failover и повторных попыток.
Платформа разработки на базе Postgres: управляемая база данных с аутентификацией, автоматически генерируемыми API, хранилищем и функциями realtime — альтернатива Firebase.
Встраиваемая SQL-база данных на Rust, совместимая с диалектом SQL, форматом файлов и C API SQLite, с экспериментальным интерфейсом Postgres.