引言

天下风云出我辈,一入江湖岁月催。

有人说,有数据库的地方,就有“江湖”。

曾经多少前辈满腔热血投入国产数据库事业中,悠悠数十载,又如白驹过隙,最终不知几家欢喜几家愁。

截止2023年8月份,墨天轮已收录286种国产数据库参与排名,国产数据库的发展表面上如火如荼、朝气蓬勃,实际上又是暗潮汹涌、危机四伏,走错一步,可能就会满盘皆输。

关于数据库江湖的“恩恩怨怨”、“爱恨情仇”,且看下面2023年8月份墨天轮中国数据库流行度排行榜。

国产数据库排名

以下数据参考自墨天轮:https://www.modb.pro/dbRank

2023年8月共286个数据库产品参与排名,前十名分别是:

1:蚂蚁集团的OceanBase数据库

2:PingCAP公司的TiDB数据库

3:华为公司的openGauss数据库

4:阿里巴巴的PolarDB数据库

5:华为公司的GaussDB数据库

6:武汉达梦公司的达梦数据库

7:人大金仓公司的人大金仓数据库

8:南大通用公司的GBase数据库

9:腾讯云公司的TDSQL数据库

10:阿里云公司的AnalyticDB数据库

数据库厂商:

通过厂商可以看到,国产数据库厂商梯度已经非常明显,前十名中,四大老牌国产数据库厂商有三家,分别是达梦、人大金仓,南大通用,均是2000年前后成立的,是研发国产数据库最早的一批,分别排名第6,7,8名。阿里系的有三个,分别排名第1,4,10名。华为有两个,分别排名第3,5名。腾讯有一个,排名第9名。

PingCAP公司2015年成立,和前面几家厂商相比,成立相对较晚,公司综合能力稍差,但数据库产品TiDB十分强劲,属于国产数据库的“黑马”,连续长时间霸榜,本月居第二名。

db-engines排行榜:

DB-Engines Ranking - popularity ranking of database management systems

420 systems in ranking, August 2023

国产数据库

通过国外db-engines数据库热度排行榜来看,国产数据库排名均偏后,其中TiDB排名103名,OceanBase排名147名,国产数据库推向全世界仍有很长一段路要走。

国产数据库统计

国产数据库数量

国产数据库产品数量几乎每月都有增长,2020年9月统计104个,到2023年8月已经增长到286个,按照市场规律,优胜略汰,预计最近几年会出现显著的下降趋势,个人认为,最终完全存活下来的国产数据库产品并不会太多,希望好用的数据库产品能够及早推广出去。

按模型统计

关系型数据库仍占主导地位,也是竞争最激烈的赛道。

模型关系型多模型键值列簇时序空间向量搜索
数量17631244157632

按处理场景统计

处理场景OLTPOLAPHTAP
数量1083329

按技术架构统计

技术架构集中式分布式
数量116137

按部署模式统计

部署模式本地部署云原生
数量20047

按开源/商业统计

开源/商业开源商业
数量48238

双雄争霸 OceanBase vs TiDB

自2020年1月起至今,TiDB累计霸榜34个月,直到2022年12月份,OceanBase终于一骑绝尘反超TiDB,摘得冠军,之后又是“极其残忍”的连续霸榜九个月,本月得分609.61,比TiDB高出了20.09分,从热度排行榜来看,OceanBase仍有显著优势。

两个数据库产品都属于分布式数据库,但具体技术实现上还是有很大差异:

简单做下对比:

不能完全说哪种技术一定优于另一种技术,适用场景不同,适合的技术也不同。

两种数据库从技术上来看,各有优缺点,例如:

分布式架构:

TiDB 存储计算分离

优点:

管理节点、计算节点、存储节点分离,弹性扩缩容能力较强。

缺点:

1.组件更复杂,维护成本高;

