百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

终于有人把开源数据库PostgreSQL讲明白了!

moboyou 2025-03-04 11:23 27 浏览




《高端访谈》

布道PostgreSQL

让开源数据库在中国开花结果

作者:刘学习

11111111111111111111

种下一粒子,发了一棵芽。开得什么花?结得什么果?

作为一个企业级开源数据库,PostgreSQL的目标就是替代商业数据库巨头Oracle,在满足数据库稳定性、可靠性、可用性等企业基本诉求的前提下,满足企业安全、合规、自主可控、成本控制等迫切的需求。

如今,在西方,开源数据库PostgreSQL已经家喻户晓,广泛应用。最近又连续两年蝉联DB-engines 2017、2018年度数据库大奖。DB-engines给出的理由是:PostgreSQL比其他监测到的343 个数据库管理系统更受欢迎。

数据库与操作系统一样都属于基础软件产品,也属于“国之重器“。在发展自主可控的数据库产品上,中国完全可以利用开源的PostgreSQL。关键是如何建立中国的社区,发挥社区和市场的力量,推出强大产品和服务,服务更广大的用户。



▲2015-2018年PG中国用户会轮席主席、

阿里云高级产品专家萧少聪

撒下什么种,就会结什么果。最近2015-2018年PostgreSQL中国用户会轮席主席、阿里云高级产品专家萧少聪接受中国软件网记者采访时认为,从传统业界巨头,到云及互联网新霸主,再到PostgreSQL社区生态,各类公司都十分活跃,在全球包括中国涌现出大批基于PostgreSQL的商业公司。不过当前市场上的竞争还只于萌芽阶段,而带动PostgreSQL产品的开发者及周边工具发布,将会成为竞争的焦点。

本文针对开源数据库PostgreSQL的发展态势、市场、产品、安全、发展趋势等诸多问题展开对话,涉及方面众多,内容较长,但是完全值得您深入阅读。

11111

1、突破:海外PostgreSQL是已经家喻户晓

1111111111

记者:最近,PostgreSQL蝉联DB-engines 2017、2018年度数据库大奖。这个数据库大奖有什么指标意义?对PostgreSQL发展有哪些帮助?

萧少聪:DB-Engines对PostgreSQL的认可是对社区的鼓励。在海外PostgreSQL是已经家喻户晓的开源数据库。

在国内,虽然我们成立社区进行推广已经超过7年,但对于很多中国的技术人员及企业用户而言,PostgreSQL依然是一个新的数据库。

本次PostgreSQL连续两年获得DB-Engines数据库大奖,吸引了不少媒体的报道,这对于PostgreSQL在中国的后续发展有积极推动作用。

记者:有媒体称,2018 DBMS年就是PostgreSQL,说明PostgreSQL在2018年取得众多突破。从全球来看,PostgreSQL在2018年都取得哪些突破?

萧少聪:2018年PostgreSQL 10正式进入企业使用领域,变化首先体现在其企业级性能。

通过正式提供Parallel Queries能力,实现多类操作的并行查询性能提升,在TPC-H压力测试中的部份性能表现比原来提升近5倍。而刚刚发布的PostgreSQL 11由于实现了Just-in-Time(JIT),性能有了进一步的提高,可以看看这张图。我们一会再聊新版本。



图1 TPC-H测试性能

