Façons d’utiliser Postgres
(github.com/Olshansk)- Ce dépôt rassemble des outils et des exemples montrant comment utiliser Postgres pour divers usages, selon l’approche « Keep It Simple Stupid, just use postgres »
- La liste s’inspire de l’article Postgres for Everything d’Amazing CTO et d’un gist GitHub de @cpursley, et elle est maintenue parce que de nouveaux outils et usages continuent d’apparaître autour de Postgres
- Son périmètre est large : tâches cron, Postgres embarqué, files de messages, analytique, GIS, journaux d’audit, contrôle d’accès, recherche, séries temporelles, NoSQL, graphes, HTTP, API, CDC, cache, tests, migrations, optimisation des performances, monitoring, extensions, UI, CLI, visualisation, gestion de paquets, sécurité, jusqu’aux grands livres financiers
- Chaque entrée organise surtout des liens vers des extensions Postgres, bibliothèques, plateformes d’API, articles et outils ; certaines sont associées à des technologies concrètes comme DuckDB, pgvector, PostGIS, PgBouncer, GraphQL ou CDC
- Les utilisateurs qui souhaitent ajouter un extrait de code, un outil ou un projet en exemple doivent ouvrir une PR avec un lien et utiliser le nouveau pull request template
Objectif du dépôt et mode de maintenance
- Le dépôt Postgres for Everything a pour objectif de montrer comment utiliser Postgres pour de nombreux usages
- Le dépôt s’inspire des ressources suivantes
- Comme de nouveaux outils apparaissent sur Postgres et que de nouveaux usages continuent d’émerger, il est maintenu comme un endroit où les suivre
- Si vous avez d’autres exemples, vous pouvez soumettre une PR
- Pour présenter un extrait de code, un outil ou un projet, il faut ouvrir une PR avec un lien et utiliser le pull request template
Lectures et retours d’expérience
- Le dépôt inclut des articles sur l’extensibilité de Postgres, les patterns, l’utilisation des fonctions de base de données, ainsi que l’optimisation et les fonctionnalités de PostgreSQL
Exécution de tâches, embarqué et files d’attente
-
Cron Jobs
-
Embeddable Postgres
-
Message Queues
- tembo-io/pgmq
- SKIP LOCKED
- sequinstream/sequin : outil CDC qui envoie les lignes et changements Postgres vers des plateformes de streaming et des files comme Kafka ou SQS
- janbjorge/pgqueuer : bibliothèque Python de file de tâches utilisant PostgreSQL
- smartpricing/queen : file de messages basée sur PostgreSQL, avec partitions FIFO indépendantes, consumer groups façon Kafka et livraison exactly-once
Analytique, cartographie, audit et autorisations
-
Analytics
- paradedb/pg_analytics : fournit dans Postgres de l’analytique de data lake basée sur DuckDB
- duckdb/pg_duckdb : extension Postgres officielle pour DuckDB
- BemiHQ/BemiDB : réplique en lecture Postgres optimisée pour l’analytique
- Mooncake-Labs/pg_mooncake : extension ajoutant du stockage colonnaire et l’exécution vectorisée DuckDB dans Postgres
- ClickHouse/pg_clickhouse : exécute des requêtes analytiques ClickHouse depuis PostgreSQL sans réécriture SQL
-
GIS & Mapping
-
Audit Logs
- supabase/supa_audit
- pgMemento/pgMemento
- pgaudit/pgaudit
- BemiHQ/Bemi : suivi automatique des changements de données PostgreSQL
-
Access Control & Authorization
Recherche, séries temporelles, stockage en colonnes, NoSQL, graphe
-
Full Text Search
- Postgres Full Text Search : recueil de liens connexes
- pg_search : recherche plein texte Postgres utilisant BM25
- plpgsql_bm25 : recherche BM25 implémentée en PL/pgSQL
-
Vector Search
- pgvector/pgvector
- tensorchord/VectorChord : extension PostgreSQL de recherche de similarité vectorielle visant l’évolutivité, les hautes performances et l’efficacité disque
- timescale/pgai : extension basée sur pgvector qui prend en charge le développement d’applications RAG, de recherche sémantique et d’IA dans Postgres
- timescale/pgvectorscale : implémentation d’un index vectoriel DiskANN complétant pgvector
-
Hybrid Search
- plpgsql_bm25rrf.sql : recherche hybride combinant BM25 et pgvector via Reciprocal Rank Fusion
-
Time Series
- timescale/timescaledb : PostgreSQL++ pour les séries temporelles et les événements
- tembo-io/pg_timeseries : extension open source de séries temporelles pour PostgreSQL
-
Column Oriented
- paradedb/paradedb : Postgres pour la recherche et l’analytique
- pg_duckdb : stockage en colonnes DuckDB dans Postgres
-
NoSQL
- JSON Types : prise en charge native de JSON dans PostgreSQL
- Using JSONB in PostgreSQL : comment stocker et indexer des données JSON dans PostgreSQL
-
Graph Data
- Apache Age : base de données graphe pour PostgreSQL, apportant des capacités de traitement et d’analyse de données graphe aux bases de données relationnelles
Données externes, HTTP, API, GraphQL, CDC
-
Foreign Data
-
HTTP
-
API Platforms
- PostgREST : création d’API RESTful à partir de bases de données PostgreSQL existantes
- Hasura GraphQL Engine : plateforme d’API pilotée par les métadonnées
-
GraphQL and Alternative Query Languages
- PostGraphile : API GraphQL automatique pour PostgreSQL
- supabase/pg_graphql : extension PostgreSQL permettant d’effectuer des requêtes GraphQL via une seule fonction SQL
- dosco/graphjin : conversion automatique de GraphQL en requêtes SQL
- kaspermarstal/plprql : extension PostgreSQL pour écrire des fonctions en PRQL
-
Events, Replication, CDC
- aws/pgactive : extension de réplication d’AWS pour créer des bases de données active-active
- xataio/pgstream : CLI et bibliothèque de CDC qui envoient la réplication Postgres, y compris les changements DDL, vers des destinations de sortie
- electric-sql/electric : API HTTP pour synchroniser les Shapes d’une base de données Postgres
- SQL Notify
- debezium/debezium
- 2ndQuadrant/pglogical
Cache, tests, applications, migrations
-
Caching
- tidwall/pogocache : couche de cache axée sur la latence et l’efficacité CPU
- readysettech/readyset
-
Unit Tests
-
HTML & Applications
-
Migrations
- purcell/postgresql-migrations
- Bytebase
- xataio/pgroll
- stripe/pg-schema-diff
- pgschema/pgschema : CLI apportant à Postgres un workflow de migration de schéma déclaratif dans le style de Terraform
Performance, monitoring, montée en charge, UI
-
Performance Tuning
- Supabase Index Advisor
- Dexter
- HypoPG
- pg_hint_plan
- PGHero
- pg_incremental: extension pour un traitement batch incrémental rapide et fiable
- pgassistant: assistant pour développeurs aidant à comprendre et optimiser les performances de PostgreSQL
-
Monitoring
-
Testing
- regresql: outil de tests de régression pour requêtes SQL prenant en charge PostgreSQL
-
Scaling & Storage
- Snowflake-Labs/pg_lake: permet d’utiliser Postgres comme système lakehouse autonome et prend en charge les transactions et les requêtes sur des tables Iceberg stockées dans un stockage objet comme S3
- pgdogdev/pgdog: pooler transactionnel et gestionnaire de réplication logique permettant le sharding de PostgreSQL
- pgbouncer/pgbouncer: pooler de connexions léger pour PostgreSQL
- orioledb.com: extension PostgreSQL combinant les avantages des moteurs sur disque et en mémoire
-
User Interfaces & Dashboards
- Baserow
- NocoDB
- AppSmith
- mathesar-foundation/mathesar: interface de type tableur permettant à des utilisateurs de niveaux techniques variés de consulter, modifier, interroger et partager des données Postgres
Outils pour développeurs, visualisation, packages, sécurité, finance
-
CLIs
- dbcli/pgcli: client Postgres avec autocomplétion et coloration syntaxique
- sosedoff/pgweb: explorateur de bases de données PostgreSQL web et multiplateforme
- Maxteabag/sqlit: TUI pour bases de données SQL, dont PostgreSQL
-
Visualization
- dr-jts/pg_svg: ensemble de fonctions PostgreSQL convertissant des geometry PostGIS en documents SVG stylisés
- Evidence
- Metabase
- Hopara: plateforme de visualisation de données en temps réel pour la fabrication, l’IoT, les sciences de la vie et les data lakes
- posit-dev/ggsql: extension SQL déclarative de visualisation de données basée sur la Grammar of Graphics
-
Package Management
-
Language Servers
- supabase/postgres-language-server: ensemble d’outils de langage et d’implémentations LSP pour Postgres
-
Data Privacy & Security
- neondatabase/postgresql_anonymizer: extension PostgreSQL pour masquer ou remplacer directement les PII ou les données commercialement sensibles
-
Financial Ledgers
- pgledger: grand livre en partie double implémenté avec PostgreSQL
-
Miscellaneous
- Very comprehensive list of Postgres tooling
- Unsupported PostgreSQL features in Aurora DSQL: liste des fonctionnalités PostgreSQL non prises en charge par AWS Aurora DSQL
Aucun commentaire pour le moment.