2019 全球 PostgreSQL 生态报告出炉,PG 为何从 RDBMS 中脱颖而出?

前言


PG 是一款开源的关系型数据库,在过去 30 年中,其流行度从其活跃、忠诚且持续成长的社区中迅速飙升。根据 DB-Engines 的专家们给出的《DBMS of the Year》报告,PG 已经连续两年蝉联世界“成长”最快数据库的名号。那么,是什么让 PG 如此出众,当今它又是如何被应用于实际生产?!我们在 3 月举行的 Postgres Conference 会议中找到了答案,在那里,我们采访了许多 PG 的用户、贡献者以及 SQL/NOSQL 数据库管理员。

所以在这份公开的 PG 趋势报告中,我们将从如下几个方面向大家揭示 PG 为何在众多优秀的 RDBMS 中脱颖而出:

  1. 公有云 vs 私有云 vs 混合用
  2. 最受欢迎的云供应商
  3. 迁移趋势
  4. 与 PG 结合使用的数据库

私有云 VS 公有云 VS 混合云


那么,PG 的用户们该进行何种选择来托付支持应用的集群呢?我们的调研对象中 59.6% 的人更愿意在内部私有云(on-premise private cloud)上管理 PG,而只有 34.8% 的人选择使用公有云(public cloud)。这些结果与正常运行时间研究所 (Uptime Institute) 在 2017 年的调查结果相呼应,该调查发现,65% 的企业的工作负载仍运行于这些企业自有和运营的数据中心上。

但无论如何,让我们吃惊的是,仅有 5.6% 的调研对象采用了混合云(hybrid cloud)策略。混合云是第三方公共云和内部私有云的混合,以支持跨这两个计算环境的工作负载需求。然而 RightScale 最近的一份报告发现,69% 的企业已经通过将公共云和私有云进行结合的方式,采用了混合云策略。

最受 PG 用户欢迎的 **** 云供应商

由于有近 40% 的 PG 用户使用公共云或混合云,于是我们进一步研究了这些组织最喜欢使用哪家云供应商来管理自己的集群。在一项调查中,不出所料,我们发现 Amazon Web Services (AWS) 占有了 55% 的使用共有云的 PG 用户。
微软的 Azure 和 Google 云平台在 PG 公有云用户中的使用率不分伯仲,均为 17.5%。剩余的 10% 包括 DigitalOcean、IBM Cloud、Rackspace 和阿里巴巴。

也有许多 PG 布署采用 Database-as-a-Service (DBaaS) 的解决方案进行管理,该解决方案利用云原理或者直接由这些云供应商提供。想要了解它们各自的优劣,可以访问该链接:https://scalegrid.io/postgresql/hosting-comparison.html

单云和多云的使用

现在我们已经了解了 PG 管理和最受欢迎的云提供商的分类,接下来,我们来进一步了解下单云(Single Cloud)和多云(Multi-Cloud)的使用。

使用公有云的 PG 用户平均使用 1.3 个不同的云提供商提供的云平台来支持他们的应用程序。从反馈来看,单云的使用率达 78.1%,约为 3/4,占有绝对主导地位,反观 PG 布署对多云的利用率,仅有 21.9%。

使用 PG 及迁移至 PG 的趋势


接下来,我们询问了受访者关于他们关于 PG 的应用,进而了解 PG 用户群体,比如在迁移过程中或是探索应用中,PG 是否适合他们的应用需求。

在 PostgresConf 上,不出意料,我们发现大多数受访者(高达 74.4% 的比例)已经在使用 PG。虽然有超过 1/4 的受访者仍未在生产中布署应用 PG,但是我们发现,11.5% 的受访者已经在开始着手向 PG 的迁移,剩余 14.1% 已经将此列于未来可能的计划之中。

想要更进一步了解是 PG 的什么优势使 PG 用户下次决心,可以前往最后一小节:PG 从 RDBMS 中脱颖而出的主要原因。

**2019 年最受欢迎的数据库
**

尽管我们已经了解了 PG 的应用及迁移趋势,但在这次调查中,我们还是想要同时了解其他可选的数据库软件的受欢迎程度。

PostgreSQL of course came in first with 85.9% use between respondents (either using in production or currently migrating to), followed by Oracle at 43.59%, SQL Server at 32.05%, and MySQL at 28.21%. MongoDB and DB2 tied for fifth at 14.10%, Redis at 11.54%, and Greenplum and SQLite tied for seventh at 5.13% each. Cassandra, Cockroach, Cosmos DB, Elasticsearch, Teradata and TimescaleDB tied at eighth with 1.28% use each.

在本次受访者中,PG 当然是以 85.9% 的使用比例高居榜首(包括当前在使用的以及正在迁移的),接下来是 ORACLE 占比 43.59%,SQL Server 占比 32.05%,MySQL 占比 28.21%,MongoDB 和 DB2 并列第五,占比 14.10%,Redis 占比 11.54%,Greenplum 和 SQLite 并列第七,分别为 5.13%。Cassandra、Cockroach、Cosmos DB、Elasticsearch、Teradata 和 TimescaleDB 并列第八,各自的使用率为 1.28%。