2.和OceanBase对等架构相比,tidb计算节点无法像传统数据库实现本地数据缓存,数据访问不能直接从计算节点本地获取,必须通过存储节点获取,当然,存储节点可以缓存,RocksDB 将存储在磁盘上的文件按照一定大小切分成 block, 读取 block 时先去内存中的 BlockCache 中查看该块数据是否存在,存在的话则可以直接从内存中读取而不必访问磁盘。

数据分片方式:

TiDB自动分片

优点:和OceanBase相比,tidb执行建表语句对开发人员透明,建表语法和MySQL兼容性高;

缺点:由于数据落地由 RocksDB存储引擎负责,读取路径长,数据被放大,需要更多的磁盘空间,对磁盘性能要求更高。

近期活动:

OceanBase近期开始举办第三届数据库大赛,很多高校参与,提高了数据库知名度,国产数据库的竞争后期可能会发展成国产数据库人才的竞争,这对OceanBase后期发展会有很大帮助。

OceanBase 作为完全自研的国产分布式数据库,已连续举办两届数据库大赛,第三届大赛全新升级为全国大学生计算机系统能力大赛,已于 2023 年 8 月 14 日启动报名。

本届大赛由系统能力培养研究专家组发起,全国高等学校计算机教育研究会 、系统能力培养研究项目发起高校共同主办, OceanBase 承办,面向高校学生,旨在以学科竞赛推动专业建设和计算机领域创新人才培养体系改革,大赛鼓励学生设计、实现综合性的计算机系统,培养系统级的设计、分析、优化与应用能力,提升学生的技术创新与工程能力、以及团队协作能力。大赛服务国家人才培养战略,以赛促学、以赛促教,为高水平计算机人才成长搭建交流、展示、合作的开放平台。奖金极其丰厚。

国产数据库选型思考

国产数据库选型有哪些关注点:

注意:以下仅代表个人观点

以传统金融交易类系统国产数据库选型为例(银行支付类系统等):

1.数据库类型

必须是关系型OLTP数据库,最好具有核心金融交易型系统成功案例,一些边缘非核心系统的替换并没有太多的说服力。

可以排除掉非关系型、OLAP类型数据库,其中非关系数据库110个,关系型数据库中OLAP数据库33个,一共去掉了143个数据库,正好排除了一半的国产数据库。

2.数据库架构

支持单机、主备、共享集群、分布式集群架构。

数据库架构的演进过程,也是数据库使用需求的演进过程,最早还没有容灾、高可用、RTO、RPO等需求时,单机架构就能满足基本业务需要,之后有了容灾的需求,引入主备,有了高可用的需求,引入共享集群等,数据量业务并发负载过高后,又引入了分布式集群。

对于一些小型公司或小型系统,并发负载、数据量并不大时,主备架构基本可以满足业务需求,没有必要使用分布式集群架构,特别一些初创型公司,起初业务量很低,考虑软硬件成本、维护成本,主备架构完全可以满足需求。

可能有人会说国产数据库替换本来就是面向大型企业,小型企业可以完全选择开源数据库。

但是有些时候,应用程序是和数据库绑定的,比如小型企业购买的一套OA系统只支持TiDB国产数据库,不支持指定的开源数据库。还有小型公司也是在逐渐成长的,随着业务规模的增长,数据库架构可能会由主备架构逐渐替换到分布式架构,这时公司只是希望更换数据库架构,而不是更换数据库产品。

目前来看,有些国产数据库,只支持分布式架构,不支持单机、主备、共享集群等架构,这对一些小型企业或小型系统并不友好,比如OceanBase在4.0版本之前只支持分布式数据库,搭建一套需要极高的硬件成本,在2022年8月10日,OceanBase年度发布会上,版本代号为“小鱼”的OceanBase4.0正式发布,这是业内首个单机分布式一体化数据库,它实现了单机部署并兼顾分布式架构的扩展性与集中式架构的性能优势,不仅一举突破了分布式数据库单机性能的瓶颈,实现了单机性能赶超集中式数据库的行业历史性“跨越”。更关键的是,它还具备了更低的部署成本和运维复杂度,灵活满足不同使用场景需求,极大降低了中小企业使用分布式数据库的门槛,让分布式数据库在千行百业中实现“普惠化”夯实了基础。

也希望,国产数据库厂商,在研发数据库产品时,多为中小型公司考虑。

所以希望选择的国产化数据库架构同时支持单机、主备、共享集群、分布式集群等多种架构,以便可以应对公司发展的各个阶段。

3.硬件需求

国产数据库替换成本中,硬件成本成本占很大一部分,对于客户,希望替换后硬件投入成本不能比之前的成本高出太多。

比如之前系统主要使用oracle dg架构,只需要两台虚拟机,最低配置4C 8G 100GB就可以将系统运行起来,如果准备替换国产数据库硬件投入是原来的5倍、10倍、更高,甚至还要考虑机房的扩建,一般的小型企业是很难接受的。

如果考虑集中化部署,几十或几百台服务器搭建一个大的数据库集群供给所有系统使用,试错成本又太高,初期在企业对国产数据库还没有充足信心的情况下,不敢冒然将所有系统替换到一套大型国产分布式数据库上。

所以希望选择的国产化数据库最小化安装硬件需求低,硬件资源成本低。

4.部署方式

支持私有化部署

部分云原生数据库,只能运行在特定厂商公有云上,这会导致数据库和云供应商完全绑死,商业谈判部分会非常被动,而且很多公司出于数据安全的考虑,并不希望将自己公司的数据放到公有云上。

所以希望选择的国产化数据库需要支持私有化部署。

5.墨天轮热度

1.墨天轮热度排行靠前

墨天轮国产数据库流行度排行得分规则是按照搜索引擎、趋势指数、三方评测、生态、专利数、论文数、招聘岗位数、书籍、Gartner市场份额排行及魔力象限等综合因素算出的,如果分值很低,可能有几个原因:

(1)新加入墨天轮榜单;(2)新研发的数据库产品;(3)宣传力度低;(4)用户群体少;(5)过于小众;(6)技术社区较差。

不管哪种原因,作为技术人员,很难通过多方面因素评估分值低的国产数据库各种适配性。

所以国产数据库选型可以考虑先只重点关注墨天轮热度排名前20,分数低的试错成本会更高。

按分数大致分一下热度梯队,这是所有分类数据库总排行榜,如果评估某一类型数据库,可以按类型筛选后在进行评估。

T0 荣耀王者:大于等于500分

OceanBase(609.61)、TiDB(589.52)、 openGauss(582.52)、 PolarDB (576.69)、GaussDB(570.75)

T1 最强王者:大于300 小于500

达梦(482.95)、人大金仓(451.51)、GBase(364.75)、 TDSQL(344.63)

T2 至尊星耀:大于100小于300

AnalyticDB(213.10)、AntDB(165.68)、TDengine(109.06)、GoldenDB(101.32)

T3 永恒钻石:大于50小于100

神舟通用(78.81)、MogDB(71.55)、Doris(68.08)、DolphinDB(64.65)、Kyligence(60.62) ......

T4 尊贵铂金:小于50

万里数据库、KunDB、SelectDB ......

6.官方技术文档

希望有成熟的官方技术文档。

例如有详细的各种架构各种平台下的安装部署文档、升级文档、补丁维护文档、备份恢复文档、体系结构文档等,技术文档方面,希望最终能向Oracle看齐。

2022年10月份,我在公众号“IT小Chen”发表过一篇文章《国产数据库官方技术文档对比(备份恢复部分)》,针对六家热门国产数据库(TiDB、达梦、OcenBase、openGauss、GaussDB、GBase)备份恢复技术文档进行对比,其中GBASE、DM、TiDB数据库关于备份恢复的技术文档相对好一些,至少不会马上将人劝退,openGauss相对差一些,OceanBase、GaussDB这方面的技术文档缺失很严重,技术细节、原理等部分描述很少,过去了将近一年了,不知道现在是否有所改善。其他数据库厂商,很多对文档设置大量限制,比如成为内部客户才有查看计算文档的权限,甚至有些国产数据库没有技术文档。

所以希望选择的国产化数据库官方技术文档要足够详细,这样技术人员才会有足够的信心去学习和推广。

7.售后服务质量

希望有完善的售后服务。

比如某类国产数据库使用过程中出现严重bug或客户有新的需求,研发团队多久可以修复和版本迭代,按照客户重要级别、BUG级别等,售后都应该有一套完善、快速的解决方案。

由于国产数据库数量增长过快,会出现技术人员短缺的问题,在接触几次国产数据库技术人员时,发现部分售后技术人员并不具备数据库基础,无法区分一些基础的数据库概念,甚至对数据库运维的重要性知之甚少,可能有些数据库厂商,为了尽快招聘到大量的技术人员,会招聘一些零数据库基础的人员,经过2-3周本公司数据库产品的培训,就派到各个项目支持,这在几年前是无法想象的,还记得以前DBA招聘时,公司非常看重年龄和工作经验,太年轻很难找到DBA工作,没有一定的经验,公司不敢将重要数据放在你那里管理。现在似乎反过来了,年纪稍大一些就会被嫌弃,年龄卡的死死的,一线技术人员越来越难了。

8.数据库认证

希望有国产数据库认证

例如达梦数据库的DCA、DCP、DCM,南大通用数据库的GBase 8s、GBase 8a、GBase 8c认证等。

在参加数据库认证过程中,会更加了解此类数据库产品,对数据库选型做出更合理的判断。

当然,每家国产数据库厂商数据库认证培训能力各不相同,其中个人感觉国产数据库认证相对专业的有达梦、GBase,其他认证没接触过,暂不评论。

其中南大通用公司GBase 8s、GBase 8a、GBase 8c认证,可以免费获取,培训视频、文档详尽,有专门的微信群答疑,整体的培训、考试过程非常友好。

9.自主可控

希望国产数据库都能做到类似“九阳真经”一样,面对任何BUG、需求都不担心,他强由他强,清风拂山冈。他横任他横,明月照大江。他自狠来他自恶,我自一口真气足。

自主可控,可以借鉴其他数据库,但不建议直接使用现有的开源或商业数据库,也就是通过分布式代理中间件加开源数据库整合成新的分布式数据库。

几乎所有国产数据库对外宣传都是完全自主可控,但当数据库产品出现BUG时,并不是每家厂商都有能力快速定位和修复BUG。

一直比较疑惑这类国产数据库,直接引用现有的开源数据库,比如数据层直接使用的MySQL数据库,其他计算层、调度层可能是自研的,这类国产数据库不清楚算不算纯粹的国产数据库。此类数据库在出现MySQL重大BUG时,是否需要等待甲骨文等官方进行解决?还是厂商可以自己修改修复MySQL当前版本BUG,不清楚这么做是否会和GPL开源协议冲突,这一块了解比较少,不做讨论。

10.公司性质

国企/私企,大厂/小厂

厂商最好是国企或大厂

国产数据库厂商之间竞争异常激烈,对于一些小公司,如果后期经营不善,有倒闭的风险,如果正好使用这家数据库产品,后期的维护、迁移、替换也要付出很大代价,选择国企或大厂公司,能很大程度避免此类问题发生。

11.客户群体

最好具有核心金融交易型系统成功替换案例,一些边缘非核心系统的替换并没有太多的说服力。

12.POC

国产数据库选型通常都会有POC测试环节,这一块非常重要,POC测试如果不通过,没人会愿意去承担风险。

数据库厂商和公司技术人员联合对安装部署、高可用、容灾、备份恢复、数据迁移、数据库同步、语法兼容等多方面进行充分的测试,会根据最终测试分数来评定此类数据库是否满足公司要求。

13.费用

合理的费用

包括软件、硬件、技术支持等费用。

14.运维成本

1.语法兼容性高

