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 转换为分布式数据库。