数据库行业专题研究:信创正当时,国产数据库发展提速
2022.11.18产业概览:关系型数据库占主流,分布式时代加速到来
数据库是信息系统运行的关键基础。从定义来看,数据库是按照一定的数据结构组织、存 储和管理数据的仓库,在计算机中一般由一个或者一组文件构成;从本质来看,计算机解 决的是数据计算和数据处理问题,数据库则是计算机应用系统中的专门管理数据资源的系 统;从架构上看,数据库作为计算机三大基础软件(操作系统、数据库、中间件)之一,向下可充分发挥硬件算力,向上支撑上层的应用需求,是信息系统高效运行的关键基础。
数据库软件的核心是数据库管理系统。数据库作为基础软件,可面向多种应用,被多个用 户、程序共享,其中数据库管理系统(DataBase Management System,DBMS)负责搭 建、处理、维护数据库的数据及数据间逻辑关系,由外部组件集与内核组件集共同组成:1)外部组件集:以数据库配套的独立支撑软件为主,例如数据库驱动;2)内核组件集:一般 可以分为管理组件、网络组件、计算组件、存储组件四大模块。
产业复盘:变革与数据需求相协同,发展迈入后关系型阶段
自 20 世纪 60 年代以来,数据库行业随信息技术发展而快速演变,主要经历了三大阶段: 1)前关系型阶段(1964-1970):1964 年查尔斯·巴赫曼(Charles Bachman)开发出第一 个数据库管理系统,网状数据管理系统 IDS(Integrated Data Store)初步成型;随后为解 决阿波罗登月计划所需的大量数据,1968 年 IMS(Information Management System)系 统作为最早商业化的 DBMS 正式发布;此阶段数据库主要解决了数据独立存储、统一管理、统一访问的问题,实现了数据与程序分离,但缺乏被广泛接受的理论基础; 2)关系型阶段(1970-2008):1970 年,员埃德加·科德(Edgar F. Codd)发表《大型共 享数据库的数据关系模型》,关系型模型理论被初步提出;随后关系型数据库(Relational Database Management System,RDBMS)诞生,国际标准组织将 SQL 作为国际数据库 标准语言,并进行标准化,SQL 成为关系型数据库主流语言并引领变革,Access、MySQL、PostgreSQL 等大批关系型数据库诞生,带动关系型数据库完成了从理论到实践的转换; 3)后关系型阶段(2008-至今):随着 Web 2.0 的到来,数据量出现指数增长,传统关系型 数据库无法有效对应日新月异的数据类型及业务场景,为更有效地处理海量数据,应对多 样的数据结构,NoSQL、NewSQL 等非关系型数库脱颖而出,数据库迈入第三发展阶段。
根据数据结构、架构模型、业务负载特征的不同,数据库可划分为不同类别。为了更清楚 的了解数据库之间的特性差异,数据库产品可依照不同标准进行分类,常见的分类依据包 括数据结构、架构模型、业务负载特征、部署方式等,其中数据结构类型是最常用的标准。1)根据数据结构类型:可分为关系型数据库、NoSQL 数据库、NewSQL 数据库; 2)根据架构模型:可分为集中式数据库、分布式数据库; 3)根据业务负载特性:可分为 OLAP 数据库(分析型数据库)、OLTP 数据库(事务型数 据库)、HTAP 数据库(混合型数据库)。
按数据结构分类:关系型、NoSQL、NewSQL
数据库的数据结构类型随存储需求变化而不断拓展。最早的数据存储需求主要来源于结构 化数据,因此数据库产品多采用关系型架构,主流产品包括:Oracle、MySQL、PostgreSQL 等;2000 年以后随着互联网应用的快速普及,产生大量非结构化数据的存储需求,NoSQL 数据库快速兴起,主流产品包括 Redis、MongoDB 等;后来为解决 NoSQL 数据库缺乏强 一致性及事务支持的问题,NewSQL 数据库逐步发展,主流产品包括:Spanner、TiDB 等。
1)关系型数据库
关系型数据库是由多个二维表所组成的集合。关系型数据库,是指采用了关系模型来组织 数据的数据库,数据以行和列的形式进行存储,这一系列的行和列被称为表,一组表组成 了数据库。表格之中每一行通过独有的主码(Primary Key)来区分彼此,每一列都拥有统 一的数据类型,外码(Foreign Key)通常与主码(Primary Key)一起使用,用于建立表与 表之间的联系,通过匹配外码以寻找相应的行。
关系型数据库具备 ACID 特性,为主流数据库类型。关系型数据库严格遵循原子性 Atomicity、一致性 Consistency、隔离性 Isolation、持久性 Durability(以上简称 ACID 特性),在维护 数据库完整性、数据一致性方面优势突出,适用于对数据安全性、事务支持高度要求的应 用场景。1)原子性:为避免不同指令之间的冲突,数据库中的事务执行被视为原子不可再 分,指令要么全部成功执行,要么失败而保持原状;2)一致性:为确保业务逻辑一致性,数据库设置约束与触发器保证数据库完整性,任何事务看到的数据总保持一致;3)隔离性: 数据库通过加锁,保证事务之间相互隔离,从而避免脏读、幻读等;4)持久性:为避免数 据库丢失等意外事故,数据库所有指令都将会被永久保存,不会被回滚。
2)NoSQL(Not Only SQL)数据库
NoSQL 数据库尝试解决关系型数据库的扩展可用性缺陷。不同于关系型数据库,NoSQL 数据库只遵守 BASE 模型:基本可用 Basically Avaliable、软状态 Soft state、最终一致性 Eventual consistency:1)基本可用:当系统出现故障时,NoSQL 数据库不像关系型数据 库一样进行强制拒绝,而是允许损失部分可用功能或降低响应速度,以保证核心功能可用; 2)软状态:在处理数据过程中,允许数据状态出现暂时不一致的情况;3)最终一致性: NoSQL 数据库只追求最终的结果一致,数据处理的过程中暂时不一致将被允许。NoSQL 数据库解决了关系型数据库刚性架构的拓展性缺陷,NoSQL 的动态架构可实现横向扩展。
NoSQL 数据库更适用于海量数据的快速读写场景。NoSQL 概念早在 1998 年就已经被 Carlo Strozzi 提出,21 世纪初才进入规模化发展阶段,主要原因在于 2008 年互联网进入 Web 2.0 时代,大量非结构化数据出现,数据量呈现指数型增长,传统的关系型数据在非 结构化数据处理、海量数据快速读写、数据库扩展等方面的劣势逐渐暴露,因此,基于 BASE 特性的 NoSQL 架构被重新提出并得到快速发展,MongoDB、Redis、HBase 等 NoSQL 数 据库逐步进入大众视野,并实现了在电商、社交网络、搜索引擎等领域的应用落地。
常见 NoSQL 数据库主要包括键值型数据库、列族数据库、文档数据库、图数据库: (1)键值型数据库:适用于内容缓存,如会话、配置文件、参数等。其扩展性高,灵活性 好,大量操作时性能高,但数据无结构化,查询方法单一; (2)列族数据库:适用于分布式数据存储与管理,将同一列数据存在一起,可扩展性强,查找速度快,复杂性低,但功能局限; (3)文档数据库:适用于存储文档数据,数据结构灵活,但缺乏统一查询语法; (4)图数据库:适用于图像数据、社交网络、推荐系统,专注构建关系图谱,支持复杂的 图形算法,但只能支持一定的数据规模。
3)NewSQL 数据库
NewSQL 数据库实现关系型数据库与 NoSQL 数据库的优势整合。尽管 NoSQL 数据库处 理数据的速度快,常用于处理海量数据,但 NoSQL 数据库并不遵守 ACID 原则,无法满足 事务一致性要求。2011 年,Matthew Aslett 提出 NewSQL(可横向扩展的 OLTP 关系型数 据库)概念,2012 年谷歌公司发布 Spanner 与 F1 论文,用原子钟和 Truetime API 解决分 布式问题,推动 NewSQL 快速发展。NewSQL 架构旨在整合关系型数据库与 NoSQL 数据 库的优势:1)保留 NoSQL 数据库对海量数据处理的速度与可扩展性;2)采用以 SQL 为 主要接口的关系数据模型,保持传统关系型数据库的 ACID 特性。近年来 NewSQL 数据库快速发展,主要包括三类发展路径:1)基于全新的架构设计,代 表产品为 Google Spanner、SAP HANA;2)基于分片中间件,代表产品为 ScaleArc;3)基于云服务商的 DaaS(database-as-a-service)平台,代表产品为 Amazon Aurora、ClearDB。
关系型数据库与非关系型数据库各有千秋。对比来看,1)关系型数据库:严格遵守 ACID 原则,具备较强的约束性以及数据完整性,利于数据库的管理的同时也导致数据库难以扩 展,在业务快速发展的信息时代存在一定的成本劣势;其二维的数据结构减少了数据的冗 余,但读取海量数据效率不理想;作为传统数据库,关系型数据库发展时间长,技术成熟,学习成本低;2)NoSQL 数据库:遵守 BASE 原则,相较于关系型数据库,更便于扩展,储存模式简单,查询速度更快;但其极高的可用性在一致性上做出了妥协,使用成本较高 且不利于管理,相关技术具备较高的成熟度;3)NewSQL 数据库:在底层解决了事务一 致性问题,并整合了 NoSQL 在可扩展性、可用性上的优势,但 NewSQL 技术较新,学习 成本较高,且目前大多 NewSQL 只适用特定场景,距离普及还需要一定时间。
按架构模型分类:集中式架构、分布式架构
集中式数据库指将信息存储、维护在单个位置的数据库。集中式数据库利用系统中心的服 务器统一管理所有资源,对数据进行集中储存及管理,并由一台机器作为服务器。由于集 中数据库的所有数据仅存储在单个位置,因此在数据访问、协调、管理方面具有突出优势,同时相较于其他数据库成本更低,为大多数企业最开始的选择。但随着数据存储需求的变 化,集中式数据库的缺点逐渐显现:1)难以扩展:只能通过提升硬件性能实现数据处理性 能的提升;2)容灾性差:集中式数据库采用完全共享(Shared-everything)架构,一旦任 何环节发生系统故障,整个数据库系统都将无法使用。
常见的集中式数据库架构,主要包括一主多备、一写多读、多写多读三类:1)一主多备(备 用不可读):使用单台主机模式部署,其他备机为主机备份数据,并在主机宕机的情况下代 替主机提供服务;2)一写多读:一个节点提供写服务,其他多个节点提供读服务,写节点 宕机时,读节点可以代替写节点来提供服务;3)多写多读:多个计算节点共享存储,每个 节点都提供读写服务,同时采用分布式锁或集中式锁解决写冲突。分布式架构逐渐成熟,主要解决集中式架构扩展性差的问题。不同于既重视数据库统一处 理数据的架构,分布式数据库将数据分散在多个相互连接的节点上,通过使用多台机器,将需要处理的数据、工作均衡分散到各个节点中,各节点相互连接又能够独立工作,节点 故障不会对其他节点产生影响。因此,近年来随业务拓展与数据体量变大,分布式架构成 为众多企业的选择。分布式数据库涵盖两大核心技术:1)数据的复制/分区:通过复制或分 区实现数据的多节点存放,复制包括主从复制、对等复制,分区包括垂直分区、水平分区 (即分片);2)分布式事务:通过机制设计保证分布式环境下事务的 ACID 特性,包括两 阶段提交(2PC)、三阶段提交(3PC)、最大努力通知等解决方案。
分布式数据库技术路线选择上,都是以解决数据容量扩展问题为首要目标,主流方案包括 三类:1)分库分表+中间件:下层的单机数据库提供存储和执行能力,在多个单机数据库 上封装一层中间层补充分布式能力,以统一的数据分片规则管理分布在不同数据库节点的 数据;2)共享存储架构:计算节点独立并且共享一个不带计算功能的存储集群 (Shared-storage),采用存算分离架构,计算层和存储层都可以动态扩缩容;3)去中心化 架构:每个节点有独立的计算和存储功能,采用存算分离架构,并且节点之间不共享数据 (Shared-nothing),分布式集群的每个节点都是独立节点。
按业务负载分类:OLAP、OLTP、HTAP
OLAP 为分析型数据库,OLTP 系统为事务型数据库。按业务负载类型区分,数据库大致 可以分成两大类:联机事务处理 OLTP(On-Line Transaction Processing)、联机分析处理 OLAP(On-Line Analytical Processing):1)OLTP 是传统的关系型数据库的主要应用,主 要是基本的、日常的事务处理,记录即时的增、删、改、查,例如银行交易;2)OLAP 是 数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查 询结果,典型的应用就是复杂的动态报表系统。
发展趋势:数据、计算双重变化加速分布式数据库时代到来
数据库的发展与计算载体紧密相关。数据库是计算机行业的基础核心软件,所有应用软件 的运行和数据处理都要与其进行数据交互。数据库的开发难度,不仅体现在与其他基础器 件的适配,更在于如何实现对数据高效、稳定、持续的管理。从数据库的发展历程来看,计算架构的变化,计算载体的变化、计算场景的变化,以及计算数据格式的变化都对数据 库的发展带来一定影响。或者说,在以上计算环境变化下,其需要的数据库类型也发生了 变化。从计算载体来看,数据的计算从原来的大型机、到小型机、个人电脑 PC、互联网、移动互 联网、云计算,以及未来更多终端的物联网智能终端。计算的载体更加多样化。从计算场景来看,数据计算也从单独的单机计算,到互联网多群体交互的联网计算和云计 算,以及万物互联的高并发、低时延的物联网计算。从计算架构来看,传统的 IT 架构也正逐步向云架构迁移。我们也经历了从 C-S 架构到 B-S 架构,而目前的云原生、分布式计算架构正对传统计算架构带来深刻变革。而新的计算架 构也对计算的基础软件(操作系统、数据库、芯片等)提出更高的需求。
在以上计算环境的变化下,我们看到,联网的数据也在发生深刻变化。数据的大小。目前联网数据量也在高速增长。通信技术的发展带动从 2G 到 3G、4G、5G 的演进,每代通信技术之间,联网的数据规模也呈现(几个)数量级的增加。对大容量、高性能计算提出更高要求。数据的类型。计算场景的演变,我们对数据的定义也在发生变化。图片、语音、视频等非 结构化数据成为增量数据的主要类型。联网的数据类型也逐步从原来的结构化数据到非结 构化数据演变,这就对计算的并发性提出了更高的要求。数据的快慢。对数据的高速计算是计算机一直以来的追求。但原有的 IT 架构下,计算速度 的提升存在一定的物理条件限制。经典的 IT 架构已经存在了几十年的历史,当时的 IT 架构 并没有完全考虑到目前计算场景的变化。因此,新的计算场景下,对数据高速计算的追求,需要我们从底层基础软件的变革开始。我们看到无论芯片、操作系统还是数据库,都在经 历深刻变革。
全球关系型数据库市场增速渐趋平稳。近年来受数据量激增以及数据类型不断丰富影响,传统关系型数据库的流行程度呈下降趋势,据 DB-Engines 数据显示,近 24 个月关系型数 据库的市场流行度下降 8.23pct,市场增速逐步趋于平缓,据 T4.ai 预测,2018-2022 年全 球关系型数据库市场规模复合增长率为 6%,较 2012-2017 年的 11%或将有所下降。非关 系型数据库的市场份额占比快速提升,根据 Gartner 2021 年发布的《全球数据库管理系统 (DBMS)市场报告》,2021 年全球非关系型数据库的市场收入达 148 亿美元,占总体数 据库市场的 19%,相较于 2017 年 8%的市场占比,非关系型数据库的市场份额显著提升。
全球数据量激增,分布式数据库机遇显现。随着智能移动手机普及、云计算的兴起以及互 联网的快速发展,全球数据量不断攀升,据 IDC 数据显示,全球数据量已从 2010 年的 1.2ZB 增长至 2020 年的 59ZB,复合增长率高达 47.63%。据 IDC 预测,2025 年全球数据量将进 一步增长至 175ZB,2020-2025 年复合增长率为 24.29%。随着数据量上升,全球数据库规 模快速增长,据 Gartner 预测,2024 年全球数据库市场规模有望突破千亿美元,2018-2024 年复合增长率为 13.78%,同时大数据分析、高并发计算、非结构化/异构数据处理的需求日 益显现,分布式数据库兼具拓展性与高可用性,或将成为数据库行业新的增量市场。
在非结构化数据与高并发计算需求的推动下,分布式数据时代加速到来。在计算、数据的 双重变革下,我们认为,数据库行业的发展演进也将经历重要的技术变革。在传统计算环 境和数据类型方面,传统的关系型数据库依然发挥着重要的作用;但面向未来新的计算场 景与数据需求,数据库产品亟需进行技术升级以适应下游需求的变化,通过统计国内外典 型数据库厂商的技术路线及产品体系变化,我们判断,数据库行业已进入以云数据库、分 布式数据库为代表的 3.0 阶段。
竞争格局:海外数据库先发优势突出,国产数据库快速发展
全球数据库产业呈现海外厂商主导的典型特征。相较海外厂商来说,国内数据库研究起步 较晚,大约是 20 世纪 90 年代改革开放以后才开始进入萌芽阶段,该阶段数据库研究主要 源自国家的相关研究计划或者大学科研需求,缺乏实际的业务场景驱动,因此数据库技术 发展较为缓慢。从全球市场来看,以 Microsoft、Oracle 为代表的海外数据库数据库厂商仍 占据绝大部分市场份额,处于绝对领导地位,根据 Gartner 发布的《2018 年全球数据库研 究报告》,全球共 14 家企业入选事务型数据库魔力四象限(中国仅 1 家入榜),19 家企业 入选分析型数据库魔力四象限(中国仅 3 家入榜),处于领导者象限的企业均为海外厂商。
根据 Gartner 发布的《全球数据库市场份额报告 2021》,微软连续两年市场占有率排名第一,2021 年占全球市场份额 24.0%,与 2020 年相比略有下降;亚马逊云科技 AWS 市场占有 率排名上升,主要受其云数据库产品快速增长带动,2021 年 AWS 云数据库产品同比增长 42.3%,约为全球云数据库市场增长率 22.3%的两倍;Oracle 数据库市场占有率排名略有 下降,2021 年占全球市场份额 20.6%,主要由于 Oracle 云数据库增速远低于市场增速。
国产数据库国际影响力快速提升:1)云数据库表现优异: 2019 年 OceanBase 数据库打 破数据库基准性能测试(TPC-C)世界纪录,且于 2019-2021 年连续三年稳居首位;2021 年阿里云、华为云数据库产品分别入选 Gartner《全球云数据库魔力象限报告》领导者象限、特定领域者象限;2)非关系型数据库受国际认可:根据 DB-Engines 发布的数据库管理系 统受欢迎程度排名,2021 年 2 月,智臾科技 DolphinDB 荣登时序数据库排行第 10 位,2022 年 10 月,智臾科技 DolphinDB、涛思数据 TDengine、阿里 TSDB,依次位列时序数据库 排行第 9、13、35 位;2021 年 5 月,欧若数网 Nebula Graph、华为云 GraphBase、百 度智能云 HugeGraph 图数据库,依次位列图数据库排行第 15、28、30 名。
数据库产品包含开源数据库、商业数据库两种商业模式。其中,商业数据库收费方式主要 有两种:1)本地部署:本地部署的商业数据库,一般采用 License 订阅方式收费,一般按 用户数或者按 CPU 数定价,按年订阅,以 Oracle 为典型代表;2)公有云部署:公有云部 署的商业数据库,除了 License 收费还可采用 SaaS 收费方式,用户可按用量付费,按年/ 季度/月收费,以 Snowflake 为典型代表;开源数据库供用户免费使用,主要商业模式包括 三种:1)完全开源式:借助基金会完全托管,以 HBase 为典型代表;2)开源版本和商业 版本分别运营:通过运营开源版本社区积累人才、应用场景、市场品牌等,再通过售卖商 业版本获取利润,以 TiDB 为典型代表;3)先开源后闭源:运作前期通过开源社区优化产 品与品牌,之后停止社区的维护将产品闭源商业化,以 Neo4j 为典型代表。