本文将围绕国产数据库领域生态方面进行思考,从社区支持、生存空间、生态建设等几方面展开细说。
作者 | 祁国辉
策划 | 韩 楠
根据国内权威信通院云大所发布的数据库发展研究报告表明,随着数字经济发展,全球数据库产业持续火热,从21世纪开始,全球共有472家企业提供数据库产品服务。我国数据库产业从2013年开始呈现高速发展态势,平均每年新增10家左右数据库企业[1]。
国际著名数据库社区 DB-engine的Ranking6月排名,前十名,都不是国产数据库[2]。所以目前国内数据库的竞争态势可谓是,蓬勃发展, 相爱相杀。
前阶段,就中美数据库研发市场对比有一篇相关分享,此间引起诸多业界人士的多维度探讨。其中分享者吴英俊也谈及了生态这一话题, 但是浅尝辄止,今天我尝试狗尾续貂,再和各位看官聊一聊。
生态,是一个生物学概念, 一个完善的生态系统,包含生产者,消费者,底层的生产者为顶层的消费者提供营养。从而实现互相依存,自给自足。
图源:百度
那我们来看看在国产数据库领域生态方面的思考,以下将分别从社区支持、生存空间等几个方面来说说。
一、生态之社区支持
开源社区的精神在于取之于开源, 奉献于开源, 众人拾柴火焰高, 不过在数据库这个领域有时候不太一样。
在数据库主版本一路先前更新迭代的时候, 大多数企业实际上无力去承担数据库升级合并的成本, 另外一些基于自身用户需求做的一些功能增强和迭代也和社区主版本越行越远, 最终就变成主版本已经更新迭代很多代了, 自己的核心还停留在上个世纪, 这一点在PG社区中尤为明显。
2022年10月, PG发布了PG15,但是不少国内的基于PG的自研数据库,已经没有办法再去merge最新的PG15的代码。比如PolarDB for PG, 和PG的差距越来越大,最终在2021年5月决定开源PolarDB for PG这个版本。
在这种情况下, 用户选择的时候就必须要慎重一点, 虽然祖上都是同源, 但是在后期演变中已经开枝散叶,有了非常大的差异。而用户在选择社区的时候, 基于生态,最多需要考虑以下几点:
人员好不好找:MySQL和PG目前大行其道, 无论开发人员还是运维人员都比较容易找, 但是一些上古的数据库,比如DB2,sybase等等, 就已经很难找到性价比高的技术人员了。之前的DBA要么已经脱离战场很久, 而还在战场驰骋的都肯定是资深的专家, 出场费用不菲。
资料好不好找:国内数据库往往在文档资料上存在短板, 一个产品出来, 很多技术文档基本都是空白,或者寥寥数字,言简意赅,这就对于用户深入学习,甚至解决问题带来巨大困难, 这时候同源其他数据库的技术问题解决很可能就能有所借鉴。
问题好不好处理:Oracle 经过40年的发展, 全球千万级别的用户打磨, 基本上可以说碰到新问题的几率已经很小, 但是对于国产数据库而言, 缺乏大量用户长时间的打磨, 出现问题的几率就很高, 那么出现问题怎么快速解决, 社区支持也可以起到很大的作用。
- 好不好迁移:国产数据库方兴未艾, 谁都难以预测, 5-10年之后,大浪淘沙之后, 还有谁能傲立潮头。未虑胜, 先虑败, 数据库作为企业核心, 来不得马虎,万一出现极端情况, 同源的产品替代应该是难度最低的, 这个也是考虑的一个方面。
二、生态之生存空间
大数据技术标准推进委员会日前发布的《数据库发展研究报告(2023年)》显示,随着数字化转型深入推进,千行百业应用对数据库的需求变化推动数据库技术加速创新,全球数据库产业快速发展,我国已经迈入第一梯队。预计到2027年,中国数据库市场总规模将达到1286.8亿元,市场年复合增长率(CAGR)为26.1%。
但是在生态中, 还存在一个平衡的概念, 平衡的意思很简单, 俗话说得好, 一山不容二虎, 其深层次的原因, 在于生态链上, 一个山头的体量, 无法支撑两个生态链顶端的动物,仅能支撑一只老虎生存。同理在目前国内数据库市场上, 这个市场体量, 到底容纳多少个数据库能够健康发展?
乐观地来看, 据信通院统计, 国内市场总规模是1286.8亿元, 但是这个叫做可触达市场, 是乐观考虑, 从最终用户方考虑, 国产数据库百舸争流, 谁都不知道最后有多少能到达终点, 所以用户在替换的时候, 就变成Oracle 不买, 国产数据库浅尝辄止, 这个市场规模有可能是个可望而不可及的数字。
另一个角度出发, 对待国产数据库, 并不应该用国产就应该便宜,国产数据发展本就充满坎坷, 如果另一方面,用户通过白嫖盗版等手段,进一步挤压国产数据库的生存空间, 那么国产数据库的生态环境就变得更加恶劣了。
竞争过于激烈的时候, 我们就细分赛道, 定义出一个局部占优的场景, 把竞争对手拉到对方不擅长的场景中, 从而取得最终的胜利, 目前国内数据库发展也是按照这个防线在快速演变。按照信通院2023年的数据库行业产业图谱, 数据库产品主要分为集中式事务型数据库, 分布式事务型数据库,分布式分析型数据库,时序数据库,键值型内存数据库,图数据库, 搜索型数据库,时空数据库, 加上最近两年的HTAP数据库和向量数据库, 已经把数据库市场分为不同的几个场景,如下图所示:
今天看到一个群里有人讲了一个段子,让人印象颇深:
一个中国人在沙漠里面开了一个加油站,生意不错,然后一堆中国人也跑来开加油站,结果,大家全部倒闭了;一个犹太人在沙漠里开了一个加油站,第二个犹太人开了一个餐馆,第三个犹太人开了一家旅店,最后这里变成了一个繁华小镇。
一个完整的生态环境,应该是一个平衡的环境, 构成一个完整的生态链, 并且能够自给自足, 目前国内的生态环境, 应该还需要进一步进化。如果任由市场野蛮生长, 最终必然会有胜出, 但是这个时间会造成相当长的一段混乱时期。
有媒体采访了MySQL之父 Monty,他认为,欧洲和美国也差不多, 充斥着大量的数据库产品,一直都这样,单大多数产品无法成功。
问题在于, 如果一家大企业决定开发数据库 , 那他们肯定要努力打造一款五年、十年甚至二十年后仍然还存在的产品。MySQL 就是这样, Maria 也因为有基金会的支持, 而其他数据库, 因为缺乏这样的根基, 所以这200种产品种有99% 会在未来五年内彻底消失, 毕竟数据库市场还没有大到能够容纳得下所有。
三、其他生态建设相关
数据库不是独立存在的, 一方面最终用户使用数据库, 必然伴随着应用系统,中间件, 操作系统,硬件平台等上下游产品;另一方面在整个数据库的销售链条当中也涉及分销商,增值渠道商,独立软件开发商, 系统集成商,数据库运维合作伙伴一系列的商业链条。
另外从技术体系角度来看, 也面临着基础技术生态(C++, Rust),应用技术生态(Raft,LSM),监控运营生态(Grafana,Prometheus)等等。
从学术上来看, 又要考虑高校合作(顶会期刊与成果转化),独立应用开发商合作, 周边生态产品合作(管理工具, 调优工具, 报表工具, SQL工具)。
俗话说得好, 一个好汉三个帮, 生态建设之路的核心一方面在于取长补短,共同搭建完整解决方案, 另一方面也在于搭建足够的战略纵深,在生态竞争中获得更大的优势。
对用户来讲, 这方面的考察主要体现在如下几条:
- 兼容性:是否兼容主流的标准,主流的开发工具和报表工具;
合作伙伴:是否有足够多的合作伙伴, 已经基于该产品进行了二次开发或者加工, 有多少基于该产品的解决方案;
投资方生态:目前由于XC要求, 部分企业对于数据库厂商的持股方也有要求, 要求达到完全的自主可控。这个也算是一个附加条件;
- 案例多不多:踩着别人的脚印, 不容易踩到便便, 这个我想大家都懂。
以上是对生态的一些浅见, 同时谈生态免不了溯源, 这一部分是老生常谈了, 以下就加以整理,作为附录放在后面。
四、附录一 :溯源
目前国产数据库琳琅满目, 但是万变不离其宗, 有一大部分都是可以和DBRanking前十名搭上关系,基本上可以划分为这样几个大的阵营。
OLTP数据库市场分布图
Oracle 兼容
这个领域的主要选手是武汉达梦, 以及浪潮的K-DB数据库, 仔细看产品的功能和特性, 基本上复刻了Oracle的功能和技术数据, 如RAC 这样的核心技术。目前达梦作为国内老牌信创数据库, 正在信创道路上高歌猛进。
MySQL兼容
MySQL作为全球排名第一的开源数据库, 成立于1979年, 创始人是Monty Widenius,2008年被Sun 公司收购, 2009年Sunday公司被Oracle收购, 所以现在Oracle作为数据库市场的巨无霸, 手持商业数据库Oracle和开源数据库MySQL。
作为开源数据库, 是国产数据库最佳的学习和借力对象, 代表有国内MySQL发现版万里开源GreatSQL , 也有互联网大厂的阿里RDS, 阿里polar DB mysql版, 腾讯TDSQL,中国电信的TeleDB MySQL。最近比较上升比较快的GodenDB 也是基于MySQL开发的。
PG兼容
另外,开源界的另外一颗新星也备受大众喜爱, 这就是PostgreSQL,最近几年上升速度特别快, 有望超越MySQL成为排名第一的开源数据库, 究其原因:
一方面是MySQL存在数据量上面的瓶颈,Oracle和MySQL的差异化定位也一定程度上制约了MySQL的发展;
另一方面就是MySQL的GPL开源协议,如有第三方改源码,也必须开源,而且不允许作为闭源的商业软件发布和销售,但可以买订阅服务。使得国内数据库厂商望而生畏, 所以越来越多人选择了PG的BSD协议。典型的比如巨杉数据库, 以及Pigsty,腾讯TBase。
另外不得不说其中一个变体, 就是Open Gauss体系, 源自PG 9系列, 但是在经过一系列操作之后, 现在也作为一个独立的生态体系存在, 和open系列一样, 自主可控了, 目前国内有不少数据库也转投Open Gauss阵营, 比如人大金仓、海量、MogDB、瀚高等等。
Informix兼容
2015 年,IBM 对中国公司销售 Informix 源代码,与 IBM 签订源代码授权的公司有华胜天成、南大通用和星瑞格。这三个公司成为以引进 Informix 源代码发展国产数据库的代表。
自研分布式
最近几年, 基于LSM树的数据库,因为其优秀的写友好以及高并发, 得到不少分布式数据库的青睐, 典型的就是TiDB和OceanBase, 都是基于LSM-Tree的存储实现, 同时结合Paxos 或者Raft协议实现分布式的高可用, 在一定程度上打破了X86单机的上限, 可以通过横向扩展来支持海量数据存储以及海量的并发读写。目前在墨天轮上上升速度很快。
SequoiaDB 巨杉数据库是一款金融级分布式数据库,主要面对高并发实时处理型场景提供高性能、可靠稳定以及无限水平扩展的数据库服务。用户可以在 SequoiaDB 巨杉数据库中创建多种类型的数据库实例,以满足上层不同应用程序各自的需求。SequoiaDB 巨杉数据库支持 MySQL、MariaDB、PostgreSQL 和 SparkSQL 四种关系型数据库实例、JSON 文档类数据库实例,以及 S3 对象存储的非结构化数据实例。
五、附录二:开源协议
因为目前有不少国产数据库都基于某种开源软件, 那么比较严格的GPL和宽松的BSD协议,就会有很大的不同, 之前有人说,为什么国内PG生态的多, 就是应为GPL的传染性太强, 而PG的协议就宽松得多,下面我们也针对这几种协议简单做个归纳汇总。
◆主流开源协议
BSD协议
BSD开源协议是一个给予使用者很大自由的协议。基本上使用者没有任何限制,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
如果再发布的产品中包含源代码,那么在源代码中必须带有原来代码中的BSD协议。如果再次发布的只是二进制类库/软件,则只需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的国内数据库公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。这样就有了更大的自主控制权。
Apache协议
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和最终原作者的著作权,同样允许源代码修改和再发布。但是也需要遵循以下条件:
- 需要给代码的用户一份Apache Licence。
如果修改了代码,需要在被修改的文件中加以说明。
在衍生的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明。
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以再Notice中增加自己的许可,但是不可以表现为对Apache Licence构成更改。
- Apache Licence也是对商业应用友好的许可。使用者也可以再需要的时候修改代码来满足并作为开源或商业产品发布/销售。
该协议的优势在于:
- 永久权利。一旦被授权,永久拥有。
全球范围的权利。在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
授权免费。无版税, 前期、后期均无任何费用。
授权无排他性。任何人都可以获得授权
- 授权不可撤消。一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码,这对于面对不可预知的世界环境尤为重要。
GPL协议
GPL 全称是 GNU General Public License协议,其核心是只要在一个软件中使用(“使用”包括对类库引用,修改后的代码以及衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。
这就是所谓的GPL协议“传染性”。对于使用GPL协议的开源代码,商业软件或者开发人员对代码进行集成以及作为类库进行二次开发,在进行再发布的时候需要伴随GPL协议。
GPL 有两个属性广受关注,那就是:可修改和可盈利。
1. 可自由修改如果你想添加或删除某个功能 或者 在别的项目中使用部分代码,没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。2. 可用来盈利你可以在分发软件的时候收费,但必须在收费前,向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
木兰协议
木兰系列许可证包含“木兰宽松许可证”和“木兰公共许可证”(后续可能还有更多),均由北京大学作为牵头单位,依托全国信标委云计算标准工作组和中国开源云联盟,联合开源生态圈产学研优势团队和个体、尤其是开源法务和律师,起草、修订并发布。
木兰开源许可证第一个版本于 2019年8月5日发布,第二版本于 2020年1月发布。
2020年 2 月 14 日,开源促进会(OSI,Open Source Initiative)批准了来自中国的木兰开源许可证第二版(Mulan PSL v2),木兰许可正式成为一个国际化开源软件许可证(或称“协议”)。
BSD、MIT 类宽松许可证兼容 Mulan PSL v2 许可证;Mulan PSL v2 兼容 Apache License v2.0、L/GPLv2、L/GPLv3 等许可证。即,许可在 BSD、MIT 类许可证下的代码可以贡献到 Mulan PSL v2的项目中,许可在 Mulan PSL v2 下的代码可以贡献到 Apache License V2.0、L/GPLv2 或 L/GPLv3 等项目中。
木兰协议的主要产生背景在于之前发生的一些国际事件:
全球最大的开源软件基金会 ASF(Apache 软件基金会)的管理办法中明确说明其遵循美国出口法律,所以它旗下的所有项目亦受到美国出口法律的管制。而 ASF 旗下开源项目的名单中有许多耳熟能详的项目,比如 Kafka、Solr、Hadoop 与 Spark 等;
全球最大源码托管平台 GitHub表示:http://GitHub.com、GitHub Enterprise Server 以及您上传到任一产品的信息可能受美国出口管制法律的约束,包括美国出口管理条例(EAR)。并且实际上其已经对古巴与朝鲜等地实施限制。
而国内的OceanBase和OpenGauss也都宣称支持木兰协议。
六、写在最后
写这一篇文章的目的, 其实源于一些私下的讨论, 关于国产数据库价格的问题, 到底国产数据库怎么定价是最合理的。当然起因也是一方面用户害怕过早下注,不敢压重注投资;另外一方面也是新产品琳琅满目, 用户无所适从。
但是从生态的角度来看, 如果大家都采取这样的措施, 很有可能会导致数据库生存空间不足, 毕竟国产数据库的发展还是要靠我们自己, 喜欢的产品, 就支持他们一下吧。
本期的国产数据库选型避坑系列之生态篇就闲扯到这里, 下次再见。
【相关资料】
[1] https://mp.weixin.qq.com/s/gwhWy37SSNEDVfJW0Aenmw
[2] https://db-engines.com/en/ranking
[3] http://GitHub.com
本期嘉宾
祁国辉
前Oracle云平台事业部电信行业售前技术总监
网名"atiger",前 Oracle 云平台事业部电信行业售前技术总监。拥有超过25年数据库和数据仓库HK经验。曾创办著名数据仓库网站:www.dwway.com (数据仓库之路)。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.