例如OceanBase分布式数据库,建表时需要手动指定分区键,对于开发人员来讲,改变了建表习惯,需要增加一定的学习成本,如果涉及数据库迁移,也会有额外的调整语法的工作量,如果分区键指定不合理,后期可能会出现性能问题,增加了运维人员优化数据库的工作量。

相对来讲,TiDB语法兼容性更高一些,建表时不需要手动指定分区键,数据分布是底层自动实现的。

2.运维方式兼容性高

对于DBA来讲,运维方式兼容性越高,掌握起来越快。

对我来说,熟悉度较高的数据库有Oracle、MySQL,较低的有PostgreSQL,而informix数据库之前接触的就更少了。

所以本人对一些基于Oracle、MySQL研发的国产数据库上手更快一些,特别是体系结构、数据字典、备份恢复、高可用架构等相似度很高,例如达梦数据库,一些问题解决的思路和Oracle非常相似,触类旁通。而基于informix数据库国产数据库学习难度略大一些,此类问题一旦出现问题,由于个人没有一定的informix数据库知识储备,很难通过类比informix数据库来解决类似的问题。

15.版本迭代

有稳定的版本迭代

例如几个月一次小版本迭代,几年一次大版本迭代,有稳定的版本迭代周期。

如果一个数据库产品版本多年长时间一直都没有迭代更新,可能会有以下几个原因:

1.产品出道即巅峰,零bug,并且满足客户所有需求(实际上不会存在)。

2.产品客户少,没有深度用户,BUG、需求反馈率低。

3.研发团队能力较弱,产品更新周期长。

所以希望选择的国产化数据库要有稳定的版本迭代。

总结:

墨天轮平台每月发布的国产数据库热度排行榜为我们进行国产数据库选型提供了很好的参考价值,可以辅助指导我们做出更客观的判断。

对于一个新产品的发展,客户群体越庞大、越复杂,需求就会越多,产品也会越来越完善,相反,如果一个国产数据库产品,只有个别几家客户,甚至只是公司内部使用,使用场景少,业务模型也有局限性,试错成本就会很高,这也是不建议考虑直接使用墨天轮热度排行榜排名特别靠后产品的原因。

个人认为,理想的交易类OLTP国产数据库应具备以下特点:

属于OLTP类型数据库,数据库厂商具备国企或大厂背景,架构支持单机、主备、共享集群、分布式集群等,硬件资源需求低、硬件成本低、完全自研、自主可控,具备完善的售后支持能力,数据库产品热度高,官方技术文档成熟,具备官方技术认证,具备银行类核心系统成功替换案例,完全通过公司内部POC测试,具有稳定的版本迭代,费用成本适中、语法和运维等使用习惯兼容性高等。

目前还没发现百分百完美的国产数据库产品,当然金无赤足,人无完人,没有完美的产品,只有适合的产品。在国产数据库选型当中也需要有一定的取舍,比如有些关键点是必须满足的,例如必须是OLTP类型数据库,如果错选成了OLAP类型数据库,业务的稳定性、数据库的完整性、一致性可能会出现重大破坏。而有些关键点可以适当放宽,例如运维方式兼容性等,可以将每个关注点设置相应的权重分数,最终根据总得分来选择适合的国产数据库。


原文链接:https://www.modb.pro/db/1693833019517915136

声明:本文为为墨天轮社区特约作者 陈举超独家供稿,内容原创,仅代表作者个人观点,欢迎大家交流、讨论。如需转载请联系作者或墨天轮官方。如您对上述内容有意见和建议,请在下方评论区指点和交流,或点击作者墨天轮主页留言。

更多精彩内容尽在墨天轮技术社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、活动直播、在线课程、文档阅览、资源下载、知识分享及在线运维为一体的统一平台,持续促进数据领域的知识传播和技术创新。

Logo

数据库是今天社会发展不可缺少的重要技术,它可以把大量的信息进行有序的存储和管理,为企业的数据处理提供了强大的保障。

更多推荐