PostgreSQL有许多引人注目的优势,其中一些是独一无二的。本文将分享PostgreSQL与Oracle的不同之处,以及这些不同所带来的优势。
联邦与外国数据包装器
Oracle有一个称为联邦的特性,它允许将来自其他数据库的表视为本地数据。PostgreSQL在11中引入了外部数据包装器。它比联邦系统优越得多,可以连接到任何远与数据相似的东西,而且不需要任何费用。这使得PostgreSQL成为一个优秀的ETL平台,即使您使用它只是为了获取数据。
plSQL与其他所有功能
Oracle有一种称为plSQL的内置编程语言。PostgreSQL大约有80个左右。PostgreSQL的扩展系统用于创建程序语言作为插件,并且几乎可以想到的任何语言都有绑定。如果没有的话,您可以随时 与Mark Wong 一起学习如何为您的个人喜好包装。
应用程式设计
Oracle提供了一个应用程序API与数据库进行通信。PostgreSQL还提供了方便和受信任的语言的API。但是,该产品是开源的,因此没有二等开发公民。您可以通过在项目中包含头文件来访问PostgreSQL必须提供的任何内容,做任何你想做的事。
国际化和本地化
Oracle提供了一个全球化工具包。PostgreSQL是从头开始构建的,完全依赖于众所周知且广泛兼容的系统服务进行本地化。它可以使用操作系统提供的任何字符编码,排序规则和代码页。
Web开发
Oracle通过HTML DB承认HTML的存在。PostgreSQL本地支持JSON,XML并插入Javascript作为 后端 编码语言,您可以与Java或您选择的任何其他前端语言同时使用。
认证方式
Oracle有一个内置的身份验证系统(在此向代理身份验证致意,它稍微灵活一些)。PostgreSQL依靠基于主机的身份验证和SASL协议来插入主机可以支持的任何身份验证系统,还有一些直接插入PostgreSQL中。这为身份验证提供了巨大的可能性,同时还具有将身份验证过程转移到其他计算机上的潜力。
可扩展性
Oracle具有一个包含大部分专有插件的插件系统。PostgreSQL有一个由通用社区支持的扩展系统,其中包含数千个可用的插件。
读取可扩展性
Oracle具有相当好的垂直读取可伸缩性。PostgreSQL可以创建几乎无限的读取集群。节点的数量仅受您要投入的资源量的限制。
成本
“免费”是很难被击败的,而甲骨文甚至都没有努力去尝试免费。让我们面对它,Oracle只是荒谬的昂贵,他们不介意为每一个单独的实例再次收费。
这也不是线性比较。PostgreSQL的最大优点之一是您可以拥有所需的所有实例,而无需支付额外费用。(我认为这是额外费用+0.00美元,或者乘以0.00美元,由您决定)。
将单个Oracle实例的成本与单个PostgreSQL实例的成本进行比较(对于PostgreSQL)是不公平的。一旦您尝到了自由的自由,就很难将所有东西都塞进一个实例中以降低成本。
在将数据转换到数据仓库的过程中,临时数据库的成本应该是多少?我认为免费就足够了。如何使用临时数据库进行报告?这也是免费的。那么ETL的数据摄入点呢?免费是不错的。我喜欢免费。
性能
我已经提到过PostgreSQL可以在读取集群中创建无限数量的节点。这可以将任何特定读取操作的成本降低到接近零。但是,还有另一种方式使PostgreSQL比Oracle具有更高的性能。
因为PostgreSQL每个节点不需要任何开销,所以您可以针对每个工作负载对其进行不同的调优。当然,您也可以使用Oracle来实现这一点,但是您需要为使用这种方式对每个节点进行调优而付出代价。因此,如果您想区分仓库、OLTP和报告到数据湖的调优参数,PostgreSQL使这变得相当容易,而且仍然很节省。
当然,PostgreSQL中还有很多引人注目的功能,欢迎您的关注。
作者:Kirk Roybal 日期:2020.6.23
文章来源:https://www.2ndquadrant.com/en/blog/oracle-to-postgresql-reasons-to-migrate/