Repolode
pg-sharding

pg-sharding/spqr

Un router de consultas sin estado que divide PostgreSQL horizontalmente y permite que una base de datos lógica abarque varias instancias de backend.

Estrellas
1,481
Forks
100
Issues abiertos
102
Último commit
hace 2 horas

¿Qué es?

SPQR es un router de consultas sin estado que se sitúa entre las aplicaciones y PostgreSQL, y distribuye los datos entre varios shards de base de datos. Está pensado para bases de datos únicas que han crecido hasta alcanzar terabytes de datos y tasas de consultas muy altas, cuando una sola instancia de PostgreSQL se vuelve difícil de administrar.

El proyecto está escrito en Go y se basa en un proceso de router que se inicia con spqr-router y se configura mediante un archivo YAML. Su objetivo declarado es ofrecer una transición más sencilla de una base de datos monolítica a una arquitectura sharded que muchas soluciones de sharding existentes, que se centran principalmente en cargas de trabajo analíticas e híbridas.

En el sitio del proyecto están disponibles la documentación, la lista de funciones y un ejemplo rápido basado en Docker. Las pruebas unitarias, de regresión y de extremo a extremo se ejecutan mediante Docker Compose y objetivos de make.

Funciones clave

  • 01Enruta las consultas de los clientes a través de varios shards de PostgreSQL desde un único endpoint.
  • 02Se ejecuta como un proceso de router sin estado que se configura mediante un archivo YAML.
  • 03Ofrece un inicio rápido basado en Docker con make run.
  • 04Incluye suites de pruebas unitarias, de regresión y de extremo a extremo.

Casos de uso

  • Escalar una única base de datos PostgreSQL que ha crecido hasta alcanzar terabytes de datos y un alto volumen de consultas.
  • Migrar una implementación monolítica de PostgreSQL hacia una arquitectura sharded.
  • Ejecutar cargas de trabajo de tipo OLTP que requieren particionamiento horizontal entre instancias.

Inicio rápido

  1. 1

    Ejecuta un ejemplo rápido con Docker

    make run
  2. 2

    Compila el proyecto desde el código fuente

    make build
  3. 3

    Ejecuta el router con tu archivo de configuración

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

Antes de usarlo

  • No se pudo detectar la licencia automáticamente, así que debes comprobarla en el repositorio; el README indica que es la PostgreSQL Global Development Group License.
  • El desarrollo local requiere la versión más reciente de Go.

En colecciones

Temas

Preguntas frecuentes

¿Qué es spqr?
Un router de consultas sin estado que divide PostgreSQL horizontalmente y permite que una base de datos lógica abarque varias instancias de backend. SPQR es un router de consultas sin estado que se sitúa entre las aplicaciones y PostgreSQL, y distribuye los datos entre varios shards de base de datos. Está pensado para bases de datos únicas que han crecido hasta alcanzar terabytes de datos y tasas de consultas muy altas, cuando una sola instancia de PostgreSQL se vuelve difícil de administrar.
¿spqr es gratuito? ¿Qué licencia tiene?
spqr es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿spqr sigue mantenido?
Mantenimiento activo. El último commit de spqr fue el 22 oct 2026.
¿Para qué puedo usar spqr?
Escalar una única base de datos PostgreSQL que ha crecido hasta alcanzar terabytes de datos y un alto volumen de consultas. Migrar una implementación monolítica de PostgreSQL hacia una arquitectura sharded. Ejecutar cargas de trabajo de tipo OLTP que requieren particionamiento horizontal entre instancias.
¿Cómo se instala spqr?
Ejecuta un ejemplo rápido con Docker: make run Compila el proyecto desde el código fuente: make build Ejecuta el router con tu archivo de configuración: spqr-router run --config path-to-router-config.yaml
¿Dónde consigo spqr?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pg-sharding/spqr

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados