去年下半年几乎大部分时间都是参与信创的项目,本来我对信创相关的内容并不是很清晰,但通过下半年的实操过后,对信创业务发展行业或多或少有了些认知。今天想说说关于我们国产数据库的事情。以下完全是我个人见解,请多多指导。
因为当我从厂商的朋友了解到第一手数据时,确实感到了惊讶。在 “国产化” 的趋势下,你知道国产数据库有多少家吗?告诉您,截至 2023 年底,中国市场上有将近 300 款数据库产品,约有 100 家数据库厂商。知名投资机构如红杉、高瓴、腾讯等纷纷下场,每家手上投资的数据库至少在 3 个以上,可见资本的青睐。一些数据库凭借自身的实力,拿下了亿元融资,中标多个项目,节节高升,成功上市;可是也有一些数据库,还在经受市场的质疑。在 16 家国产数据库相关上市公司中,盈利的寥寥无几,我一直在想,我们国内的市场,真的能容纳下这么多的数据库厂商吗?
数据库多,并不全是跟风的错目前的国产数据库市场非常繁荣,有 300 多款数据库产品和 100 多家厂商,同时也拿了大量的投资,客户也非常支持。但是目前来看,没有多少是算得上成功的、能够有国际影响力的。
我们这种巨大的投入和极低的产出,成了一个巨大的反差。现在中国已经有近 300 个数据库了,全球知名的也就几十家,中国是否已经严重过剩了,那为什么还有人不断投身其中做数据库呢?现在,国内挂名做数据库的企业,可能有上千家;有点名气的,可能有 50 家到 100 家。
这些数据库,看似多种多样,在我眼里实则 “换汤不换药”,大致可分为三到四种类型:第一种是基于 MySQL 魔改的,第二种是基于 PostgreSQL 魔改的,第三种基于 PostgreSQL 的 Greenplum 魔改的,第四种是基于 Java 的 ES 或者 Hadoop 生态圈包装,甚至都不是改的,仅仅是打包。从解决问题的角度来说,复用开源项目,只要不违反开源协议是没有问题的。
但是,对于用户来说,其实并不需要这么多同质化的选择,这只会增加选择的成本,并且谁也没有提供出别人不具有的功能,即便他们每个都说自己是不一样的。从用户的角度,真正能够享受到这一点点改进的用户少之又少。因为换一个场景,所谓的改进可能就失效了。做工程和科技的都知道,想要在某一个特定条件下证明自身的优越性并非难事,可没有一个软件能在任何情况下都保持优势。比如,有的国内竞品为了在评标中胜出,把数据特征直接记录在磁盘文件中,读取时直接获取最大值,无需计算。可问题是,谁会恰好只需要未筛选数据文件中的最值呢?
我认为真正优秀的数据库,应当站在用户的角度,切实了解用户需求。比如,有的数据库就专注于服务那些在云上资源有限的用户。这类用户多为中小企业,既没有强大的运维能力,也没有专业的数据库管理员(DBA)。而且,让他们学习动辄上千页的复杂手册来部署使用数据库,实在是强人所难,更何况像 Snowflake 这样的数据库价格不菲。但这些中小企业又有数据分析需求,于是有的数据库就针对这部分用户,让他们能够用得舒心、便宜且高效。
那为什么国内有这么多数据库呢?因为数据类型丰富多样,有向文档、关系、时序、键值、图、向量等。不同行业场景,如金融、物联网,对数据的使用方式千差万别,这就导致大家在做数据库时设计理念和目标各不相同,也是数据库数量众多的一大原因。以物联网场景为例,其中的时序数据管理就需要专门的数据库。像 Apache IoTDB,它就是针对物联网场景的数据库。其研发团队所在实验室具有工业背景,最初接触的是工业和物联网领域的数据存储,便将应用场景确定下来。起初,团队基于开源数据库 Cassandra 做业务适配,但后来发现其底层核心设计与用户需求不一致。Cassandra 更像灵活的键值存储,而用户需要偏时序操作的数据库,于是团队开始改造,直到与 Cassandra 发展目标相悖,最终独立出来,成就了现在的 IoTDB。开源闭源,都不好做在国产数据库领域,策略大致分为商业数据库和基于开源的数据库。
但有一个意思的事情:从学术机构走出的数据库研发,与从商业角度出发的研发,背景和思路几乎相反。比如,从学校开启的研发项目,没有商业项目那种紧迫的上线时间压力,更多思考的是互联网场景究竟需要什么样的数据库,可以进行更多技术方案的论证、设计和实现。后续进入 Apache 基金会并开展商业化后,就涉及如何利用开源软件养活开发者,使其持续贡献力量。基于开源数据库产品开发企业版时,企业版无需开源。Apache 协议相比 GPL 协议,更注重保护软件开发者权益,因此很多企业版软件基于 Apache 软件进一步开发。
开源软件是一种选择,基于开源软件的企业版又是一种选择,企业版往往能为用户提供更多技术保障。但拿风投的钱去做商业开源公司,就饱受争议了。高校或科研机构拿国家资金做开源项目,是回馈社会,将科研成果开放。很多前沿基础类项目,需要国家大规模科研投入和漫长实验阶段,这是商业公司难以承受的,商业公司面临的首要问题就是如何盈利。
从商业竞争角度看,追求的是不可替代性,这是盈利的前提。在数据库市场,这种不可替代性尤为重要。乙方在做项目时,容易陷入定制化陷阱,导致版本管理混乱,每个项目都独一无二,失去了产品版本的延续性和可管理性。而做开源的产品,也难以避免被他人随意定制。使用有版本管理的产品与使用定制项目,后者风险极大。可为何国内数据库市场会形成这种定制化的畸形状态呢?当没有足够强大的标准化产品时,用户需求得不到满足,就只能让用户参与产品设计。
但用户往往从自身需求出发,缺乏全局考量。比如甲方一句 “我有个简单需求,你们可以这么做……”,看似简单,实则可能让产品偏离最初设计方向,给研发带来极大困扰。国产数据库未来在何方?
所以国产数据库圈存在 “水货”,并非偶然。一方面,部分厂商过度依赖开源项目的简单改造,缺乏真正的创新,导致市场上同质化产品泛滥。另一方面,无论是开源还是闭源模式,在实际发展中都面临诸多困境,使得一些数据库难以实现真正的价值落地。
但这并不意味着国产数据库没有未来。我一直认为有任何事物有问题是正常的,其实还是要想办法真正去解决。那些真正从用户需求出发,深入特定行业场景,解决实际问题的数据库产品,才是行业的希望之星。同时,在商业模式上,无论是开源与商业结合,还是探索全新的盈利路径,都需要找到可持续发展的平衡点。对于国产数据库厂商而言,应少一些急功近利,多一些深耕细作,如此才能在激烈的市场竞争中,摆脱 “水货” 质疑,实现国产数据库行业的整体崛起。但从我目前了解的情况来看,实现起来很难......