(来源:
http://2017.pgconf.in/wp-content/uploads/2016/05/Query_Parallelism_In_Postgres_Rafia_Sabih_Dilip_Kumar.pdf)

其次是企业级能力方面,主要包括以下:

逻辑复制的发布及订阅功能:ETL及数据分析工具可以更方便高效地直接获取数据库中的所有变化数据;

提高了表分区的性能:为表分区增加了更易用的DDL语句,即声明式表分区,提高DBA对于大规模数据库分区优化的管理能力;

支持SCRAM-SHA-256加密:使得密钥认证管理更安全;

支持存储过程:互联网时代,都在讲微服务分库分表,但在企业级应用中对性能极致要求时高性能的存储过程必不可少,因此正式支持存储过程语法,让计算再一次紧贴数据;

支持所有SQL:2011中的Window Functions:提供分析型业务场景更加友好的SQL操作兼容性。

11111

2、生态:EMC、AWS、阿里云、腾讯云、华为云等齐上阵

1111111111

记者:除了性能和企业能力外,PostgreSQL社区生态有什么重要变化?

萧少聪:最后一个变化就是生态支持,从传统业界巨头,到云及互联网新霸主,再到PostgreSQL社区,生态中各类公司都分活跃。

全球知名的MPP数据仓库,EMC旗下的Pivotal公司主要的数据仓库管理系统Greenplum,2018年从基于PostgreSQL 8.x正式升级到9.x版本,预计将可能在2019年追平开源社区最新内核。同时今年其兼容PostgreSQL语法的SQL-on-Hadoop查询引擎HAWQ正式升级为Apache顶级项目。

AWS宣布将最早在2020年不再使用Oracle,同时AWS已经正式地开始进行从Oracle到其Aurora PostgreSQL的迁移。迁移核心数据库是不是一件容易的事,AWS编写了长达300多页的迁移手册。

在中国,阿里云推出了支持GPU异构计算的PostgreSQL时空引擎插件Ganos;腾讯云发布的云原生数据库CynosDB首发支持的是PostgreSQL而非MySQL;华为云除开源版本外,更进一步推出PostgreSQL增强版。中国各大云计算厂商在2018年均开始通过自研技术布道PostgreSQL市场。

另外,我们可以看到,包括:瀚高软件、天曦科技、文武信息、乘数科技、神州飞象等本土技术公司也分分发布了其基于PostgreSQL的独立数据库版本,或集群工具。

在开源社区方面,2017及2018年我们看到越来越多优秀的功能,以Extension插件而非分支发行版的形式加入到开源社区生态,包括:流计算PipelineDB、GPU异构计算PG-Strom、分布式架构Citus Data等。同时更有如swarm64这样的创新企业已经开始实现基于FPGA的软硬件一体化PostgreSQL加速。

11111

3、产品:多项指标出现2倍甚至近10倍升级

1111111111

记者:2018年,PostgreSQL推出了V11版,从用户的角度看,PostgreSQL新版本有哪些突出的特性?

萧少聪:PostgreSQL新版本特性非常多,主要谈以下几点:

一是更好的SQL标准兼容性:支持所有SQL 2011中定义的Window Functions,这在开源数据库甚至商业数据库都是少见的。

二是增强的云安全管理:提供新的针对文件系统的权限管理,使得云服务提供商可以在控制操作系统级文件操作的前提下,最大限度地给最终用户开放接近于superuser的权限,降低迁移上的门槛。

三是存储过程:直接支持CREATE PROCEDURE及CALL语法,存储过程中可以COMMIT和ROLLBACK进行事务提交及回滚,语法方面提供包括PL/pgSQL、PL/Perl、PL/Python,PL/Tcl多种语言的支持。

四是NoSQL能力支持:PostgreSQL是对JSON文档数据支持最好的关系型数据库之一,JSONB再次加入多个操作函数,同是时还可以通过jsonb_plpython及jsonb_plperl实现直接到Python及Perl数据类型的转换,大大简化这两类开发用户的开发时间。

第五是表分区:功能及性能得到进一步提升,支持FK、唯一索引、Hash分区等,同时性能比上一版本10再次提升30%



图2 三个版本PG单CPU性能对比

(来源:
https://blog.2ndquadrant.com/partitioning-evolution-postgresql-11/)

六是高性能:得益于基于LLVM技术的JIT,及表分区等一系列的性能提升,多项指标出现2倍甚至近10倍升级,在印度尼西亚PostgreSQL的TPC-C测试结果中表明,甚至比Oracle 11G高7倍。



图3 PG11与Oracle 11G性能对比

(来源:
http://www.postgresql.or.id/)

11111

4、安全:PostgreSQL怎么应对数据库的黑客攻击?

1111111111

记者:从全球来看,针对数据库的黑客攻击不断,包括PostgreSQL,,怎么看待这个问题?

萧少聪:数据库内核的研发模式对安全性至关重要,而开源数据库由于受到源码开放的监督,其漏洞的修复响应也得以加速,在黑客未能展开大规模进攻多前,往往漏洞补丁就已经发布了。

黑客的攻防是一个十分广泛的概念,即使数据库引擎本身已经足够安全,如果是从业务角度导致了密钥泄漏,也就相当于敞开了大门,此时再安全的技术也无补于事。

建议所有的用户紧跟PostgreSQL社区发布即使进行补丁更新,同时配合基于key的无密码登陆及磁盘加密技术加强对数据安全的保护,并加强所有研发人员进行GitHub发布时代码中密钥信息的审计管理。

11111

5、市场:涌现出大批的商业公司,但竞争还只于萌芽阶段

1111111111

记者:作为一个开源系统,如您所言,最近包括微软收购Citus Data扩展PostgreSQL服务,华为云数据库推出PostgreSQL增强版新功能,国内也有不少企业推出PostgreSQL数据库产品和服务。您是怎么看待这些发展态势的?这些企业产品与服务竞争焦点是什么?

萧少聪:得益于开源协议的开放性,PostgreSQL避免了如同GPL、AGPL、SSPL等协议对于商业生态支持的不友好情况。因此,近几年在全球包括中国涌现出大批基于PostgreSQL的商业公司。从发展态势,看当前仍属于业务机会的储备期,此时进入市场成本相对比较低,有机会从基础抓起,实现企业影响力。

PostgreSQL由于开源社区发展迅速,而且基于Extension架构的插件式功能活跃,因此各厂商在发展自有特性技术的同时,还需要投入大量资源持续追赶最新版本,避免遭到社区淘汰。在自有企业版本的公司中,EnterpriseDB、Postgres Pro、Citus Data做得比较出色,它们保留有自己闭源版本的商业产品,同时有专门的团队持续对开源社区贡献代码,实现与开源社区持续迭代。另外还有如同2nd Quadrant这样的公司,所有技术都贡献给开源社区,采用通过技术服务收费的商业模式。

因此,国内任何企业如果真的希望基于PostgreSQL实现长期发展,那么进行代码回馈,甚至成为PostgreSQL的Contributors及Core Team将十分重要。

另外当前市场上的竞争实际上还只于萌芽阶段,微软通过收购Citus Data,在获得了公司多名PostgreSQL专家,同时也获得了其分布式事务处理架构的能力,Azure后续如何整合Citus Data的这些能力值得业界关注。

而国内各大厂商,当前虽然已经发布了多种产品,但由于国内PostgreSQL开发者生态及ISV/SI生态的不足,将可能成为下一阶段的发展瓶颈。如何通过国内大型PostgreSQL企业用户的知名度,带动开发者及周边工具生态发展,将会成为竞争的焦点。

基于国家对于自主可控的要求,及PostgreSQL天生源于BSD的开放性使用协议,PostgreSQL必将成为不少国内数据库厂商的首选,以此打造自主品牌的企业级关系型数据库。

11111

6、中国社区:社区运营主体是来自不同企业的志愿者

1111111111

记者:PostgreSQL作为开源软件,社区在其发展中发挥重要的作用。PostgreSQL中国社区的发展情况如何?中国社区是如何营运的?

萧少聪:PostgreSQL中文社区又称PostgreSQL中国用户会,组建于2011年,并于2017年正式在国家工信部指导下成立中国开源软件推进联盟PostgreSQL分会。



(来源:http://www.postgres.cn)

从2011年初次活动只有寥寥30多人参加,到2018年大会500人现场参加,线上播放量达5000人次的规模,社区发展很快。同时2018年社区官方微博粉丝数已经达到10000+,迈入IT圈大V行列。

社区当前运营的主体是志愿者,志愿者来自不同的企业,并有各自的分工。社区每年的活动经费来自于企业赞助及志愿者捐赠。

社区志愿者通过自己的业余时间,协助社区发布技术信息,组织线上线下活动、文档翻译等工作,在此也想感谢协助过PostgreSQL社区工作的志愿者。

开源社区不分你我,每次活动都会有来自企业的支持,当中不乏如阿里、腾讯、百度、苏宁、摩拜、哈啰出行、探探、去哪网等互联网企业,也有如平安、华为、中兴等金融及通讯企业。吉利汽车更是为2018年的大会提供了场地支持。



(来源:http://www.postgres.cn)

记者:在PostgreSQL发展中,从全球来看,中国企业的贡献排名如何?都包括了哪些企业?

萧少聪:从全球看中国企业在PostgreSQL的贡献还很小,还无法进入到贡献排名

在整个Contributor列表中,我们只能看到两个华人的名字:来自2ndQuadrant的Mark Wong,及来自未知企业Qingqing Zhou。

期待更多的开发者向PostgreSQL社区提交代码,实现中国在PostgreSQL社区的影响力。

记者:在PostgreSQL发展中,中国社区都做了哪些贡献,可以与大家分享?

萧少聪:PostgreSQL中文社区主要通过线上线下活动的组织及公益培训来推动社区发展,每年我们都会举办很多活动,如象行中国,由各地区委员发起在本地区的技术沙龙,每年8-20场;象牙塔/天天象上,公益PostgreSQL培训;夏季、冬季2场用户大会,以及文档翻译等。

2019年,社区还计划了“走进高校”及“走进企业”的线下活动,希望可以为更多学子及希望了解或更深入使用的企业,提供与PostgreSQL大咖直接沟通的机会。同时,社区希望可以为有意开展PostgreSQL培训业务的机构提供免费的讲师培训及教材讲义,协助培训机构培育更多PostgreSQL人才。另外也期望为更多有数据库使用需求的企业提供技术分享,让PostgreSQL“走进企业”。

11111

7、未来:开源不应该只是拿来,还应该继续传承

1111111111

记者:利用开源系统,发展中国的数据库产品和数据库应用,是否是一个重要的发展策略?

萧少聪:首先开源是一种文化,操作系统可以开源、数据库可以开源,软件可以开源,文档可以开源。自古在我们的文化里就有这样的基因,孔子在《论语》中就有“有教无类”的说法,我们可以将知识更好发传播给更多不同的人群。因此我们才能将自己已经了解的知识在行业中进行沉淀,并通过更多人进行传承及演进。开源的思维在中华文化中流传已久。

基于开源进行改良及发展,可以缩短企业的发展路径,数据库是一个精密且庞大的系统,因此利用好开源系统,对于中国软件行业的发展十分重要。

开源不应该只是拿来,还应该继续传承,如何保证企业核心竞争力的同时对开源社区进行回馈,这将是中国开源产业需要持续推动的命题。

最后,是否只有做数据库内核引擎才是在做数据库?实际上,数据库还要依赖于周边的工具及应用系统才能持续发展,这也需要企业、教育界甚至上升到国家成面对于开源产业更大力的支持。

记者:从您来看,未来PostgreSQL发展方向主要是什么?

萧少聪:PostgreSQL当前已经形成十分坚实的内核引擎,下一步将面向云、分布式、全球同步、异构计算方面发展。

另外,插件化及接口化也会是PostgreSQL一个重要的变化,PostgreSQL 12有可能会将存储引擎接口化,以引入新的存储引擎。

PostgreSQL有一个Todo list有兴趣的朋友可以关注,也期待大家参与开发。

还不够爽?来CDEC吧! 点击

扩展链接

这有更多开源数据,还有专家、协会、CEO现场讲解行业和趋势,限时免费报名哦!

(3月5日后门票298元)

相关推荐

Node.js 获取文件信息及路径(node.js怎么获取当前文件路径)

获取文件信息每个文件都有一组细节,我们可以使用Node.js进行检查。特别是使用fs模块提供的stat()方法。constfs=require('fs');fs.stat(&#...

深入剖析JavaScript中深浅拷贝(js实现深浅拷贝)

大家好,我是Echa。最近有一位00后的小妹妹粉丝私信小编说自己很喜欢编程,目前在某公司实习前端开发工作,说到现在为止还没有搞懂JavaScript中深拷贝和浅拷贝这个问题,同时也在网上看了很多关于深...

为什么高手写 JS 总是又快又好?这10个技巧你要知道

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!JavaScript是前端开发的重要语言...

IT技术栈:Javascript神器,URL.createObjectURL()

URL.createObjectURL()是JavaScript中的一个方法,用于创建一个特殊的URL,该URL可以用于将不支持直接加载的数据(如二进制数据或Blob对象)嵌入到we...

如何在 Linux 中创建和管理组?(linux如何建立组)

在Linux中,组是用户账户的集合,用于统一管理权限。每个用户至少属于一个主组(PrimaryGroup),还可以加入多个附加组(SupplementaryGroup)。组的权限设置决定了用户对文...

付费文库内容无法复制,不用任何工具,学会这4种方法轻松复制

关注职场办公,分享实用干货,洞察科技资讯,这里是「职场科技范」。我们在搜索资料的时候,看到非常有用的文库,但往往都是付费的,只能看不能复制。今天就来教大家,学会下面这4种方法,轻松复制文库内容。一、内...

node.js v24.0.0 正式发布!10大重磅更新助力开发者,性能大幅提升

近日,Node.js官方团队正式发布了Node.jsv24.0.0版本,这是一个具有里程碑意义的重大更新。作为"Current"版本,它将在未来六个月内引领Node.js...

我理解的网站产品经理之四:网站产品前端姿势

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。2016年了,嗨,大家新年好。作为一个网页的产品经理,网页的前端知识可谓是不能不知,本文主讲网站产品的前端姿势。通常,...

五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。

这次来分享一个简单阅读项目:TaleBook,项目曾用名calibre-webserver。TaleBook是一个基于Calibre的简单的个人图书管理系统,支持在线阅读。不过鉴于各种规章制度,仅...

“5 分钟 CMake 使用指南,解决我的 C++ 打包问题!”

在软件开发的世界里,构建系统扮演着至关重要的角色,它不仅决定了项目的构建效率,还直接影响到团队协作的流畅度。对于许多C++开发者而言,CMake因其强大的功能和广泛的兼容性成为了构建自动化流程的...

大佬级鬼才终于把JavaScript整理成了修仙小说,让学习变简单

这是一本讲解JavaScript编程语言的技术书籍,只不过,本书采用了一种全新的写作手法。如果你厌倦了厚厚的、如同字典般的编程书籍,不妨尝试一下新的口味,话不多说,直接上干货!目录截图:内容展示:以上...

JavaScript基础知识点总结(javascript基础入门教程)

//逗比小憨憨/*第一章*HTML引用js方法:*1,外部引用:HTML外部引用js:<scriptsrc="js/day1.js"></script>*2,...

在Node.js中处理Zip文件(node运行js文件)

作者:疯狂的技术宅转发链接:https://mp.weixin.qq.com/s/edJd9-t1AyTGRcha_1k6RA前言Zip文件是常用的压缩文件格式。在本文中,我将演示如何用adm-...

Python 标准库中鲜为人知的宝藏 | Node.js 22.8.0 发布

Python标准库中鲜为人知的宝藏Python标准库功能强大,但有些模块却鲜为人知。本文将介绍一些有趣且实用的模块,助你提升代码效率和功能。数据结构:超越列表和字典除了常用的列表和字典,coll...

小程序,wxml页面里如何写JS代码?WXS如何模块化?

这篇接着上篇小程序,跳转页面的两种方式及其页面传参数继续讲,小程序wxml页面里如何写JS代码?wxs如何模块化?第一个问题:wxml页面要想类似HTML页面中写js代码,必须在页面中使用wxs标...