国产数据库近200家!谈谈数据库技术选型
2022.08.05单机架构
单机数据库是大家最为熟悉的,提供基础数据库功能。从扩展性来说,一般只具有Scale UP的能力,通过升级硬件来进行扩展其性能。从可用性角度来看,单机的可用性有限,一般作为非核心系统或者作为研发、测试用途。
共享架构
共享架构数据库,是针对单机库的升级,通过共享存储资源,将上层计算资源实现水平扩展,可以提供更好的性能及可用性表现。从扩展性来说,其能提供计算能力的有限扩展,存储能力扩展则取决于底层存储。从可用性来看,可以解决实例级、主机级故障,提供整体可用性。
集群架构
集群架构数据库,是提供了在单机/共享模式之上的数据库架构。通过复制技术,可实现数据库主从的工作模式。从扩展性上看,这种方式可提供提供一定范围内计算资源的水平扩展,这里强调是一定范围是指计算能力不能“完整扩展”,如仅能提供只读的扩展能力。对可用性来说,通过集群可实现主出现问题时,切换到从的能力,进而提升整体可用性。
分布式架构
分布式架构数据库,近些年来很火热,其突破单机、共享、集群架构下的数据库局限。通过存算分离技术,可实现上层计算资源、底层存储资源的水平扩展,进而满足更高性能、更大容量的承载。从扩展性来看,其扩展能力要远远优于前几种架构。从可用性来看,分布式架构因其多副本技术等,原生提供了更高的可用性。但这部分的具体实现技术上有着不同的方式,下面针对这部分加以说明。
原生分布式架构
原生分布式架构,通过存算分离技术,可实现计算与存储的独立扩展。但受到其管理能力限制,一般扩展能力较后者稍差。技术上按分布式重构了整个架构,可提供全局的MVCC、标准ACID、数据强一致等能力。对于用户来说,可类似普通数据库一样去使用,无应用浸入性。在性能上,可提供很大的吞吐量,但受限于架构在响应时间上有一定劣势。此外,还有些产品通过构造第二引擎及MPP的引入,也可提供一定的在线分析能力,满足类似HTAP的要求。
分布式计算+单机引擎
这种架构利用成熟的单机引擎与上层分布式计算层的结合,可实现存算分离。其扩展能力,较前者有更大的扩展能力。技术上此类产品仅重构了部分数据库架构,可通过上层与底层的部分改造,实现全局MVCC、ACID和强一致能力。但从实现上看,并不是十分优雅。此外,这种架构是需要用户明确数据分片方法,带有一定的侵入性,但也因这点其带来较好的延时表现。在性能上,可提供很大的吞吐量。
单机计算+分布式存储
这种架构是以分布式存储为基础,在其上构建单机的计算层。通过底层存储和上层无状态计算节点的扩展能力,实现一定程度的存算分离和弹性扩展。但从整体扩展能力来看,相较于前两者,有着明显的劣势。且受限于底座能力的约束,必须满足一定的部署条件。从产品能力上看,其是非分布式数据库最为接近的,用户几乎无感。
MPP架构
大数据架构
分布式存储架构