干货:分布式数据库技术路线及方案分类
数据库的重要性:数据库作为大多数信息系统的基础设施,向下发挥硬件算力,向上使能上层应用,是IT行业中大厦的地基、飞船的引擎、更是开发者的必备武器。数据库的速度、易用性、稳定性、扩展性、成本都对企业的基础业务与增长弹性至关重要。
假如数据库从未诞生,程序员需要面对海量的数据关系与不可靠的计算机系统。而在数据库的基础上,程序员不需要重新设计复杂的系统流程保证数据处理的事务性,转而只需要增删改查CRUD的简单操作,大大降低了数据存储与处理的复杂性。
数据库的定义与分类:是按照特定数据结构组织,存储和管理数据的基础软件。分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。本篇报告从分布式架构的视角出发,多方位关注数据库行业的前沿动向。
分布式数据库概念及技术发展沿革:数据库已经经历了半个世纪的发展,经历了学术界驱动、商业化落地、论文工业实现、企业应用需求驱动等技术发展阶段。
从一开始的层面模型,网状模型,关系模型,到对象模型,对象关系模型,半结构化等,数据模型一直是数据库的核心和理论基础,而扎实的理论支撑和更佳的逻辑独立性仍然将是未来数据库的根本。
在商业化落地后,Oracle带着MySQL、微软的SQL Server等领衔关系型数据库占领市场多年。从SQL、NoSQL到NewSQL,甚至是HTAP,都在迭代中推动着业务能力的发展。
当前,云+分布式已经成为了企业极限需求的唯一解决方案,并造就了当前数据库行业的爆发期。在当前与持续的行业周期中,先进的产品与技术都需要围绕市场,才能成为最重要的竞争优势。
分布式数据库行业支撑体系:中国分布式数据库的发展取得了人口红利。而技术创新需要先进的学术研究体系,产研结合需要紧密的产业交流,行业渗透则需要紧跟时代需求的人才培训体系。
中国数据库产品图谱:中国数据库厂商分为传统数据库厂商、新兴数据库厂商、云厂商、ICT跨界厂商四类,各家提供不同的集中式数据库与分布式数据库产品中国数据库厂商及代表数据库产品传统数据库厂商达梦数据库。
分布式数据库技术路线分类:目前数据库分布式技术路线选择上,都是以解决数据容量扩展问题为首要目标,主流方案为分库分表中间件、原生分布式等,不同技术路线及产品各有优劣。
分库分表+中间件方案∶下层的单机数据库提供存储和执行能力,在多个单机数据库上封装一层中间层补充分布式能力,以统一的数据分片规则管理分布在不同数据库节点的数据,并提供SQL解析,请求转发和结果合并的能力。
共享存储分布式数据库:计算节点独立并且共享一个不带计算功能的存储集群(Shared-storage),数据存储的底层是可动态扩容的分布式高性能存储,以存算分离架构,计算层和存储层都可以动态扩缩容,并且这些分布式数据库都会对网络以及存储层的优化来保证高可用和高性能。
去中心化的分布式数据库:每个节点有独立的计算和存储功能并且节点之间不共享数据,(Shared-nothing),为了平滑的扩缩容也采用了存算分离的架构,分布式集群的每个节点都是独立节点,通过multi-paxos或者multi-raft等共识算法来保证多副本的可用性。
异构多模态化数据库数据库:的异构多模态化已经成为主流,但值得注意的是多模的发展离不开单模数据库技术的成熟化,将单模能力下沉给垂直引擎成为多模的内置能力,在不同模型的处理效率上有所侧重倾斜。
多模数据库发展现况:在DB-Engines上,可以见Oracle、MySQL、SQL Server、PostgreSQL本身都是关系型基础上支持多模的,MongoDB、Redis等也在向其它类型兼容。
多模已经成为主流,但值得注意的是多模的发展离不开单模数据库技术的成熟化,将单模能力下沉给垂直引擎成为多模的内置能力,在不同模型的处理效率上有所侧重倾斜。
多模数据库的发展:从用户的使用层面出发,在一个数据库中同时支持多模型,以更简单的数据库架构处理更多的不要求高性能的异构数据,大大提升了使用易用性、运维效率、存储成本。对不同数据类型采用统一的SQL访问接口,极大优化了数据库体验。
随着应用数据需求的多样化,单模数据库的技术成熟化,用户经常需要面对异构数据的分析。每一个应用都需要开发数据中间层来对接多种数据库,去处理模型转换、数据分发、数据同步、查询合并等一系列问题。
当大数据量在关系型,其它数据类型的分析频次不高时,一个能够面向上层的业务逻辑提供统一存储、统一访问并保证数据正确的异构多模数据库系统成为了共性需求。另外,HTAP也正是这个需求的延伸概念。
HTAP混合负载:随着业务系统接入的数据源及业务复杂性的不断增加,混合负载的需求越发普遍,数据库技术正在导向多源异构、高实时并发、多SQL标准接口的方向。
业务混合负载需求成为常态:无论是传统业务应用需求依托IOE架构通过分库分表的方式扩容,还是大数据业务应用需求依托Hadoop平台架构,两者都积聚了众多问题且难以解决,运维和使用 受限已不能满足时代需要。
随着业务系统接入的数据源及业务复杂性的不断增加,数据库技术正在导向多源异构、高实时并发、多SQL标准接口的方向。混合负载的需求越发普遍,用户希望通过统一的访问接口(如SQL),按不同的方式(如离线、在线)使用数据。
HTAP混合事务和分析处理:HTAP描述的是消除OLTP和OLAP之间的间隔,使一个分布式数据库系统既可以应用于事务型数据库场景,又可以应用于分析型数据库场景,从而满足实时业务决策的需求。
HTAP能让数据产生后马上就可以进入分析场景,但它面临最大的问题是如何把OLTP和OLAP两类互斥的工作负载更好放在一个系统上运行,并且实现资源干扰小、数据可见度高、延时短。
目前HTAP有两种方案∶分离架构和统一架构,分离架构是目前的主流方案。趋势中,云原生架构环境与HTAP系统的融合将衍生新的HTAP产品方案和技术特征。
从云托管到云原生的数据库发展趋势:数据库上云,起初借助基础设施即服务(laaS),直接将传统数据库托管在云上,关系型数据库服务(RDS)就是这样的产品。而RDS这类方案,在迁移上云的过程需要对性能和事务作出妥协,存在资源利用率低、维护成本高、可用性低等问题。于是,相比于迁移数据库上云,在云上建设数据库服务,设计出以基础云先行,从应用、中间件、数据库服务全线适应云特点的云原生数据库尤为重要。
数据库的未来发展趋势总结:分布式数据库技术已经步入商业应用的成熟期,但分布式仅是数据库众多维度中的一环,那么从长远的目光中,再将视角放诸整个数据库技术的大厦中,数据库的未来将如何发展。
开源情况:开源理念的发展经历了以Linux为代表的自由开发者运动,以Hadoop为代表的技术栈驱动社区,数据库开源生态步入了极致场景驱动社区协作阶段。
微信扫码关注该文公众号作者