为什么 PostgreSQL 的适用性很强?
说起使用数量最大的数据库SQLite 它是全球最广泛部署的数据库引擎。它存在于你的手机中,存在于你的浏览器中,如果你搜索你的电脑,你也会在其中找到它的 .db 文件。SQLite 受到 Postgres 的启发。其作者 Richard Hipp 称 SQLite 是 Postgres 的“概念分支”。两者没有共享代码,但是 Postgres 是他让 SQLite对准的北极星。他说,两者在以下方面是互补的。
如今,这些区别已经开始模糊。例如,SQLite被认为是嵌入式数据库。但是Postgres也正在成为嵌入式数据库。例如,我们说Steampipe嵌入了Postgres。这在技术上并不是真的。你不能将Postgres链接到一个二进制应用程序中,但是你可以(就像Steampipe一样)提供一个二进制文件,让它安装、运行并与Postgres合作。或者考虑Yugabyte,它将Postgres查询层附加到分布式存储层。也许没有在技术上嵌入Postgres的意义,但在道义上等同于嵌入。
Steampipe和Yugabyte不仅兼容Postgres,它们实际上是具有额外功能的Postgres(Steampipe用于API的外部数据封装器,Yugabyte用于分布式存储)。用户可以使用Postgres的交互式终端psql连接到这些产品;他们可以编写相同类型的查询;他们可以使用捆绑的或第三方扩展。
虽然PG不会很快像SQLite一样有上亿的部署量,但一般的设备完全有能力运行Postgres,PG正在越来越多在设备上使用。今天的SQL数据库比它们的先辈可以更好地为文件系统提供了更全面的数据存储支持,得益于丰富的API接口,Postgres不仅将关系数据与JSON对象可以存储在一起,还可以包括键值、全文、层次、地理空间、时间序列和列数据。
本地数据库是文件存储的一种补充形势。为了普及化数据库存储,这样的数据库应该是一个开源产品。SQLite已经引领了这个领域。Postgres是一个好的选择。
Postgres提供了丰富的数据复制机制来完成数据的传输,物理复制和逻辑复制都可以支持数据的传输和复制。Postgres强大的扩展生态系统增强了内置功能。第三方扩展pglogical实现了用于非Postgres发布者和订阅者(例如Kafka和RabbitMQ)的逻辑复制。在这个不断扩大的类别中,您可以找到许多其他解决方案。
与此同时,捆绑的 postgres_fdw 扩展利用了Postgres的外部数据包装器机制,以连接本地和远程表进行读写操作。无论如何,在您的设备上运行的Postgres实例,或者在您的个人和团队云中运行的实例,都能够与其他地方运行的实例同步。
数据科学文献中有许多指南,展示如何在数据科学家中流行的编程语言,如Python和R中重新实现SQL的核心功能。一个典型的Python配方以将数据从SQL表导入Pandas dataframe开始,Pandas dataframe是Python风格数据科学的核心构造,然后展示如何将SQL习语翻译成相应的Pandas习语。
除此以外POSTGRESQL支持丰富的语言来进行操作数据库,如通过python或 R语言都可以操作POSTGRESQL 来进行数据的查询利用这些语言可以让你操作Postgresql 更方便,扩展性更高。
所以POSTGRESQL 不光可以运行在大型服务器上,或云上RDS 方式提供服务,同时POSTGRESQL可以工作在任何运行环境, PG 具备在各种设备上运行的能力。