PostgreSQL 在 Stackoverflow 2022 開發人員調查中評為最受喜愛的數據庫(見下圖),超過了 MySQL。
為什么 PostgreSQL 是最受喜愛的呢?
簡言之:一個數據庫幾乎囊括了開發人員需要的所有用例。并且開源的屬性還培植了一個應用廣泛的生態系統。
OLTP (Online Transaction Processing)
PostgreSQL 支持事務的 ACID 屬性,可以進行 CRUD(創建-讀取-更新-刪除)操作。并且它還有一般關系數據庫支持的 View, Materialized View, Trigger, 存儲過程等。
OLAP (Online Analytical Processing)
我們可以使用 PostgreSQL 進行 OLAP 中常用的聚合處理。PostgreSQL 基于 HTAP(Hybrid transactional/analytical processing)架構,因此可以很好地在同一個數據庫中運行 OLTP 和 OLAP 操作。
HTAP 是咨詢公司 Gartner 在 2014 年的報告 Hybrid Transaction/Analytical Processing Will Foster Opportunities for Dramatic Business Innovation 中提出的一個名詞,其定義為:
HTAP 是一種新興的應用程序架構,它“打破了事務處理和分析之間的壁壘”。它使人們能夠做出更明智和更實時的商業決策。
傳統的數據架構將事務系統和分析系統分開。我們需要構建大量批處理的任務從 OLTP 數據庫拷貝數據到 OLAP 數據庫(數據倉庫),這個過程叫做 ETL(Extract-Transform-Load)。這種架構不但增加了系統的復雜度,帶來了數據錯誤,還減慢了商業決策的速度。HTAP 大大提高了數據架構的及時性。
FDW (Foreign Data Wrapper)
FDW 是 PostgreSQL 中的一個擴展,允許我們訪問外部數據庫中的表結構或數據。
SQL 標準在 2003 年的時候加入了 SQL/MED (SQL Management of External Data),用于處理從 SQL 數據庫訪問遠程對象的標準化方法。2011 年, PostgreSQL 9.1 支持讀取遠程對象。2013 年,PostgreSQL 9.3 支持寫入。現在,FDW 可以訪問大部分關系型數據庫,NoSQL 數據庫和外部文本文件。
流式計算
PipelineDB 是用于高性能時間序列聚合的 PostgreSQL 擴展,旨在為實時報告和分析應用提供支持。
地理空間
PostGIS 是 PostgreSQL 對象關系數據庫的空間擴展。它增加了對地理對象的支持,允許在 SQL 中查詢位置信息。
時間序列
Timescale 擴展了 PostgreSQL 的時間序列和分析功能。例如,開發人員可以將金融數據流、市場數據與其他業務數據結合起來,構建新的應用程序并發現獨特的見解。
分布式表
CitusData 是一個 PostgreSQL 的擴展,將 Postgres 轉換為分布式數據庫。