Cómo usar Postgres
(github.com/Olshansk)- Este repositorio, bajo la idea de “Keep It Simple Stupid, just use postgres”, reúne y muestra herramientas y casos de uso que aprovechan Postgres para distintos propósitos
- La lista se mantiene inspirada en el artículo Postgres for Everything de Amazing CTO y en el GitHub gist de @cpursley, porque siguen apareciendo nuevas herramientas y formas de usar Postgres
- El alcance es amplio: trabajos cron, Postgres embebido, colas de mensajes, analítica, GIS, registros de auditoría, control de acceso, búsqueda, series temporales, NoSQL, grafos, HTTP, API, CDC, caché, pruebas, migraciones, ajuste de rendimiento, monitoreo, extensiones, UI, CLI, visualización, gestión de paquetes, seguridad y hasta libros contables financieros
- Cada elemento organiza principalmente enlaces a extensiones de Postgres, bibliotecas, plataformas de API, artículos y herramientas, y algunos se conectan con tecnologías concretas como DuckDB, pgvector, PostGIS, PgBouncer, GraphQL y CDC
- Quienes quieran agregar ejemplos de fragmentos de código, herramientas o proyectos específicos deben abrir un PR con enlaces y usar el nuevo pull request template
Propósito del repositorio y forma de mantenimiento
- El objetivo del repositorio Postgres for Everything es mostrar cómo usar Postgres para múltiples propósitos
- El repositorio está inspirado en los siguientes recursos
- Se mantiene como un lugar para seguir nuevas herramientas y nuevas formas de uso que continúan apareciendo sobre Postgres
- Si hay otros ejemplos, se puede enviar un PR
- Para mostrar fragmentos de código, herramientas o proyectos, se debe abrir un PR con enlaces y usar el pull request template
Lecturas y artículos de referencia
- Se incluyen artículos sobre escalabilidad de Postgres, patrones, uso de funciones de base de datos, optimización y capacidades de PostgreSQL
Ejecución de tareas, embebido y colas
-
Cron Jobs
-
Postgres embebible
-
Colas de mensajes
- tembo-io/pgmq
- SKIP LOCKED
- sequinstream/sequin: herramienta de CDC que envía filas y cambios de Postgres a plataformas de streaming y colas como Kafka y SQS
- janbjorge/pgqueuer: biblioteca de cola de trabajos en Python que aprovecha PostgreSQL
- smartpricing/queen: cola de mensajes basada en PostgreSQL que ofrece particiones FIFO independientes, consumer groups al estilo Kafka y exactly-once delivery
Analítica, mapas, auditoría y permisos
-
Analítica
- paradedb/pg_analytics: ofrece analítica de data lake basada en DuckDB dentro de Postgres
- duckdb/pg_duckdb: extensión oficial de Postgres para DuckDB
- BemiHQ/BemiDB: réplica de lectura de Postgres optimizada para analítica
- Mooncake-Labs/pg_mooncake: extensión que añade almacenamiento columnar y ejecución vectorizada de DuckDB dentro de Postgres
- ClickHouse/pg_clickhouse: ejecuta consultas analíticas de ClickHouse desde PostgreSQL sin reescribir SQL
-
GIS y mapeo
-
Registros de auditoría
- supabase/supa_audit
- pgMemento/pgMemento
- pgaudit/pgaudit
- BemiHQ/Bemi: rastrea automáticamente cambios de datos en PostgreSQL
-
Control de acceso y autorización
Búsqueda, series temporales, orientado a columnas, NoSQL, grafos
-
Full Text Search
- Postgres Full Text Search: recopilación de enlaces relacionados
- pg_search: búsqueda de texto completo en Postgres que usa BM25
- plpgsql_bm25: búsqueda BM25 implementada en PL/pgSQL
-
Vector Search
- pgvector/pgvector
- tensorchord/VectorChord: extensión de búsqueda de similitud vectorial para PostgreSQL orientada a escalabilidad, alto rendimiento y eficiencia en disco
- timescale/pgai: extensión basada en pgvector que permite desarrollar RAG, búsqueda semántica y aplicaciones de IA dentro de Postgres
- timescale/pgvectorscale: implementación de índice vectorial DiskANN que complementa pgvector
-
Hybrid Search
- plpgsql_bm25rrf.sql: búsqueda híbrida que combina BM25 y pgvector con Reciprocal Rank Fusion
-
Time Series
- timescale/timescaledb: PostgreSQL++ para series temporales y eventos
- tembo-io/pg_timeseries: extensión open source de series temporales para PostgreSQL
-
Column Oriented
- paradedb/paradedb: Postgres para búsqueda y análisis
- pg_duckdb: almacenamiento columnar de DuckDB dentro de Postgres
-
NoSQL
- JSON Types: soporte nativo de JSON en PostgreSQL
- Using JSONB in PostgreSQL: cómo almacenar e indexar datos JSON en PostgreSQL
-
Graph Data
- Apache Age: base de datos de grafos para PostgreSQL que ofrece procesamiento y análisis de datos de grafos en bases de datos relacionales
Datos externos, HTTP, API, GraphQL, CDC
-
Foreign Data
-
HTTP
-
API Platforms
- PostgREST: genera APIs RESTful a partir de bases de datos PostgreSQL existentes
- Hasura GraphQL Engine: plataforma de API basada en metadatos
-
GraphQL and Alternative Query Languages
- PostGraphile: API GraphQL automática para PostgreSQL
- supabase/pg_graphql: extensión de PostgreSQL que permite consultas GraphQL con una sola función SQL
- dosco/graphjin: convierte automáticamente GraphQL en consultas SQL
- kaspermarstal/plprql: extensión de PostgreSQL para escribir funciones con PRQL
-
Events, Replication, CDC
- aws/pgactive: extensión de replicación de AWS para crear bases de datos active-active
- xataio/pgstream: CLI y librería de CDC que envía la replicación de Postgres a destinos de salida, incluidos los cambios DDL
- electric-sql/electric: API HTTP que sincroniza Shapes de bases de datos Postgres
- SQL Notify
- debezium/debezium
- 2ndQuadrant/pglogical
Caché, pruebas, aplicaciones, migraciones
-
Caching
- tidwall/pogocache: capa de caché enfocada en latencia y eficiencia de CPU
- readysettech/readyset
-
Unit Tests
-
HTML & Applications
-
Migrations
- purcell/postgresql-migrations
- Bytebase
- xataio/pgroll
- stripe/pg-schema-diff
- pgschema/pgschema: CLI que ofrece a Postgres un flujo de trabajo de migración de esquemas declarativo al estilo Terraform
Rendimiento, monitoreo, escalado, UI
-
Performance Tuning
- Supabase Index Advisor
- Dexter
- HypoPG
- pg_hint_plan
- PGHero
- pg_incremental: extensión para procesamiento por lotes incremental rápido y confiable
- pgassistant: asistente para desarrolladores que ayuda a entender y optimizar el rendimiento de PostgreSQL
-
Monitoring
-
Testing
- regresql: herramienta de pruebas de regresión de consultas SQL compatible con PostgreSQL
-
Scaling & Storage
- Snowflake-Labs/pg_lake: permite usar Postgres como un sistema lakehouse independiente y admite transacciones y consultas sobre tablas Iceberg en almacenamiento de objetos como S3
- pgdogdev/pgdog: pooler transaccional con sharding para PostgreSQL y administrador de replicación lógica
- pgbouncer/pgbouncer: pooler de conexiones ligero para PostgreSQL
- orioledb.com: extensión de PostgreSQL que combina las ventajas de los motores en disco y en memoria
-
User Interfaces & Dashboards
- Baserow
- NocoDB
- AppSmith
- mathesar-foundation/mathesar: interfaz tipo hoja de cálculo para que usuarios con distintos niveles técnicos puedan ver, editar, consultar y colaborar con datos de Postgres
Herramientas para desarrolladores, visualización, paquetes, seguridad, finanzas
-
CLIs
- dbcli/pgcli: cliente de Postgres con autocompletado y resaltado de sintaxis
- sosedoff/pgweb: explorador de bases de datos PostgreSQL basado en web y multiplataforma
- Maxteabag/sqlit: TUI para bases de datos SQL, incluido PostgreSQL
-
Visualization
- dr-jts/pg_svg: colección de funciones de PostgreSQL que convierten geometrías de PostGIS en documentos SVG con estilos aplicados
- Evidence
- Metabase
- Hopara: plataforma de visualización de datos en tiempo real para manufactura, IoT, ciencias de la vida y data lakes
- posit-dev/ggsql: extensión SQL declarativa de visualización de datos basada en Grammar of Graphics
-
Package Management
-
Language Servers
- supabase/postgres-language-server: colección de herramientas de lenguaje e implementación de LSP para Postgres
-
Data Privacy & Security
- neondatabase/postgresql_anonymizer: extensión de PostgreSQL que enmascara o reemplaza directamente PII o datos comercialmente sensibles
-
Financial Ledgers
- pgledger: libro mayor de contabilidad por partida doble implementado en PostgreSQL
-
Miscellaneous
- Very comprehensive list of Postgres tooling
- Unsupported PostgreSQL features in Aurora DSQL: lista de funciones de PostgreSQL no compatibles en AWS Aurora DSQL
Aún no hay comentarios.