架构导论¶
整体概述¶
SeaboxSQL数据库是一款拥有完全自主知识产权、面向事务型业务处理的企业级关系型数据库管理系统。产品提供丰富的企业级数据库特性,在性能、高可用性、安全性及易用性方面均有较多建树,同时提供了针对数据分析场景的列存储引擎与向量执行引擎,极大提升在OLAP领域的适用范围。支持x86、arm等平台架构,能够与国产CPU、操作系统、中间件良好适配。
- 产品技术特点:
1) SQL标准:支持SQL-92 , SQL-99 ,至SQL 2003标准,并包括SQL 2003 OLAP函数,支持ODBC、JDBC等接口规范;支持Python API接口。
2) 云支持:除了支持直接部署在物理服务器上,同时也支持部署在私有云(支持Open Stack和vMWare vSphere)以及公有云平台上。
3) 支持容器化运行,将CPU和内存资源一起分组,为多租户和和混合负载提供更好的资源隔离和弹性。
4) HTAP能力:SeaboxSQL既支持更适用于事务处理的行存储引擎,也支持适用于分析处理的列存储与向量计算执行引擎,满足同一套数据库实现不同负载支持的需求。
5) 高可用性:通过强大的流复制能力,可支持共享存储集群、读写分离与双机热备集群部署。
6) 具有企业级数据备份/恢复能力,支持全量、增量备份/恢复。
7) 数据安全:支持信息系统安全保护等级2.0三级要求,包括完善的审计功能、身份鉴定、三权分立、强制访问控制等;支持存储加密功能,加密支持国密算法。
8) 支持内置AI算法库。库内可以使用标准SQL进行调用,支持多达60种图形、统计和机器学习算法。
9) 支持在数据库中存储和处理地理信息系统(GIS)对象,兼容PostGIS的数据类型及用法。
10) 易维护性:提供图形化监控运维、开发管理、迁移等工具,以简化管理员对数据库的管理工作;
- 产品应用范围
SeaboxSQL数据库以其良好的企业级特性与优质的产品服务,目前已经逐步在政府、金融、制造、能源、军队等多个领域展开推广,并赢得了专家及用户广泛好评。SeaboxSQL数据库主要支撑场景分类如下:
-
企业管理系统
SeaboxSQL数据库提供丰富的企业级特性,满足SQL2003标准,提供JDBC、ODBC等标准接口,支持各类数据类型与数据库类型,兼容Oracle大多数数据类型与函数,支持OCI、OCCI接口,适用于支撑企业财务、供应链、生产制造等领域的管理系统,产品支持双机热备、读写分离集群,可满足企业应用高可靠性要求。
-
核心交易系统
SeaboxSQL数据库提供高性能及高吞吐量事务处理能力,TPC-C标准测试指标可达40万以上TPMC,可满足金融、能源、交通收费等领域核心交易系统的性能要求;同时产品支持双机热备、读写分离、共享存储集群部署架构,提供全量、增量备份恢复机制,异常情况的恢复指标RPO为0,RTO小于分钟级,能够支持99.99%可靠性。
-
地理信息系统
SeaboxSQL数据库支持点、线、面等空间数据类型,支持空间数据类型各类运算函数,同时支持POSTGIS开源地理信息系统插件,可满足交通、农业、渔业等领域对地理信息数据处理的需求。
-
混合负载应用
SeaboxSQL数据库既支持更适用于联机事务处理的行存储引擎和行执行器引擎;也支持适用于联机分析处理的列存储引擎和向量计算引擎。混合负载应用要求同一数据库内,既能满足日常业务管理需求,也能够满足如夜间的报表分析性能。此时SeaboxSQL数据库行列混合存储与混合执行器的场景优势非常明显。尤其是,部分党政、军工等安全保密要求等级较高的用户系统,不允许数据外传转入专门的OLAP分析平台中。 此外,SeaboxSQL支持的列存表在数据量较小时优化为行存储的机制,满足既需要实时入库,有需要高速分析汇总数据的场景。如各类流水统计、设备监控实时报表应用。
-
安全保密应用
SeaboxSQL数据库支持满足信息安全等级保护2.0三级要求的数据库安全能力,支持强制访问控制、灵活审计策略、三权分立、多因素认证、透明存储加密等功能,同时提供数据动态透明脱敏功能,满足个人数据安全要求,在党政、军工等涉密领域有较广泛应用价值。
-
全文检索应用
SeaboxSQL数据库支持全文索引与全文检索应用,支持中英文分词,支持自定义分词,支持PDF、word、文本文档等多种文本的索引简历,检索性能良好。可满足各领域知识系统、内容检索系统的应用。
技术架构¶
SeaboxSQL数据库技术架构如下图所示:
整体上,SeaboxSQL数据库管理系统的技术架构可分为三部分层,分别为:
- 数据库服务(内核)
-
即数据库提供的对数据的逻辑组织和存取这些数据的核心功能,包括SQL引擎、计算引擎、存储引擎、公共组件、安全管理等部分。
- SQL引擎
- 主要负责SQL语句的底层实现,包括解析、优化、调度以及事务管理、锁机制、可编程语言等。SeaboxSQL提供兼容SQL2003标准的基本语法能力,支持兼容Oracle、MySQL语法的运行模式;支持基于代价评估(RBO)的优化器,支持多种优化机制。
- 计算引擎
- 主要负责各种算子的具体执行。SeaboxSQL提供传统的面向OLTP的行执行器与利用并行计算机制及可利用CPU SIMD指令集的向量计算引擎,在复杂负载场景中仍可提供良好的性能响应能力。
- 存储引擎
- 主要负责实际数据的结构组织与磁盘存取。SeaboxSQL数据库支持行存储、列存储2种存储引擎,支持行列混合存储,列存储支持良好压缩能力与OLAP分析性能;同时支持通过WAL(预写式日志)实现的高可用架构,支持主从、读写分离、共享存储、基于中间件的分库分表架构的集群部署。
- 安全管理
- 主要是满足EAL等级要求的各类安全能力,包括存储加密、访问控制、审计、三权分立等。
- 公共组件
- 数据库服务的管理能力,包括安装、初始化、系统表、函数、插件等。
- 客户端接口
- 主要提供各种常见的数据库访问接口及其驱动程序实现,这些常见应用编程接口如ODBC、JDBC、SD_OCI、Python API等。
- 工具组件
- 主要为管理员提供大量便捷高效的数据库管理工具和开发工具。SeaboxSQL数据库提供满足企业集中管理运维的SDMS平台,以及满足用户开发使用的sdStudio工具和快速进行数据与程序移植的SDSwitch迁移工具。