Postgres nutzen – Anwendungsfälle und Werkzeuge
(github.com/Olshansk)- Dieses Repository sammelt und zeigt unter dem Motto „Keep It Simple Stupid, just use postgres“ Tools und Beispiele dafür, wie Postgres für verschiedenste Zwecke genutzt werden kann
- Die Liste wurde von Amazing CTOs Artikel Postgres for Everything und dem GitHub-Gist von @cpursley inspiriert und wird gepflegt, weil auf Postgres laufend neue Tools und Nutzungsmuster entstehen
- Der Umfang ist breit: Cron-Jobs, eingebettetes Postgres, Message Queues, Analytics, GIS, Audit-Logs, Zugriffskontrolle, Suche, Zeitreihen, NoSQL, Graphen, HTTP, API, CDC, Caching, Tests, Migration, Performance-Tuning, Monitoring, Erweiterungen, UI, CLI, Visualisierung, Paketverwaltung, Sicherheit und Finanz-Ledger
- Jeder Eintrag bündelt vor allem Links zu Postgres-Erweiterungen, Libraries, API-Plattformen, Artikeln und Tools; einige sind mit konkreten Technologien wie DuckDB, pgvector, PostGIS, PgBouncer, GraphQL und CDC verknüpft
- Wer bestimmte Code-Snippets, Tools oder Projekte als Beispiele ergänzen möchte, soll mit Link einen PR öffnen und das neue pull request template verwenden
Zweck und Pflege des Repositorys
- Ziel des Repositorys Postgres for Everything ist es zu zeigen, wie Postgres für viele unterschiedliche Zwecke eingesetzt werden kann
- Das Repository wurde von folgenden Quellen inspiriert
- Da auf Postgres immer wieder neue Tools entstehen oder neue Nutzungsmuster aufkommen, wird es als Ort gepflegt, um diese zu verfolgen
- Wer weitere Beispiele hat, kann einen PR einreichen
- Um Code-Snippets, Tools oder Projekte vorzustellen, soll man mit Link einen PR öffnen und das pull request template verwenden
Lesestoff und Praxisbeispiele
- Enthalten sind Artikel zu Postgres-Erweiterbarkeit, Patterns, der Nutzung von Datenbankfunktionen sowie PostgreSQL-Optimierung und -Funktionen
Job-Ausführung, Embedding und Queues
-
Cron Jobs
-
Embeddable Postgres
-
Message Queues
- tembo-io/pgmq
- SKIP LOCKED
- sequinstream/sequin: CDC-Tool, das Postgres-Zeilen und Änderungen an Streaming-Plattformen und Queues wie Kafka oder SQS sendet
- janbjorge/pgqueuer: Python-Job-Queue-Library, die PostgreSQL nutzt
- smartpricing/queen: PostgreSQL-basierte Message Queue mit unabhängigen FIFO-Partitionen, Consumer Groups im Kafka-Stil und Exactly-once Delivery
Analytics, Karten, Audit und Berechtigungen
-
Analytics
- paradedb/pg_analytics: Bietet DuckDB-basierte Data-Lake-Analytics in Postgres
- duckdb/pg_duckdb: Offizielle Postgres-Erweiterung für DuckDB
- BemiHQ/BemiDB: Für Analytics optimierte Postgres-Lesereplik
- Mooncake-Labs/pg_mooncake: Erweiterung, die spaltenorientierten Speicher und vektorisierte Ausführung mit DuckDB in Postgres hinzufügt
- ClickHouse/pg_clickhouse: Führt ClickHouse-Analytics-Abfragen aus PostgreSQL heraus aus, ohne SQL umzuschreiben
-
GIS & Mapping
-
Audit Logs
- supabase/supa_audit
- pgMemento/pgMemento
- pgaudit/pgaudit
- BemiHQ/Bemi: Verfolgt Änderungen an PostgreSQL-Daten automatisch
-
Access Control & Authorization
Suche, Zeitreihen, spaltenorientiert, NoSQL, Graphen
-
Full Text Search
- Postgres Full Text Search: Sammlung relevanter Links
- pg_search: Postgres-Volltextsuche mit BM25
- plpgsql_bm25: BM25-Suche, implementiert in PL/pgSQL
-
Vector Search
- pgvector/pgvector
- tensorchord/VectorChord: PostgreSQL-Erweiterung für Vektorähnlichkeitssuche mit Fokus auf Skalierbarkeit, hohe Performance und effiziente Festplattennutzung
- timescale/pgai: pgvector-basierte Erweiterung, die RAG, semantische Suche und die Entwicklung von KI-Anwendungen innerhalb von Postgres unterstützt
- timescale/pgvectorscale: Implementierung eines DiskANN-Vektorindex als Ergänzung zu pgvector
-
Hybrid Search
- plpgsql_bm25rrf.sql: Hybridsuche, die BM25 und pgvector mittels Reciprocal Rank Fusion kombiniert
-
Time Series
- timescale/timescaledb: PostgreSQL++ für Zeitreihen und Events
- tembo-io/pg_timeseries: Open-Source-Zeitreihenerweiterung für PostgreSQL
-
Column Oriented
- paradedb/paradedb: Postgres für Suche und Analytics
- pg_duckdb: DuckDB-Spaltenspeicher in Postgres
-
NoSQL
- JSON Types: Native JSON-Unterstützung in PostgreSQL
- Using JSONB in PostgreSQL: So speichert und indiziert man JSON-Daten in PostgreSQL effektiv
-
Graph Data
- Apache Age: Graphdatenbank für PostgreSQL, die relationale Datenbanken um Verarbeitung und Analyse von Graphdaten erweitert
Externe Daten, HTTP, API, GraphQL, CDC
-
Foreign Data
-
HTTP
-
API Platforms
- PostgREST: Erstellt RESTful APIs aus bestehenden PostgreSQL-Datenbanken
- Hasura GraphQL Engine: Metadatenbasierte API-Plattform
-
GraphQL and Alternative Query Languages
- PostGraphile: Automatische GraphQL-API für PostgreSQL
- supabase/pg_graphql: PostgreSQL-Erweiterung, die GraphQL-Abfragen über eine einzelne SQL-Funktion ermöglicht
- dosco/graphjin: Wandelt GraphQL automatisch in SQL-Abfragen um
- kaspermarstal/plprql: PostgreSQL-Erweiterung zum Schreiben von Funktionen in PRQL
-
Events, Replication, CDC
- aws/pgactive: Replikationserweiterung von AWS zum Aufbau von Active-Active-Datenbanken
- xataio/pgstream: CDC-CLI und -Bibliothek, die Postgres-Replikation einschließlich DDL-Änderungen an Ausgabeziele sendet
- electric-sql/electric: HTTP-API zum Synchronisieren von Shapes einer Postgres-Datenbank
- SQL Notify
- debezium/debezium
- 2ndQuadrant/pglogical
Caching, Tests, Anwendungen, Migrationen
-
Caching
- tidwall/pogocache: Caching-Schicht mit Fokus auf Latenz und CPU-Effizienz
- readysettech/readyset
-
Unit Tests
-
HTML & Applications
-
Migrations
- purcell/postgresql-migrations
- Bytebase
- xataio/pgroll
- stripe/pg-schema-diff
- pgschema/pgschema: CLI, das Postgres einen deklarativen Schema-Migrationsworkflow im Terraform-Stil bietet
Performance, Monitoring, Skalierung, UI
-
Performance Tuning
- Supabase Index Advisor
- Dexter
- HypoPG
- pg_hint_plan
- PGHero
- pg_incremental: Erweiterung für schnelle und zuverlässige inkrementelle Batch-Verarbeitung
- pgassistant: Entwickler-Helfer zum Verstehen und Optimieren der PostgreSQL-Performance
-
Monitoring
-
Testing
- regresql: Tool für Regressionstests von SQL-Abfragen mit Unterstützung für PostgreSQL
-
Scaling & Storage
- Snowflake-Labs/pg_lake: nutzt Postgres als eigenständiges Lakehouse-System und unterstützt Transaktionen und Abfragen für Iceberg-Tabellen in Objektspeichern wie S3
- pgdogdev/pgdog: Transaction Pooler mit PostgreSQL-Sharding und Manager für logische Replikation
- pgbouncer/pgbouncer: leichtgewichtiger Connection Pooler für PostgreSQL
- orioledb.com: PostgreSQL-Erweiterung, die die Vorteile von On-Disk- und In-Memory-Engines kombiniert
-
User Interfaces & Dashboards
- Baserow
- NocoDB
- AppSmith
- mathesar-foundation/mathesar: tabellenkalkulationsartige Oberfläche, mit der Nutzer unterschiedlicher technischer Kenntnisse Postgres-Daten ansehen, bearbeiten, abfragen und gemeinsam bearbeiten können
Entwicklertools, Visualisierung, Pakete, Sicherheit, Finanzen
-
CLIs
- dbcli/pgcli: Postgres-Client mit Autovervollständigung und Syntax-Highlighting
- sosedoff/pgweb: webbasierter, plattformübergreifender PostgreSQL-Datenbank-Explorer
- Maxteabag/sqlit: TUI für SQL-Datenbanken einschließlich PostgreSQL
-
Visualization
- dr-jts/pg_svg: Sammlung von PostgreSQL-Funktionen, die PostGIS-Geometrien in formatierte SVG-Dokumente umwandeln
- Evidence
- Metabase
- Hopara: Plattform für Echtzeit-Datenvisualisierung in Fertigung, IoT, Life Sciences und Data Lakes
- posit-dev/ggsql: deklarative SQL-Erweiterung für Datenvisualisierung auf Basis der Grammar of Graphics
-
Package Management
-
Language Servers
- supabase/postgres-language-server: Sammlung von Sprachwerkzeugen und LSP-Implementierung für Postgres
-
Data Privacy & Security
- neondatabase/postgresql_anonymizer: PostgreSQL-Erweiterung zum direkten Maskieren oder Ersetzen von PII oder geschäftlich sensiblen Daten
-
Financial Ledgers
- pgledger: in PostgreSQL implementiertes Hauptbuch für doppelte Buchführung
-
Miscellaneous
- Very comprehensive list of Postgres tooling
- Unsupported PostgreSQL features in Aurora DSQL: Liste der PostgreSQL-Funktionen, die AWS Aurora DSQL nicht unterstützt
Noch keine Kommentare.