วิธีใช้ Postgres
(github.com/Olshansk)- รีโพซิทอรีนี้รวบรวมและแสดงเครื่องมือกับกรณีใช้งาน Postgres ในหลากหลายวัตถุประสงค์ ภายใต้แนวทาง “Keep It Simple Stupid, just use postgres”
- รายการนี้ได้รับแรงบันดาลใจจากบทความ Postgres for Everything ของ Amazing CTO และ GitHub gist ของ @cpursley และยังคงได้รับการดูแลเพราะมีเครื่องมือหรือวิธีใช้งานใหม่ ๆ บน Postgres ออกมาอย่างต่อเนื่อง
- ขอบเขตครอบคลุมกว้าง ตั้งแต่งาน cron, Postgres แบบฝังในแอป, message queue, analytics, GIS, audit log, access control, search, time series, NoSQL, graph, HTTP, API, CDC, caching, testing, migration, performance tuning, monitoring, extension, UI, CLI, visualization, package management, security ไปจนถึงบัญชีแยกประเภททางการเงิน
- แต่ละรายการจัดระเบียบโดยเน้นลิงก์ไปยังส่วนขยาย Postgres, ไลบรารี, แพลตฟอร์ม API, บทความ และเครื่องมือ โดยบางรายการเชื่อมโยงกับเทคโนโลยีเฉพาะ เช่น DuckDB, pgvector, PostGIS, PgBouncer, GraphQL, CDC
- ผู้ใช้ที่ต้องการเพิ่มตัวอย่างโค้ด เครื่องมือ หรือโปรเจกต์ใด ๆ ต้องเปิด PR พร้อมลิงก์ และใช้ pull request template ใหม่
วัตถุประสงค์และวิธีดูแลรีโพซิทอรี
- เป้าหมายของรีโพซิทอรี Postgres for Everything คือการแสดงวิธีใช้ Postgres สำหรับวัตถุประสงค์หลากหลาย
- รีโพซิทอรีนี้ได้รับแรงบันดาลใจจากแหล่งข้อมูลต่อไปนี้
- เนื่องจากมีเครื่องมือใหม่ ๆ ที่สร้างบน Postgres หรือวิธีใช้งานใหม่ ๆ เกิดขึ้นอย่างต่อเนื่อง รีโพซิทอรีนี้จึงถูกดูแลไว้เป็นที่สำหรับติดตามสิ่งเหล่านี้
- หากมีตัวอย่างอื่น สามารถส่ง PR ได้
- หากต้องการนำเสนอตัวอย่างโค้ด เครื่องมือ หรือโปรเจกต์ ต้องเปิด PR พร้อมลิงก์และใช้ pull request template
บทความอ่านเพิ่มเติมและกรณีตัวอย่าง
- มีบทความที่กล่าวถึงความสามารถในการขยายของ Postgres, แพตเทิร์น, การใช้ฟังก์ชันฐานข้อมูล, การปรับแต่งและฟีเจอร์ของ PostgreSQL
การรันงาน, การฝังในแอป และคิว
-
Cron Jobs
-
Embeddable Postgres
-
Message Queues
- tembo-io/pgmq
- SKIP LOCKED
- sequinstream/sequin: เครื่องมือ CDC ที่ส่งแถวและการเปลี่ยนแปลงของ Postgres ไปยังแพลตฟอร์มสตรีมมิงและคิว เช่น Kafka, SQS
- janbjorge/pgqueuer: ไลบรารีคิวงานสำหรับ Python ที่ใช้ PostgreSQL
- smartpricing/queen: message queue บน PostgreSQL ที่ให้ FIFO partition แยกกัน, consumer group สไตล์ Kafka และ exactly-once delivery
การวิเคราะห์, แผนที่, การตรวจสอบ, สิทธิ์
-
Analytics
- paradedb/pg_analytics: ให้การวิเคราะห์ data lake บน DuckDB ใน Postgres
- duckdb/pg_duckdb: ส่วนขยาย Postgres อย่างเป็นทางการสำหรับ DuckDB
- BemiHQ/BemiDB: read replica ของ Postgres ที่ปรับแต่งเพื่อการวิเคราะห์
- Mooncake-Labs/pg_mooncake: ส่วนขยายที่เพิ่ม columnar storage และการประมวลผลแบบ vectorized ของ DuckDB เข้าไปใน Postgres
- ClickHouse/pg_clickhouse: รันคิวรีวิเคราะห์ของ ClickHouse จาก PostgreSQL โดยไม่ต้องเขียน SQL ใหม่
-
GIS & Mapping
-
Audit Logs
- supabase/supa_audit
- pgMemento/pgMemento
- pgaudit/pgaudit
- BemiHQ/Bemi: ติดตามการเปลี่ยนแปลงข้อมูล PostgreSQL โดยอัตโนมัติ
-
Access Control & Authorization
การค้นหา, ไทม์ซีรีส์, แบบคอลัมน์, NoSQL, กราฟ
-
Full Text Search
- Postgres Full Text Search: รวมลิงก์ที่เกี่ยวข้อง
- pg_search: การค้นหาข้อความแบบเต็มใน Postgres ที่ใช้ BM25
- plpgsql_bm25: การค้นหา BM25 ที่พัฒนาด้วย PL/pgSQL
-
Vector Search
- pgvector/pgvector
- tensorchord/VectorChord: ส่วนขยายการค้นหาความคล้ายคลึงของเวกเตอร์สำหรับ PostgreSQL ที่มุ่งเน้นความสามารถในการขยาย, ประสิทธิภาพสูง และประหยัดพื้นที่ดิสก์
- timescale/pgai: ส่วนขยายบนพื้นฐาน pgvector ที่รองรับการพัฒนา RAG, การค้นหาเชิงความหมาย และแอปพลิเคชัน AI ภายใน Postgres
- timescale/pgvectorscale: การใช้งานดัชนีเวกเตอร์ DiskANN ที่เสริม pgvector
-
Hybrid Search
- plpgsql_bm25rrf.sql: การค้นหาแบบไฮบริดที่ผสาน BM25 และ pgvector ด้วย Reciprocal Rank Fusion
-
Time Series
- timescale/timescaledb: PostgreSQL++ สำหรับไทม์ซีรีส์และอีเวนต์
- tembo-io/pg_timeseries: ส่วนขยายไทม์ซีรีส์โอเพนซอร์สสำหรับ PostgreSQL
-
Column Oriented
- paradedb/paradedb: Postgres สำหรับการค้นหาและการวิเคราะห์
- pg_duckdb: คอลัมน์สตอเรจ DuckDB ภายใน Postgres
-
NoSQL
- JSON Types: การรองรับ JSON แบบเนทีฟของ PostgreSQL
- Using JSONB in PostgreSQL: วิธีจัดเก็บและทำดัชนีข้อมูล JSON ใน PostgreSQL
-
Graph Data
- Apache Age: ฐานข้อมูลกราฟสำหรับ PostgreSQL ที่เพิ่มความสามารถในการประมวลผลและวิเคราะห์ข้อมูลกราฟให้กับฐานข้อมูลเชิงสัมพันธ์
ข้อมูลภายนอก, HTTP, API, GraphQL, CDC
-
Foreign Data
-
HTTP
-
API Platforms
- PostgREST: สร้าง RESTful API จากฐานข้อมูล PostgreSQL ที่มีอยู่
- Hasura GraphQL Engine: แพลตฟอร์ม API ที่อิงเมทาดาทา
-
GraphQL and Alternative Query Languages
- PostGraphile: GraphQL API อัตโนมัติสำหรับ PostgreSQL
- supabase/pg_graphql: ส่วนขยาย PostgreSQL ที่ทำให้สามารถคิวรี GraphQL ได้ด้วยฟังก์ชัน SQL เพียงตัวเดียว
- dosco/graphjin: แปลง GraphQL เป็นคิวรี SQL โดยอัตโนมัติ
- kaspermarstal/plprql: ส่วนขยาย PostgreSQL สำหรับเขียนฟังก์ชันด้วย PRQL
-
Events, Replication, CDC
- aws/pgactive: ส่วนขยายการจำลองข้อมูลของ AWS สำหรับสร้างฐานข้อมูลแบบ active-active
- xataio/pgstream: CDC CLI และไลบรารีที่ส่งการจำลองข้อมูลของ Postgres รวมถึงการเปลี่ยนแปลง DDL ไปยังปลายทางเอาต์พุต
- electric-sql/electric: HTTP API สำหรับซิงค์ Shapes ของฐานข้อมูล Postgres
- SQL Notify
- debezium/debezium
- 2ndQuadrant/pglogical
แคช, การทดสอบ, แอปพลิเคชัน, การไมเกรต
-
Caching
- tidwall/pogocache: เลเยอร์แคชที่เน้นเวลาแฝงและประสิทธิภาพ CPU
- readysettech/readyset
-
Unit Tests
-
HTML & Applications
-
Migrations
- purcell/postgresql-migrations
- Bytebase
- xataio/pgroll
- stripe/pg-schema-diff
- pgschema/pgschema: CLI ที่มอบเวิร์กโฟลว์การไมเกรตสคีมาแบบประกาศตามสไตล์ Terraform ให้กับ Postgres
ประสิทธิภาพ การมอนิเตอร์ การขยายระบบ UI
-
Performance Tuning
- Supabase Index Advisor
- Dexter
- HypoPG
- pg_hint_plan
- PGHero
- pg_incremental: ส่วนขยายสำหรับการประมวลผลแบบแบตช์เพิ่มส่วนที่รวดเร็วและเชื่อถือได้
- pgassistant: ผู้ช่วยสำหรับนักพัฒนาที่ช่วยทำความเข้าใจและปรับแต่งประสิทธิภาพของ PostgreSQL
-
Monitoring
-
Testing
- regresql: เครื่องมือทดสอบ regression สำหรับคิวรี SQL ที่รองรับ PostgreSQL
-
Scaling & Storage
- Snowflake-Labs/pg_lake: ใช้ Postgres เป็นระบบ lakehouse แบบสแตนด์อโลน และรองรับทรานแซกชันกับคิวรีบนตาราง Iceberg ใน object storage อย่าง S3
- pgdogdev/pgdog: transaction pooler และตัวจัดการ logical replication ที่รองรับ sharding สำหรับ PostgreSQL
- pgbouncer/pgbouncer: connection pooler ขนาดเบาสำหรับ PostgreSQL
- orioledb.com: ส่วนขยาย PostgreSQL ที่ผสานข้อดีของเอนจินแบบ on-disk และ in-memory
-
User Interfaces & Dashboards
- Baserow
- NocoDB
- AppSmith
- mathesar-foundation/mathesar: อินเทอร์เฟซแบบสเปรดชีตที่ให้ผู้ใช้หลากหลายระดับทักษะดู แก้ไข สืบค้น และทำงานร่วมกันบนข้อมูล Postgres ได้
เครื่องมือสำหรับนักพัฒนา การแสดงภาพ แพ็กเกจ ความปลอดภัย การเงิน
-
CLIs
- dbcli/pgcli: ไคลเอนต์ Postgres ที่มี auto-complete และ syntax highlighting
- sosedoff/pgweb: ตัวสำรวจฐานข้อมูล PostgreSQL แบบเว็บที่ใช้ได้ข้ามแพลตฟอร์ม
- Maxteabag/sqlit: TUI สำหรับฐานข้อมูล SQL รวมถึง PostgreSQL
-
Visualization
- dr-jts/pg_svg: ชุดฟังก์ชัน PostgreSQL สำหรับแปลง PostGIS geometry เป็นเอกสาร SVG ที่มีการจัดสไตล์
- Evidence
- Metabase
- Hopara: แพลตฟอร์มแสดงภาพข้อมูลแบบเรียลไทม์สำหรับการผลิต IoT วิทยาศาสตร์ชีวภาพ และ data lake
- posit-dev/ggsql: ส่วนขยาย SQL สำหรับการแสดงภาพข้อมูลเชิงประกาศตาม Grammar of Graphics
-
Package Management
-
Language Servers
- supabase/postgres-language-server: ชุดเครื่องมือภาษาและการใช้งาน LSP สำหรับ Postgres
-
Data Privacy & Security
- neondatabase/postgresql_anonymizer: ส่วนขยาย PostgreSQL สำหรับมาสก์หรือแทนที่ PII หรือข้อมูลที่อ่อนไหวเชิงพาณิชย์โดยตรง
-
Financial Ledgers
- pgledger: สมุดบัญชีแบบ double-entry ที่พัฒนาด้วย PostgreSQL
-
Miscellaneous
- Very comprehensive list of Postgres tooling
- Unsupported PostgreSQL features in Aurora DSQL: รายการฟีเจอร์ PostgreSQL ที่ไม่รองรับใน AWS Aurora DSQL
ยังไม่มีความคิดเห็น