Cara Memanfaatkan Postgres
(github.com/Olshansk)- Repositori ini, dengan arah “Keep It Simple Stupid, just use postgres”, mengumpulkan dan menampilkan alat serta contoh penggunaan Postgres untuk berbagai kebutuhan
- Daftar ini terinspirasi dari tulisan Amazing CTO Postgres for Everything dan GitHub gist milik @cpursley, serta dipertahankan karena alat dan cara baru memanfaatkan Postgres terus bermunculan
- Cakupannya sangat luas, mulai dari pekerjaan cron, Postgres tertanam, message queue, analitik, GIS, audit log, kontrol akses, pencarian, deret waktu, NoSQL, graf, HTTP, API, CDC, caching, pengujian, migrasi, tuning performa, pemantauan, ekstensi, UI, CLI, visualisasi, manajemen paket, keamanan, hingga buku besar keuangan
- Setiap entri disusun dengan fokus pada tautan ke ekstensi Postgres, library, platform API, artikel, dan alat; sebagian juga terhubung ke teknologi spesifik seperti DuckDB, pgvector, PostGIS, PgBouncer, GraphQL, dan CDC
- Pengguna yang ingin menambahkan cuplikan kode, alat, atau proyek tertentu sebagai contoh harus membuka PR dengan tautan dan menggunakan pull request template yang baru
Tujuan repositori dan cara pemeliharaannya
- Tujuan repositori Postgres for Everything adalah menunjukkan cara menggunakan Postgres untuk berbagai kebutuhan
- Repositori ini terinspirasi dari materi berikut
- Karena alat baru di atas Postgres terus muncul dan cara pemanfaatan baru juga terus berkembang, repositori ini dipertahankan sebagai tempat untuk melacaknya
- Jika ada contoh lain, Anda dapat mengirimkan PR
- Untuk menampilkan cuplikan kode, alat, atau proyek, Anda harus membuka PR dengan tautan dan menggunakan pull request template
Bacaan dan artikel contoh
- Termasuk artikel yang membahas skalabilitas Postgres, pola, pemanfaatan fungsi database, serta optimasi dan fitur PostgreSQL
Eksekusi tugas, embedding, queue
-
Cron Jobs
-
Embeddable Postgres
-
Message Queues
- tembo-io/pgmq
- SKIP LOCKED
- sequinstream/sequin: alat CDC yang mengirim baris dan perubahan Postgres ke platform streaming dan queue seperti Kafka dan SQS
- janbjorge/pgqueuer: library job queue Python yang memanfaatkan PostgreSQL
- smartpricing/queen: message queue berbasis PostgreSQL yang menyediakan partisi FIFO independen, consumer group bergaya Kafka, dan exactly-once delivery
Analitik, peta, audit, otorisasi
-
Analytics
- paradedb/pg_analytics: menyediakan analitik data lake berbasis DuckDB di Postgres
- duckdb/pg_duckdb: ekstensi Postgres resmi untuk DuckDB
- BemiHQ/BemiDB: read replica Postgres yang dioptimalkan untuk analitik
- Mooncake-Labs/pg_mooncake: ekstensi yang menambahkan penyimpanan kolumnar dan eksekusi tervectorisasi DuckDB ke dalam Postgres
- ClickHouse/pg_clickhouse: menjalankan kueri analitik ClickHouse dari PostgreSQL tanpa penulisan ulang SQL
-
GIS & Mapping
-
Audit Logs
- supabase/supa_audit
- pgMemento/pgMemento
- pgaudit/pgaudit
- BemiHQ/Bemi: melacak perubahan data PostgreSQL secara otomatis
-
Access Control & Authorization
Pencarian, deret waktu, kolumnar, NoSQL, graf
-
Full Text Search
- Postgres Full Text Search: kumpulan tautan terkait
- pg_search: pencarian teks lengkap Postgres yang menggunakan BM25
- plpgsql_bm25: pencarian BM25 yang diimplementasikan dengan PL/pgSQL
-
Vector Search
- pgvector/pgvector
- tensorchord/VectorChord: ekstensi pencarian kemiripan vektor PostgreSQL yang menargetkan skalabilitas, performa tinggi, dan efisiensi disk
- timescale/pgai: ekstensi berbasis pgvector yang mendukung RAG, pencarian semantik, dan pengembangan aplikasi AI di dalam Postgres
- timescale/pgvectorscale: implementasi indeks vektor DiskANN yang melengkapi pgvector
-
Hybrid Search
- plpgsql_bm25rrf.sql: pencarian hibrida yang menggabungkan BM25 dan pgvector dengan Reciprocal Rank Fusion
-
Time Series
- timescale/timescaledb: PostgreSQL++ untuk deret waktu dan event
- tembo-io/pg_timeseries: ekstensi deret waktu open source untuk PostgreSQL
-
Column Oriented
- paradedb/paradedb: Postgres untuk pencarian dan analitik
- pg_duckdb: penyimpanan kolumnar DuckDB di dalam Postgres
-
NoSQL
- JSON Types: dukungan JSON native di PostgreSQL
- Using JSONB in PostgreSQL: cara menyimpan dan mengindeks data JSON di PostgreSQL
-
Graph Data
- Apache Age: basis data graf untuk PostgreSQL yang menyediakan pemrosesan dan analisis data graf pada basis data relasional
Data eksternal, HTTP, API, GraphQL, CDC
-
Foreign Data
-
HTTP
-
API Platforms
- PostgREST: membuat RESTful API dari basis data PostgreSQL yang sudah ada
- Hasura GraphQL Engine: platform API berbasis metadata
-
GraphQL and Alternative Query Languages
- PostGraphile: GraphQL API otomatis untuk PostgreSQL
- supabase/pg_graphql: ekstensi PostgreSQL yang memungkinkan kueri GraphQL dengan satu fungsi SQL
- dosco/graphjin: otomatis mengubah GraphQL menjadi kueri SQL
- kaspermarstal/plprql: ekstensi PostgreSQL untuk menulis fungsi dengan PRQL
-
Events, Replication, CDC
- aws/pgactive: ekstensi replikasi AWS untuk membuat basis data active-active
- xataio/pgstream: CDC CLI dan library yang mengirim replikasi Postgres, termasuk perubahan DDL, ke target output
- electric-sql/electric: HTTP API untuk menyinkronkan Shapes dari basis data Postgres
- SQL Notify
- debezium/debezium
- 2ndQuadrant/pglogical
Caching, pengujian, aplikasi, migrasi
-
Caching
- tidwall/pogocache: lapisan caching yang berfokus pada latensi dan efisiensi CPU
- readysettech/readyset
-
Unit Tests
-
HTML & Applications
-
Migrations
- purcell/postgresql-migrations
- Bytebase
- xataio/pgroll
- stripe/pg-schema-diff
- pgschema/pgschema: CLI yang menyediakan alur kerja migrasi skema deklaratif bergaya Terraform untuk Postgres
Performa, pemantauan, penskalaan, UI
-
Performance Tuning
- Supabase Index Advisor
- Dexter
- HypoPG
- pg_hint_plan
- PGHero
- pg_incremental: ekstensi untuk pemrosesan batch inkremental yang cepat dan andal
- pgassistant: asisten untuk pengembang yang membantu memahami dan mengoptimalkan performa PostgreSQL
-
Monitoring
-
Testing
- regresql: alat uji regresi kueri SQL yang mendukung PostgreSQL
-
Scaling & Storage
- Snowflake-Labs/pg_lake: memanfaatkan Postgres sebagai sistem lakehouse mandiri, serta mendukung transaksi dan kueri untuk tabel Iceberg di object storage seperti S3
- pgdogdev/pgdog: transaction pooler dan pengelola replikasi logis yang mendukung sharding PostgreSQL
- pgbouncer/pgbouncer: connection pooler ringan untuk PostgreSQL
- orioledb.com: ekstensi PostgreSQL yang menggabungkan keunggulan engine on-disk dan in-memory
-
User Interfaces & Dashboards
- Baserow
- NocoDB
- AppSmith
- mathesar-foundation/mathesar: antarmuka bergaya spreadsheet yang memungkinkan pengguna dengan berbagai tingkat kemampuan teknis untuk melihat, mengedit, mengueri, dan berkolaborasi pada data Postgres
Alat pengembang, visualisasi, paket, keamanan, keuangan
-
CLIs
- dbcli/pgcli: klien Postgres dengan pelengkapan otomatis dan penyorotan sintaks
- sosedoff/pgweb: penjelajah basis data PostgreSQL berbasis web lintas platform
- Maxteabag/sqlit: TUI untuk basis data SQL termasuk PostgreSQL
-
Visualization
- dr-jts/pg_svg: kumpulan fungsi PostgreSQL untuk mengubah geometri PostGIS menjadi dokumen SVG dengan styling
- Evidence
- Metabase
- Hopara: platform visualisasi data real-time untuk manufaktur, IoT, ilmu hayati, dan data lake
- posit-dev/ggsql: ekstensi SQL visualisasi data deklaratif berbasis Grammar of Graphics
-
Package Management
-
Language Servers
- supabase/postgres-language-server: kumpulan alat bahasa dan implementasi LSP untuk Postgres
-
Data Privacy & Security
- neondatabase/postgresql_anonymizer: ekstensi PostgreSQL untuk langsung menyamarkan atau mengganti PII maupun data yang sensitif secara komersial
-
Financial Ledgers
- pgledger: buku besar pembukuan berpasangan yang diimplementasikan dengan PostgreSQL
-
Miscellaneous
- Very comprehensive list of Postgres tooling
- Unsupported PostgreSQL features in Aurora DSQL: daftar fitur PostgreSQL yang tidak didukung di AWS Aurora DSQL
Belum ada komentar.