导读: 随着云基础设施的成熟,Apache Doris 3.0 正式支持了存算分离全新模式。基于这一架构,能够实现更低成本、极致弹性以及负载隔离。本文将介绍存算分离架构及其优势,并通过导入性能、查询性能、资源成本的测试,直观展现存算分离架构下的性能表现,为读者提供具体场景下的使用参考。
在数据驱动决策的时代,数据规模增长加快、分析需求不断变化。数据从多种渠道(如应用日志、网络交互、移动设备等)源源不断地流入,包含结构化、半结构化、非格式化等多种数据格式,这对数据的存储和分析提出了很高的挑战。与此同时,企业对实时分析、探索性查询的需求激增,要求系统在保证毫秒级响应能力的同时,兼具极致的成本效益与弹性扩展能力。
Apache Doris 诞生于存算一体的分布式时代,是典型的 Shared Nothing 架构:BE 节点上存储与计算紧密耦合、多 BE 节点采用 MPP 分布式计算架构,这种架构带来了高可用、极简部署、横向可扩展以及强大的实时分析性能等一系列核心特色。在实时分析、小规模数据处理等场景中,凭借可预期的稳定低延迟表现,具有不可替代的优势。但在面对大规模数据处理时面临一些挑战,主要体现在:
即使如此,在没有稳定且大规模存储支持的情况下,存算一体架构依然是最好的选择。
随着云基础设施的成熟,越来越多的企业都希望 Apache Doris 能更深度地适应公有云、私有云和 K8s 容器平台,以提供更灵活的弹性能力。公有云提供无需预置空间的成熟对象存储和计算资源按需购买,私有云则通过 K8s、MinIO 等技术构建资源平台。云基础设施的成熟,也推动了 Apache Doris 存算分离架构的实现,使更低成本、极致弹性、负载隔离成为可能。
飞轮科技基于 Apache Doris 内核研发全托管企业级云数仓产品(即 SelectDB Cloud)过程中,设计并实现了全新的云原生存算分离架构,并将这一架构的实现贡献至 Apache Doris 社区。Apache Doris 在 3.0 版本中正式支持存算分离这一模式。
SelectDB Cloud 是飞轮科技基于 Apache Doris 内核构建,能够为 Apache Doris 提供原生的存算分离架构云托管服务,并在线下稳定运行近 3 年,获得客户广泛认可。 它支持全球主流云平台,推出开箱即用的 SaaS 部署模式和更符合客户合规需求的 BYOC 部署模式,为企业提供多云一致的使用体验。此外,飞轮科技与阿里云共同打造阿里云一级产品——阿里云瑶池数据库 SelectDB 版,能够为用户提供阿里云上的全托管服务。 目前,SelectDB Cloud 及 阿里云瑶池数据库 SelectDB 版已为点点互动、华瓴科技、名创优品、趣丸、波司登、MiniMax、新东方等数百家知名企业提供服务,帮助这些企业实现查询性能、成本效益、整体性价比的综合提升。
在存算分离模式下,Apache Doris 整体架构由共享存储层、计算层和元数据层三部分构成:
共享存储层: 数据持久化到共享存储层,计算节点可以共享数据,这为计算节点的灵活性提供了基础。成熟稳定的共享存储为系统带来极低的存储成本和极高的数据可靠性,同时,公有云对象存储或者企业内部专业团队运维的共享存储可以大幅降低 Doris 的运维负担。
计算层: 计算层由任意数目的计算组构成,负责执行查询计划,每个查询仅在一个计算组内执行。计算节点无状态,本地配置本地磁盘作为高速缓存以加速查询,共享同一份数据和元数据服务,一个或者多个计算节点组成一个计算组。计算组之间是物理隔离的,可以独立扩缩容,计算节点的本地高速缓存都是隔离的,这样尽可能地保证较好的隔离性。
元数据层: 提供系统的元数据管理服务,包括数据库、表、Schema、rowset 元数据、事务信息等,支持横向扩展。未来 Apache Doris 存算分离模式下的 FE 节点也将实现无状态化,内存占用不再与集群规模相关,仅需极少的内存即可正常运行,消除 FE 内存瓶颈问题。
对于存算分离架构来说,写入性能和小文件数量是影响架构稳定性和效率的关键因素。而业内常见的存算分离方案,将数据和元数据存储在共享存储中,其事务能力依赖于 FE 单点,通常面临以下挑战:
相比之下,Apache Doris 通过共享元数据服务有效解决了这些问题:
Apache Doris 存算分离架构,主要提供了提更低成本、极致弹性以及负载隔离这三大优势:
更低成本:与存算一体架构相比,存算分离架构综合成本降低超 90%。
极致弹性:得益于无状态的计算节点设计,能够更加灵活地应对不断变化的业务需求,提供高效、弹性的计算资源管理。
负载隔离:提供高效的资源管理和负载隔离,为不同业务需求提供精细化的计算资源调度。
接下来,我们将从导入、查询、资源成本等多个维度对 Doris 存算分离模式进行对比测试,以更直观地展示其性能表现。
在相同计算资源下,针对 Doris 存算分离、Doris 存算一体、业内常见存算分离方案,进行两组实时导入性能对比测试:
测试结果如下:
在批量数据导入场景,分别基于 Doris 存算分离、Doris 存算一体进行导入 TPC-H 1TB 和 TPC-DS 1TB 测试数据集,观察其性能表现。
导入方式: 采用 S3 Load 导入方式,在默认配置下,对多张表的数据进行串行导入,对导入总时间进行对比。
硬件配置如下:
经测试,在存算一体模式同样采用单副本的情况下,存算分离模式批量数据写入性能较存算一体模式分别提升了 20.05% 和 27.98%。(实际部署中存算一体模式一般会采用三副本,那么存算分离模式的写入性能优势会更加明显。)
在存算分离模式下,Apache Doris 通过多层缓存机制加速查询,这些缓存层级有效地提升数据访问速度,减少对共享存储的访问,提升查询效率。具体层次如下:
硬件配置如下:
我们对存算一体和存算分离模式进行了不同缓存下的性能测试。以 TPC-DS 1TB 测试集为例,测试结果如下:
我们以某企业在线业务为例,对比基于 Doris 存算一体与存算分离模式下的成本差异:
存算一体: 保存于 Doris 中的单副本数据是 100T,三副本后的总数据量是 300T。考虑到避免频繁扩缩容影响业务,磁盘使用率平常保持在 50% 左右。整体的成本如下表所示,每月资源成本支出为 36962.7 美金。
存算分离: 同样的数据规模,使用存算分离模式后,仅需要存储单副本存储在对象存储,热数据在本地磁盘上 cache 一份。如下表所示,每月资源成本支出下降到 22212.65 美金,相较存算一体模式节省了 40% 成本支出。
以 200TB 的历史数据为例,存算一体和存算分离模式下的资源占用如下表。存算一体的资源成本为 48851.1 美金/月,而存算分离的成本仅为 4502.4 美金/月,成本可以降低 90% 以上。
“网易 163 邮箱使用 Apache Doris 替换了原先 Clickhouse、Elasticsearch、Starrocks 等多技术栈。凭借其存算分离架构、湖仓一体、倒排索引能力,支撑了亿级数据实时写入与秒级查询响应,并实现存储成本降低 10 倍、日志检索性能提升 10 倍的成效。” ——— 网易 163 邮箱
“高途教育使用 SelectDB 应用在 BI 报表类高并发低延迟的场景,解决了需要根据数据选择引擎的难题。其存算分离架构和快速扩容的特性,保障了高峰场景数据的秒级产出;多租户的资源隔离方案为成本控制和资源分摊等提供了坚实的基础。期待未来在数据湖和动态扩容方面的进一步建设,加深双方合作。” ———高途教育
“波司登集团基于阿里云数据库 SelectDB 版作为数仓升级方案,借助阿里云 SelectDB 云原生存算分离架构,实现资源隔离、弹性扩缩容,并取得查询性能提升 2-5 倍、总体成本降低 30% 以上、效率提升 30% 的可观收益。” ——— 波司登集团
“阿里云数据库 SelectDB 版作为 MiniMax 日志存储服务的核心支撑,为在线和离线业务提供了高效、稳定的查询与聚合分析能力。其存算分离的弹性架构,以及对实时物化视图、租户资源隔离及冷热分离等企业级特性的支持,不仅有效解决了日志场景下 PB 级别数据查询的性能瓶颈,还通过智能化的资源调度与存储优化,实现了成本与效率的最佳平衡,为业务的高效运转提供了坚实保障。” ——— MiniMax infra 团队
“阿里云数据库 SelectDB 版为新东方多个核心场景提供了强有力的技术支撑。在湖仓一体实践中,它作为 Paimon 的高性能查询分析引擎,为湖上数据提供了强大的加速分析能力,实现 3-5 倍的性能提升。在半结构化数据处理场景中,依托存算分离架构、Variant 类型高压缩率、倒排索引以及 OSS 低成本存储方案,快速实现海量日志的检索分析,与 Elasticsearc 相比,查询分析性能提升 3-倍,存储成本降低 5 倍,极大优化了资源利用率。” ———新东方
以上就是对 Apache Doris 存算分离核心特性及使用方案的完整介绍。存算分离架构的引入,带来更低成本、极致弹性、负载隔离等显著优势。在这一架构的加持下,Doris 凭借其强大的实时数据分析、湖仓融合分析及半结构化数据处理能力,已然成为搭建现代化数据平台的理想选择,能够有效简化当前纷繁复杂的数据分析技术栈。
未来,Apache Doris 将持续增强存算分离模式的功能,包括支持存算分离的快照、时间旅行以及 CCR,提升系统的稳定性和易用性,比如 FE 无状态。为使用者提供更加弹性、高效、稳定、流畅的使用体验。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。