Repolode
pg-sharding

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. 1

    Запустите простой пример с помощью Docker

    make run
  2. 2

    Соберите проект из исходного кода

    make build
  3. 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 обновляется ежедневно.

Похожие проекты