云数据库 SelectDB 版是基于 Apache Doris 研发的现代化实时数仓服务,采用全新的云原生存算分离架构。本文为您介绍云数据库 SelectDB 版的产品架构及基本原理。
架构图
组件说明
应用系统和客户端
应用系统和客户端是您访问云数据库 SelectDB 版的产品或工具。由于SelectDB兼容MySQL连接协议和标准SQL语法,所以MySQL生态的命令行工具、JDBC、ODBC驱动和可视化工具等,都可连接访问云数据库 SelectDB 版的实例。
为了减少网络延时和不稳定的影响,建议应用程序或客户端与云数据库 SelectDB 版实例部署在相同地域。
实例
云数据库 SelectDB 版 的实例是云数据库 SelectDB 版用于管理组织计算资源的基本单元。云数据库 SelectDB 版采用云原生存算分离架构,包含服务层(负责接收请求的实例入口,对应Apache Doris FE)、计算层(负责处理请求的集群,对应Apache Doris BE)、存储层(对象存储OSS)等组件。其中服务层由云数据库 SelectDB 版托管并按需伸缩,您无需管理FE。在这种存算分离架构下,使得云数据库 SelectDB 版的多实例之间的资源是完全物理隔离的。从而不同实例可用于满足完全独立的或敏感性差别较大的业务场景。
您读写云数据库 SelectDB 版实例时,主体流程如下:
写入请求:您可通过云数据库 SelectDB 版提供的写入接口或者已有的导入工具,向云数据库 SelectDB 版发起写入请求。服务层接收到请求后,根据您选择或者默认情况将请求转发给目标集群。目标集群具体处理数据写入请求,将数据写入到存储层及缓存中,在存储层完成持久化后,返回成功提示。
查询请求:您可通过SQL语法向SelectDB发起查询请求。服务层接收到请求后,对请求SQL进行解析,并通过智能优化器生产出高效的查询执行计划,然后将请求转发给目标集群。目标集群对查询请求进行大规模并发调度执行MPP(Massively Parallel Processing),并按需读取缓存或存储层中的数据,查询完成后通过MySQL协议将结果返回。集群在查询处理过程中,采用Pipeline执行框架、索引技术、缓存技术、向量化技术等技术,可以使查询速度加快,让您体验到云数据库 SelectDB 版更好的数据分析性能。
集群
云数据库 SelectDB 版的集群是包含一个或多个BE节点的分布式系统,每个节点包含计算资源和缓存资源。由于存算分离架构中远程存储访问较慢,所以引入缓存用以加速数据访问。云数据库 SelectDB 版支持内存、硬盘等多级缓存机制。集群支持灵活的弹性伸缩能力,伸缩过程会进行缓存的预热与迁移,尽可能提供给您平滑的分析体验。
云数据库 SelectDB 版支持多集群架构,一个实例中可以包含多个集群,类似分布式系统中的计算队列、计算组。同一实例中的多集群具有如下特性:
数据共享:多集群共享底层数据,均可以访问底层数据,避免冗余数据存储。
计算隔离:多集群间的计算资源是物理隔离的,分别用于隔离不同的工作负载。集群间的缓存是隔离的,根据自身访问特性进行数据缓存。
多读多写:多集群在数据读写方面是对等的,可以并行写入数据,并且一旦数据提交生效,所有集群均可立即查询到最新数据。
基于上述特性,多集群通常被用于读写链路隔离、在离线分析隔离、生产测试环境隔离等场景。
存储
云数据库 SelectDB 版使用高可靠、低成本的对象存储OSS作为存储层,用于持久化保存数据。基于对象存储本身的高可靠,云数据库 SelectDB 版无需在分布式数仓系统中维护数据副本,叠加对象存储的低价因素,云数据库 SelectDB 版的单位存储成本相比传统数仓可降低90%以上。
使用云数据库 SelectDB 版时存储资源无需预设,采用按量付费的计费方式,并且支持存储资源包,进一步降低存储成本。
为了提供更好的分析性能,云数据库 SelectDB 版的存储引擎针对计算场景进行深度耦合设计:
数据模型:云数据库 SelectDB 版针对典型的数据分析场景,提供了优化设计的数据模型。例如主键模型(Unique模型)用于满足具有主键唯一性约束的数据分析场景(订单分析、交易分析等),聚合模型(Aggregate模型)用于满足超高性能的统计聚合分析场景,明细模型(Duplicate模型)用于满足原始数据的明细存储和分析。
数组组织:为提升数据的访问效率,云数据库 SelectDB 版对底层数据组织进行了精致的设计。数据首先按照时间或Hash进行划分,打散数据以充分利用分布式集群的处理能力,同时有利于查询时数据裁剪。支持行列混合存储,默认的列式存储可满足海量数据的高效分析,按需的行式存储可支持高性能的点查询。提供丰富索引能力,可结合过滤条件精准定位数据,数量级提升查询性能。
外部生态
云数据库 SelectDB 版支持与周边数据生态中的数据源、可视化工具进行集成,提高您进行数据分析的体验。