虽然上面的结果严重偏向于 PostgreSQL,但我们确实发现 PG 在我们三月初发布的《2019 Database Trends – SQL vs. NoSQL, Top Databases, Single vs. Multiple Database Use 》报告中位列前三。这项调查是在 DeveloperWeek 上进行的,当时我们采访了所有类型数据库的用户,结果发现 MySQL 以 38.9% 的使用率遥遥领先,MongoDB 则以 24.6% 的使用率紧随其后。

最流行的与 PG 结合使用的数据库


现在我们知道了哪个 DBMS 才是最流行的(在 PG 社区中),那么我们再来看一看,最常与 PG 结合使用的数据库又是哪个。

首先我要分享一个数据,有 62.69% 的 PG 用户至少会额外再选择一款数据库与 PG 结合使用,而仅有 37.31%PG 用户在生产环境中只使用 PG。

超过四分之一(27.3%)的 PG 用户除使用 PG 外,还使用 Oracle,其次是 SQL Server 20.9%, MySQL 17.3%, MongoDB 10.0%, DB2 9.1%, Redis 7.3%, SQLite 3.6%。最后 4.5% 占比的与 PG 结合使用的数据库包括 Cassandra、Cockroach、Cosmos DB、Elasticsearch 和 Teradata

**PG 数据库组合:SQL vs NoSQL
**
考虑到与 PG 结合使用的数据库种类繁多,我们将与 PG 结合使用的数据库的使用趋势分为俩类:SQL 和 NoSQL。SQL 类的数据库被大多数 PG 用户选择组合使用,其比例甚至达到 80%,而只有 20% 的用户选择使用 NoSQL 类数据库与 PG 组合使用。

**PG 用户使用的数据库类型统计
**
现在我们知道哪个数据库是最常与 PG 结合使用的,那我们进一步研究 PG 社区中用来支持他们应用的数据库种类的平均数。

平均而言,我们发现,利用 PG 进行的应用布署平均使用 2.56 种数据库,这其中也包括 PG 本身。该数据低于我们的 2019 数据库趋势报告中的数据超过了 17%,那份报告中统计所有种类数据库的用户平均会使用 3 种数据库结合使用。这意味着 PG 必须填补本该由其他数据库来完成的功能。

正如你在下图中所见,超过一半的 PG 用户使用俩种甚至更多种的数据库来支持他们单一等应用:使用 2 种的是 9.0%,3 种的是 14.1%,4 种的是 17.9%,5 种的是 11.5%,甚至有 3.8% 的用户使用 6 种数据库。尽管组合使用占绝大多数,但在我们的调查中,仍有高达 43.6% 的用户只使用 PG。

PG 从 RDBMS 中脱颖而出的主要原因


我们终于来到我们的报告的最后一个趋势分析,这里我们来探讨一个开放式的问题:“是什么让你决定探索和使用 PG,而不是其他的 RDBMS”。

成本以 27% 的占比成为选择 PG,而非其他 RDBMS 的首要原因。这与以 25.5% 占比位居第二的主要原因——开源,紧密相关。高昂的商业供应商的 lisence 成本趋势他们的用户再想开源、免费的系统转型。如你所见,下图为 DB-Engine 的《Popularity of Open Source DBMS vs. Commercial DBMS》报告中的统计,至少从 2013 起,开源软件正在一步步瓜分源有商业供应商的市场,尽管目前商业软件仍占多数,但是在未来的 12 至 18 个中,开源将逐渐成为主导。

社区以 13.6% 的反馈率位居第三,尽管社区是有史以来最活跃、参与最多的开源 DBMS 社区之一,但从围绕调查的对话中可以明显看出,社区对用户的影响力更大。PostgreSQL 完全是由社区中,来自世界各地的开发人员驱动的。他们提供免费的支持,并与像他们一样的用户分享自己的专业知识。

性能以 10.9% 的反馈率紧随其后,然后是占比 9.1% 的第三方工具,他们之所以占比如此之高,是因为它们经常被用来确保和维护 PostgreSQL 的高性能。同样,开放源码社区为 PostgreSQL 赢得了另一个胜利,因为有多达数百个第三方开放源码 (和一些商业) 工具供你选择,让你的布署更轻松快捷。您可以在我们的《Managing High Availability in PostgreSQL》(https://scalegrid.io/blog/managing-high-availability-in-postgresql-part-1/)中的第三方工具系列了解到更多开源解决方案。

PG 以其简单灵活的设计获得 7.3% 的用户青睐,所以易用性排名第六,而高级功能排名第七,获得 6.4% 的用户青睐。以 5.5% 的回馈率排在第八,虽然排在最后但并非最不重要,在已经在使用 PG 的公司的在职受访者中,经历了上述种种之后,他们很快就爱上了 PG。

如果你喜欢 2019 年的 PostgreSQL 趋势报告,你应该看看我们之前对这个数据库的调查分析,https://scalegrid.io/blog/latest-postgresql-trends-most-time-consuming-tasks-important-metrics-to-track/ 。您还可以访问我们的 PostgreSQL on Azure(https://scalegrid.io/postgresql/azure.html)和 PostgreSQL on AWS(https://scalegrid.io/postgresql/aws.html)页面来了解更多关于在云中自动化部署管理、监视和维护的信息。