【TechWeb】4月26日消息,SphereEx 公司创始人 & CEO张亮发表文章称,碎片化是数据库领域的大势所趋,单一品类的数据库无法适用于所有场景,只能适用于某一种或某几种擅长的场景。
Database Plus 是一种分布式数据库系统的设计理念,旨在碎片化的异构数据库上层构建生态,在最大限度复用数据库原生存算能力的前提下,进一步提供面向全局的扩展和叠加计算能力。
Database Plus 采用了既重视传统数据库的实践经验,又适配于新一代分布式数据库的设计理念。无论是集中式还是分布式的数据库,Database Plus 都能复用数据库的存储和原生计算能力,并在其基础之上提供全局化的能力增强。
他表示,目前,Apache ShardingSphere 遵循 Database Plus 理念,已完成了DatabasePlus三大核心价值下的大部分基础设施建设。
以下是文章截取:
一直以来,大一统还是碎片化,是数据库发展趋势的两种最主流预测。随着数字化进程的推进,单一场景无法满足应用多样化的需求,数据库碎片化已呈不可逆的趋势。在当前,市场占有率最高的商用数据库— Oracle 并没有明显短板的情况下,各种全新的数据库依旧如雨后春笋般层出不穷。如今,DB-Engines 上已有超过 300 余种数据库参与排名。
应用场景的不断扩张,加速了数据库碎片化的进程,数据库的架构、协议、功能、适用场景也愈加多样化。在数据库架构方面,基于单机系统演进而来的集中式数据库与原生面向分布式的新一代数据库并存;在数据库协议方面,MySQL 和 PosrtgreSQL 这两大主要开源生态以及周边厂商所提供的服务生态也在全球数据库体系中各自占有一席之地;每种数据库的独特功能和适用场景,也在相关的领域大放异彩。
碎片化是数据库领域的大势所趋,单一品类的数据库无法适用于所有场景,只能适用于某一种或某几种擅长的场景。
随着企业采用的数据库种类不断增加,各种问题和痛点也随之出现:架构选型困难、技术挑战众多、运维复杂度高、数据库间缺乏协作和统管能力。
Database Plus 是一种分布式数据库系统的设计理念,旨在碎片化的异构数据库上层构建生态,在最大限度复用数据库原生存算能力的前提下,进一步提供面向全局的扩展和叠加计算能力。使应用与数据库间的交互面向 Database Plus 构建的标准,从而屏蔽数据库碎片化对上层业务带来的差异化影响。
『连接、增强、可插拔』是定义 Database Plus 核心价值的三个关键词。相对于提供一个全新的标准,Database Plus 更倾向于提供一个可以适配于各种数据库 SQL 方言和访问协议的中间层,提供开放的接口用于对接各种数据库。由于数据库访问协议的实现,Database Plus 和数据库在使用体验上并无二致,可以支持任意的开发语言和数据库访问客户端。
Database Plus 采用了既重视传统数据库的实践经验,又适配于新一代分布式数据库的设计理念。无论是集中式还是分布式的数据库,Database Plus 都能复用数据库的存储和原生计算能力,并在其基础之上提供全局化的能力增强。
不断增加的数据库类型对接和增强功能织入,会使 Database Plus 通用层逐渐趋于臃肿。连接和增强的可插拔化,既是 Database Plus 通用层维持小而美的基石,也是扩展生态无限化的有效保障。可插拔的体系,为DatabasePlus通用层提供了插件生态无限扩张的可能,使用者只需根据自身需求裁减插件即可。
通过可插拔体系,Database Plus 将能够真正的构建面向数据库的功能生态,将异构数据库的全局能力统一纳管。它不仅面向集中式数据库的分布式化,也同时面向分布式数据库的竖井功能一体化。
微内核设计和可插拔架构是 Database Plus 理念的核心价值,它面向通用的平台层,而非某项具体功能。
目前,Apache ShardingSphere 遵循 Database Plus 理念,已完成了DatabasePlus三大核心价值下的大部分基础设施建设。
ShardingSphere 已支持 MySQL、PostgreSQL、openGauss 等数据库协议,以及 MySQL、PostgreSQL、openGauss、SQL Server、Oracle 和所有支持 SQL92 标准的 SQL 方言。连接层抽象的顶层接口可供其他数据库开放对接,包括:数据库协议、SQL 解析和数据库访问等。
ShardingSphere 的功能增强划分为内核层和可选功能层。内核层包含查询优化器、分布式事务、执行引擎、权限引擎等与数据库内核强相关的功能,以及调度引擎、分布式治理等与分布式强相关的功能。内核功能的每个模块都必须存在,但可以切换至不同的实现类型。以查询优化器为例,如果待执行 SQL 可以完美下推至后端数据库,则采用基于原始 SQL 与数据库交互的计算下推引擎;如果待执行 SQL 需要跨越多数据源进行关联查询,则采用基于查询计划树与数据库交互的联邦查询引擎。
从最初的 MySQL + 数据分片为核心的架构模型,到如今的微内核 + 可插拔架构,项目进行了彻底的改造。从提供连接的数据库种类和增强功能到内核能力,ShardingSphere 全部面向可插拔。
ShardingSphere 的架构核心外围,由微内核、可插拔接口、插件实现这三层模型组成,层次之间单项依赖,微内核对插件功能完全无需感知,插件之间也无需相互依赖。对于一个拥有 200+ 模块的大型项目来说,架构的解耦和隔离,是社区开放协作、将错误影响范围降低至最小的有效保障。
Apache ShardingSphere 社区已在开源领域耕耘了 7 年的时间。长久的坚持,使社区愈加成熟,已呈开放和多元化的势态。我们诚心诚意地欢迎有开源情怀和编码热情的朋友一起参与社区共建。
Apache ShardingSphere 的可插拔架构和数据分片哲学已在学术界获得广泛认可。在今年的数据库领域顶级的会议 ICDE 中,已成功发表论文《Apache ShardingSphere:A Holistic and Pluggable Platform for Data Sharding》。