《State of PostgreSQL》是由Timescale 2019年开始发起的一项PostgreSQL社区问卷调查,到今年已经进行了四年,问卷涉及受访者信息如区域、职位/工作状态、贡献经历,以及PostgreSQL使用场景与扩展/插件、所用可视化工具等。今年ChatGPT引发新一轮AI热潮,本次问卷也征集了受访者使用PostgreSQL处理AI和大模型工作负载的态度与获益。 本问卷调查持续了近两个月,共888人参与填写。由问卷整理出炉的报告内容丰富,为我们了解PostgreSQL社区提供了数据支撑。 下面就调查结果给大家做完整分享和解读。 一、受访者状况 你来自哪儿? 从2021年和2022年调查结果来看,EMEA(欧洲、中东、非洲)区域受访者几乎占一半,但今年看到APAC(亚太地区)受访者增至20.3%,较去年(11%)上升9.3个百分点。 你在技术部门工作多久了? 结果显示,81%左右的PostgreSQL受访用户行业经验都在6年以上,从业20年以上的占比32.4%。 你目前的职位是什么? 在2023年,软件开发人员/工程师的占比没有发生巨大变化──从去年的43.3%到2023年的46.1%。今年的问卷对软件工程师这一笼统概念做了细分,分为前端工程师、后端工程师、全栈工程师和管理人员(包括CxO、VP、总监和创始人)四类。细分之后发现28.3%受访者是后端开发人员,17.8%是全栈开发人员。2023年软件架构师参与更少,从13.2%下降到6.6%。同时,9.7%参与者担任公司管理职务。 你所在行业是什么? 受访者所在最多的行业类型,以IT、SaaS/软件类、金融/金融科技等为主。 你用PostgreSQL多久了? 根据DB engines排名(https://db-engines.com/en/ranking_trend?ref=cloudberrydb.org),PostgreSQL的受欢迎程度一直很高。从问卷结果看,使用PostgreSQL不到一年的新用户数量连续三年增长──从2021年的6.1%到2022年的6.4%,再到今年的8.1%。2023年3-5年用户占比也比2022年有所增长。但从数据统计看,具备6-10年以上的受访用户占比有所波动。 你是怎么知道PostgreSQL的? 今年相比去年结果显示,从工作或同事处得知PostgreSQL的受访用户占比从37.4%降至28%,但这仍是大家知道PostgreSQL最大的来源。很多人已经忘记从哪儿开始了解到PostgreSQL的了,还有少部分是在学校、朋友、技术博客和技术论坛等处了解到PostgreSQL的,总之接触途径很多样。 你选择PostgreSQL的主要原因是什么? 综合问卷数据发现,人们选择PostgreSQL的前三大理由是开源、功能特性、可靠性,其他理由还包括如扩展、性能、SQL、生态、成本、ACID、可用性和社区等。不同年限的用户选择PostgreSQL原因也存在差别,接触PostgreSQL时间越长越会看重它的可靠性。 PostgreSQL应用调查 相较于上一年,PostgreSQL在你的组织中使用量多了还是少了? 51.2%受访者表示,与前一年比,PostgreSQL在所在组织中使用的更多了,其中11-50人规模的团队使用PostgreSQL增量最突出。 PostgreSQL目前是你当前项目的主要数据库吗? 85.8%受访者将PostgreSQL用作项目的主要生产数据库。 你使用PostgreSQL的主要使用场景是什么? 目前受访者主要将PostgreSQL用于应用开发、仪表盘、监控、IoT、DevOps方面,今年新增的场景选项“AI/机器学习”也入选前六大场景。 在今年的问卷中,引入了一个新的问题就是调查大家正在使用哪个PostgreSQL版本,从结果来看,生产环境和开发环境最常用的PG版本是最新的2个PG版本:PostgreSQL15和PostgreSQL 14。 (备注:在问卷期间,PostgreSQL 16还未正式发布,仅有PostgreSQL 16 Beta可选,所以PG 16用户较少)。 在使用PostgreSQL时面临的最大挑战是什么? 该问题也是在今年问卷中首次引入。受访者反馈“查询优化”是主要难点,其次是维护操作、PostgreSQL参数调优、运维管理等。同时,暴露出来的挑战还有人员招聘、数据迁移、安全等反馈。 你在生产应用中使用哪些SQL功能? 在受访者中,最常用的SQL功能包括常见的表格表达式、窗口函数、INSERT...ONCONFLICT 及聚合函数的筛选子句、全文搜索等。 目前PostgreSQL数据库部署大小如何? 该问题是今年问卷首次引入。从结果来看,受访者部署的PostgreSQL数据库集中在中小规模范围。 生态系统和工具 PostgreSQL丰富的连接器和工具生态系统是被大家普遍认同的地方。 最喜欢或最常用的3个PostgreSQL扩展是什么? 该问题为开放式。2023年在受访者回复中出现了几个新的扩展,如pg_fdw ,它们是首次上榜。 访问PostgreSQL最常用的编程语言 与过去两年问卷结果保持基本一致,访问PostgreSQL最常用的五大编程语言是SQL、Python、Java、JavaScript/TypeScript和Go语言。0-5年使用年限的PostgreSQL用户更偏 爱JavaScript或TypeScript而非Java。6年以上的PostgreSQL老用户更多使用Shell脚本来访问数据库。 连接到PostgreSQL最常用的工具是什么? 本问题的答复与2022年结果保持一致。大家连接到PostgreSQL最常用的方式是psql,其他较多回复包括pgAdmin、DBeaver、Datagrip和IntelliJ。 你经常使用哪些第三方工具来搭配PostgreSQL进行应用开发? 在2023年的受访者中,近一半(43.5%)表示他们不使用其他第三方工具。在使用第三方工具的回复中,pgBouncer、Depesz EXPLAIN和pgBackRest占比较多。 你使用了哪些可视化工具? 虽然18%的受访者不使用可视化工具,但大多数受访者依赖Grafana(38.2%)、pgAdmin(36.6%)和DBeaver(27.4%)进行数据可视化。这些结果与2021年和2022年的回应一致。 如何部署PostgreSQL? 相比2021和2022,反馈“自我管理PostgreSQL(Self-managing)”的受访者越来越少。但从2023年反馈数据来看,AWS RDS部署方式最靠前,在公共云平台(如AWS、GCP或Azure等)自建PG或使用Kubernetes部署排名也很靠前。 在Kubernetes上如何运行PostgreSQL 在使用Kubernetes部署PostgreSQL的受访者群体中,Helm用户占比从去年的44%降至今年的28%。相比去年,CloudNativePG从去年的6%提升到今年的27%。当然, 在受访者中选择使用Kubernetes方式运行PostgreSQL的总人数没那么多,所以该问题中各方式参与人数也相对较少。 你使用哪些自动化故障转移方案? 与2021、2022年调查结果一样,大部分受访者仍然反馈未使用相关自动故障转移方案。不过在使用相关方案的受访者中,Patroni(https://patroni.readthedocs.io/en/latest/)是最常用的方案。 2023年,AI大火。在本问卷中,也有相关问题来调查大家对AI方面的倾向。 你目前使用AI工具吗?你对它们的态度是什么? 从调查结果看,45%的受访者对AI工具持赞成态度,35. 2%持中立态度,仅有19.7%持不利意见。同时,63.1%的人表示他们目前没有在工作流程中使用AI工具,36.9%受访者已经在使用AI工具。 您从使用pgvector和PostgreSQL进行AI/ LLM工作负载中主要获益是什么? 在那些对使用pgvector和PostgreSQL作为AI/ LLM工作负载的向量数据库(54名受访者)回答“是”的人中,略高于三分之一(37.7%)的人表示,主要好处是能够将向量和关系数据保存在同一个数据库中,其次是社区与开源。 PostgreSQL社区 如何评价你第一次使用PostgreSQL的经历? 大家对PostgreSQL数据库的友好度评价仍然很高。绝大多数受访者(约91%)将他们的第一次PostgreSQL体验评为积极(包括中等、非常容易),平均体验评分为3.7(共5级)。 你是否为PostgreSQL做过贡献? 从报告数据看,每个PostgreSQL年限阶段用户都存在贡献者,使用时间越长贡献占比越大,其中44%拥有15年以上经验的PostgreSQL用户至少为PostgreSQL做过一次贡献。但总体来看,贡献者毕竟还是少数。 结合我们对PostgreSQL社区的参与体验来说,我们再进一步分析下原因:代码贡献需要具备一定的开发能力,且当前PostgreSQL代码贡献严谨、流程较复杂(如用邮件互动和提交Patch,并不可以直接在GitHub提交Pull Request),代码合并进展相比其他开源项目来讲稍慢等,这些都对潜在或新手贡献者造成了一定门槛。当然,每个项目和社区都有自己的传统习惯,但这也是一把双刃剑,传统协作习惯对新生代贡献者来说可能需要长期磨合。 过去一年,你参加过什么PostgreSQL活动? 有67.3%的受访者表示今年没参加过PostgreSQL相关活动。近两三年因为疫情,线下活动有所停滞,但今年数据显示面对面线下会议占比已超过线上虚拟会议。相信在未来的日子,会有越来越多的线下活动,方便社区成员交流互动。 你如何参与或与PostgreSQL社区互动 约13%左右的受访者使用PostgreSQL邮件列表来参与PostgreSQL日常互动交流,其他互动渠道也包括Slack、Stack Overflow、会议和Twitter等。 PostgreSQL社区何以得到大家喜欢? 那PostgreSQL到底哪里让大家觉得最喜欢呢?大家比较有共鸣的地方是: ••致力于开源协作、创新和用户支持 ••博文、教程、文档等资源丰富,让大家更容易上手 ••足够的技术专业度 PostgreSQL社区还有哪些改进空间? 超过278名受访者作了回复,大体总结下来分为6个方面: ••官方文档可增加更多的示例。•• PostgreSQL需要接受更多新的点子和方法。••沟通和协作流程显得过时,只能通过邮件列表是一大障碍。••为新手提供更多的空间。••允许社区给文档贡献一些示例,将理论和实践结合起来。••需要在繁荣应用开发者社区倾斜更多资源。 PostgreSQL社区如何更好地吸引新人? 超过300多位受访者给出了一些吸引新人的建议,如: ••在不同语言的软件开发论坛中推广PostgreSQL社区; ••提供入门教程和更简单的入门方式,增加PostgreSQL内核特性; ••增加更多教程、视频培训、会议和Meetup活动等。 ••鼓励更多开发者参与贡献,召开PostgreSQL开发会议等。 结语 PostgreSQL目前已成为世界上最领先的开源数据库之一,并拥有蓬勃繁荣的周边生态,历经30年而不息。作为面向分析和人工智能的下一代统一型开源数据库,Cloudberry Database很荣幸参与到PostgreSQL生态中来,后续我们也将持续分享更多PostgreSQL技术原理和动态,敬请期待。 如果你想阅读完整的英文版调查报告,可下方扫码进群获取。