Repolode
pg-sharding

pg-sharding/spqr

Um roteador de consultas sem estado que divide o PostgreSQL horizontalmente, permitindo que um único banco de dados lógico abranja várias instâncias de backend.

Estrelas
1,481
Forks
100
Issues abertas
102
Último commit
há 2 horas

O que é?

O SPQR é um roteador de consultas sem estado que fica entre as aplicações e o PostgreSQL e distribui dados por vários shards de banco de dados. Ele é voltado a bancos de dados que cresceram até terabytes de dados e taxas muito altas de consultas, situações em que fica difícil gerenciar uma única instância do PostgreSQL.

O projeto é escrito em Go e funciona por meio de um processo de roteador iniciado com spqr-router e configurado por um arquivo YAML. O objetivo declarado é oferecer uma transição mais simples de um banco de dados monolítico para uma configuração com sharding do que muitas soluções existentes, que têm como foco principal cargas de trabalho analíticas e híbridas.

A documentação, a lista de recursos e um exemplo rápido baseado em Docker estão disponíveis no site do projeto. Os testes unitários, de regressão e ponta a ponta são executados pelo Docker Compose e por alvos do make.

Recursos principais

  • 01Encaminha consultas dos clientes por vários shards PostgreSQL usando um único endpoint.
  • 02É executado como um processo de roteador sem estado, configurado por um arquivo YAML.
  • 03Oferece um início rápido baseado em Docker com make run.
  • 04Inclui conjuntos de testes unitários, de regressão e ponta a ponta.

Casos de uso

  • Escalar um único banco de dados PostgreSQL que cresceu até terabytes e um alto volume de consultas.
  • Migrar uma implantação monolítica do PostgreSQL para uma arquitetura com sharding.
  • Executar cargas de trabalho no estilo OLTP que precisam de particionamento horizontal entre instâncias.

Início rápido

  1. 1

    Execute um exemplo rápido usando Docker

    make run
  2. 2

    Compile o projeto a partir do código-fonte

    make build
  3. 3

    Execute o router com seu arquivo de configuração

    spqr-router run --config path-to-router-config.yaml

Antes de usar

  • Não foi possível detectar a licença automaticamente, então é necessário conferi-la no repositório; o README informa que é a PostgreSQL Global Development Group License.
  • O desenvolvimento local requer a versão mais recente do Go.

Em coleções

Tópicos

Perguntas frequentes

O que é spqr?
Um roteador de consultas sem estado que divide o PostgreSQL horizontalmente, permitindo que um único banco de dados lógico abranja várias instâncias de backend. O SPQR é um roteador de consultas sem estado que fica entre as aplicações e o PostgreSQL e distribui dados por vários shards de banco de dados. Ele é voltado a bancos de dados que cresceram até terabytes de dados e taxas muito altas de consultas, situações em que fica difícil gerenciar uma única instância do PostgreSQL.
spqr é gratuito? Qual é a licença?
spqr é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
spqr ainda é mantido?
Manutenção ativa. O último commit de spqr foi em 22 de out. de 2026.
Para que posso usar spqr?
Escalar um único banco de dados PostgreSQL que cresceu até terabytes e um alto volume de consultas. Migrar uma implantação monolítica do PostgreSQL para uma arquitetura com sharding. Executar cargas de trabalho no estilo OLTP que precisam de particionamento horizontal entre instâncias.
Como instalar spqr?
Execute um exemplo rápido usando Docker: make run Compile o projeto a partir do código-fonte: make build Execute o router com seu arquivo de configuração: spqr-router run --config path-to-router-config.yaml
Onde consigo spqr?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pg-sharding/spqr

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados