墨墨导读:本文是近期ScaleGrid发布的2019 PG趋势报告,从不同的角度解读了PostgreSQL如何在众多优秀的RDBMS中脱颖而出,原文:https://scalegrid.io/blog/2019-postgresql-trends-report-private-vs-public-cloud-migrations-database-combinations-top-reasons-used/(可复制在浏览器打开或点击“阅读原文”)。
此外,我们也建立了PostgreSQL技术研讨微信群,技术交流、资料分享、大牛解答,欢迎加入一起进步,入群方式见文末。
前言
PG是一款开源的关系型数据库,在过去30年中,其流行度从其活跃、忠诚且持续成长的社区中迅速飙升。根据DB-Engines的专家们给出的《DBMS of the Year》报告,PG已经连续两年蝉联世界“成长”最快数据库的名号。那么,是什么让PG如此出众,当今它又是如何被应用于实际生产?!我们在3月举行的Postgres Conference会议中找到了答案,在那里,我们采访了许多PG的用户、贡献者以及SQL/NOSQL数据库管理员。
所以在这份公开的PG趋势报告中,我们将从如下几个方面向大家揭示PG为何在众多优秀的RDBMS中脱颖而出:
- 公有云vs私有云vs混合用
- 最受欢迎的云供应商
- 迁移趋势
- 与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)页面来了解更多关于在云中自动化部署管理、监视和维护的信息。