优点
ostgreSQL 不仅仅是传统意义上只能做 OLTP 的单纯 “关系型数据库”,而是一个多模态数据库。对于中小企业来说,基本单一组件便足以覆盖中小型企业绝大多数场景的数据需求:OLTP,OLAP,时序,地理空间GIS,分词与全文检索,JSON/XML文档,NoSQL特性,图,向量,全都能用上。
- 自主可控:开源,并采用 BSD 友好协议, 可换皮二开, 大量国产数据库的亲爹。
- 自动驾驶 : Pigsty x Patroni 可确保硬件故障自愈, 开箱即用的高可用
- 时序 : TimescaleDB 扩展提供时序数据库能力, 表现不俗!
- 地理空间 : PostGIS 提供地理空间数据库能力,事实标准!
- AI向量 : PGVector 提供了向量数据库的能力, 明日之星!
- 分布式 : 可以使用 Citus 扩展平滑实现单机到分布式数据库的原地升级改造。
- 文档 : 支持 JSON, JSONB, XML, HStore 等 NoSQL 特性。
- 图谱 : 递归查询, EdgeDB, AGE, AgensGraph 等多款图数据库插件。
- 全文检索:内置分词功能, 词向量检索与索引支持,
- 可编程 : 可以使用 SQL, PLSQL, Python, Perl, Java, JS, R 等语言编写函数
- 超融合 :多WireProtol支持, 如Babelfish之于MSSQL, FerretDB之于MongoDB。
- 联邦 : 可以使用 FDW 集成绝大多数种类的其他数据库与异构数据源
- 流批一体:可以使用触发器、规则系统、物化视图、持续聚集进行流式计算
- HTAP :拥有表现不俗的分析能力,可使用逻辑复制做 ETL/CDC
- Serverless : 开源的 Neon 提供 Serverless PostgreSQL 的能力
- 全栈 : 关系,时序, 地理, 空间, 图, 网络, 消息队列, 向量, 啥都能做。
- 平台 : 拥有一个强大的插件系统与繁荣的扩展生态,要加装啥功能都有
- 数据库 : 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 转换为分布式数据库。
Loading...