当前位置:

首页 > 系统应用 > ApacheDoris巨大飞跃:存算分离新架构

ApacheDoris巨大飞跃:存算分离新架构

历史上,数据分析需求的不断提升(更大的数据规模、更快的处理速度、更低的使用成本)和计算基础设施的不断进化(从专用的高端硬件、到低成本的商用硬件、到云计算服务),这两大因素推动数据仓库的架构大体经历了三个时代:软硬一体的一体机时代、存算一体的分布式时代以及存算分离的云原生时代。Apache Doris

历史上,数据分析需求的不断提升(更大的数据规模、更快的处理速度、更低的使用成本)和计算基础设施的不断进化(从专用的高端硬件、到低成本的商用硬件、到云计算服务),这两大因素推动数据仓库的架构大体经历了三个时代:软硬一体的一体机时代、存算一体的分布式时代以及存算分离的云原生时代。

Apache Doris 诞生于存算一体的分布式时代,是典型的 Shared Nothing 架构:BE 节点上存储与计算紧密耦合、多 BE 节点采用 MPP 分布式计算架构,这种架构为 Apache Doris 带来了高可用、极简部署、横向可扩展以及强大的实时分析性能等一系列核心特色。随着云时代的到来,无论是公有云、私有云还是 K8S 容器平台,越来越多的企业都希望 Apache Doris 针对云计算这种新型基础设施提供更加深度的适配,以便提供更加灵活强大的弹性能力。

在过去的一年,飞轮科技(SelectDB)技术团队在基于 Apache Doris 内核研发全托管企业级云数仓产品的过程中,设计并实现了全新的云原生存算分离架构(即 SelectDB Cloud)。基于云原生存算分离的架构,SelectDB Cloud 在此基础上提供了多计算集群负载隔离和计算弹性扩缩容等功能。

秉持着“推动开源技术创新、繁荣开源社区生态”的首要目标,在 Apache Doris 2.0 即将发布之际,SelectDB 技术团队正式宣布,将存算分离架构实现贡献至 Apache Doris 社区。 这一工作预计将于 2023 年 10 月前后完成,届时全部存算分离的代码都将会提交到 Apache Doris 社区主干分支中。

当存算分离代码合入 Apache Doris 社区后,Apache Doris 可以采用以下两种模式之一运行:存算一体的部署模式和存算分离的部署模式。在两种模式下运行的 Apache Doris 将以不同的方式来存储主数据。从用户使用体验上而言,绝大部分功能都是一致的,但是也会因为实现架构和部署模式的不同,带来一些功能上的差异。下面我们将分别介绍两种部署模式的核心特点和适用场景差异。

存算一体的分布式架构

存算一体架构,也是 Apache Doris 长久以来经历过数千家企业生产环境打磨、无论是性能亦或是易用性和稳定性都最为成熟的 MPP 分布式架构,总体架构图如下:

Apache Doris 存算一体架构

部署简易

在存算一体模式下,Apache Doris 不需要依赖类似外部共享文件系统或者对象存储,仅依赖物理服务器部署 FE 和 BE 两个进程即可完成集群的搭建,可以从一个节点扩展到数百个节点。这种不依赖第三方组件的部署模式极大降低了 Apache Doris 的使用门槛,甚至一台办公笔记本就可以完成 Apache Doris 的部署。

部署简单的同时,也拥有极简的运维成本:

  • FE 和 BE 都支持横向线性扩展,扩缩容过程中无需停服,可正常提供稳定可靠的在线服务
  • 数据多副本存储,自身的分布式管理框架自动管理数据副本的分布、修复和均衡,扩缩容时数据副本会自动在节点间负载均衡,无需任何人工操作

存算一体架构的一大优势,就在于其依赖极少,无需依赖其他任何系统,这无疑极大地增强了系统的稳定性。而存算分离模式呢,它是需要依赖共享存储系统的。对于大多数企业而言,要提供这样一个共享存储系统,可并非易事。要知道,依赖的组件越多,任何一个组件的不稳定,都极有可能导致整个系统的稳定性遭受影响。存算分离架构依赖共享存储系统,那么存储系统本身的稳定性和可用性,以及连接存储系统和计算节点的网络延迟与稳定性,都将对整个存算分离架构的稳定性起到至关重要的作用。

性能优异

在存算一体模式下,Apache Doris 执行计算时,计算节点可直接访问本地存储数据,充分利用机器的 IO、减少不必要的网络开销、获得更极致的查询性能。而存算分离模式下网络传输带宽和耗时往往会制约系统性能的发挥,因此即便是 Hadoop、Spark 这种一开始便采用存算分离模式的分布式框架,也会尽量将计算逻辑推送到数据所在的节点,以此来提升计算任务的执行性能。

与此同时,存算一体模式对于谓词下推(Predicate Pushdown)更加友好,将条件判断逻辑更贴近数据源,减少查询时扫描、传输和计算的数据量,更能发挥系统的查询性能。相比存算分离模式,一般存储系统都没有执行谓词计算的能力,因此无法实现谓词下推,继而需要网络将大量的数据传输至计算侧。

冷热分层

在 Apache Doris 2.0 版本中,也实现了存算一体模式下的冷热数据分层。冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一。通过冷热数据分层,使得 Apache Doris 集群配置不再需要随着历史数据量的堆积而不断扩容机器。本质上,Apache Doris 2.0 版本的冷热数据分层也是一种存算分离的形态,只是实现了冷数据的存储分离。

关于 Apache Doris 2.0 冷热数据分层功能的详细介绍,可以参考 Apache Doris 冷热分层技术如何实现存储成本降低 70%?

存算一体架构的适用场景

基于以上的原因,如果满足下面任一条件,那么 Apache Doris 存算一体模式更加适合你:

  • 简单使用 Doris,想快速试用一下,或者开发和测试使用
  • 没有可靠的共享存储可用,比如 HDFS、Ceph、对象存储等
  • 业务线独立维护 Apache Doris,没有专职 DBA 来维护 Doris 集群
  • 不需要极致弹性扩缩容,不需要K8S容器化,不需要运行在公有云或者私有云上
存算分离的新架构

如上所述,如果存算一体模式有这么多优势,为何我们还需要提供存储计算分离的新架构?核心动力来自于新兴云计算基础设施的成熟,无论是公有云、私有云以及基于 K8s 的容器平台,云计算基础设施的革新催生了新的需求。

云本身就是存储计算分离的,其极致弹性带来极大的成本经济优势:

  • 计算资源的弹性:可以根据计算负载的需求,按需购买或者按需扩缩容计算节点,在满足计算需求的情况下,使得成本达到最低;
  • 存储资源的低成本与弹性:对象存储提供极其可靠的低成本存储,并且按照使用容量计费,这样可以让数据存储得更多更久。

即便是没有使用云平台的公司,也可以利用低成本的共享存储系统,在降低存储成本和提高计算弹性的同时,还能获得多计算集群等额外的优质特性。

未来存算分离架构如下图所示:

存算分离新架构

基于共享存储系统的主数据存储

在存算一体的架构下,数据主要存储在计算节点上,即使使用了冷热数据分层,热数据依旧只在计算节点上存储,计算节点需要依靠自身的多副本机制保证数据的可靠性。在存算分离架构下,计算节点不再存储主数据,而是将共享存储层作为统一的数据主存储空间,这将带来如下收益:

  • 上层的计算节点可以做到无状态,可以实现完全关机
  • 更便捷的数据共享,不同的集群之间以及不同的仓库可以便捷地进行数据共享
  • 更简易的数据备份与恢复,以及实现数据的 Time Tra vel

当然,成熟稳定的 HDFS/对象存储还为系统带来极低的存储成本和极高的数据可靠性,并且大大简化上层计算节点的实现复杂度。

基于本地高速缓存的性能优化

存算分离依赖从网络上读取存储系统的数据来进行计算,在一定程度上会造成计算性能的下降,这也是相较于存算一体架构的主要劣势。为了解决这一问题,可以在本地利用 SSD 提供高速缓存。

正如存算一体通过冷热数据分层技术来大大缓解了存储和计算必须同时扩展的问题,同样在存算分离架构中引入计算节点本地高速缓存实际也是融合了存算一体的能力。这种本地高速缓存加上共享存储系统,我们也可以称之为混合模式,无论是 Snowflake 还是 Redshift,实际上都是采用了这种方式来应对底层对象存储系统性能不佳和网络传输带来的性能下降。

引入本地高速缓存后,系统会自动根据 LRU 来缓存最新写入和访问数据,当然也可以手动设定表的缓存策略。由于只是缓存,因此本地只存储了单个副本,这样大大提升了缓存利用率,相比存算一体模式可以降低 2/3 的高速存储使用。

另外,在存算一体的模式下,每个 Tablet 有 3 个节点来存储其 3 个数据副本,在三副本上都需要独立进行数据合并(Compaction)计算。而在存算分离下,只有一个节点进行数据合并计算,这样就可以降低 2/3 的数据合并计算量。

所以,通过引入本地高速缓存,不仅仅可以基本达到原来存算一体的性能,在有些情况下还会超越原来存算一体的性能。

多计算集群实现工作负载隔离

用户通常希望对同一份数据上的分析负载进行隔离。例如,导入的工作负载与查询的负载进行隔离,Adhoc 的大查询负载和在线点查询的负载间相互隔离,避免不同负载间相互资源抢占。

在Apache Doris 2.0版本中,推出了工作负载组(Workload Group)这一资源隔离方案。该方案属于软限隔离,能够为特定查询或者特定用户设定查询优先级。不过,基于Workload Group的隔离,无法达到存算分离模式下多计算集群所具备的真正物理隔离性。

在存算分离模式下,提供了同一个仓库多个物理计算集群的隔离方式。因为主数据存储在共享的对象存储上,因此用户可以按需创建多个计算集群但共享同一份数据。计算集群之间是物理隔离的,可以独立扩缩容,其计算节点的本地高速缓存都是隔离的,这样保证了尽可能比较好的隔离性。

极致的弹性扩缩容

存储与计算的分离,带来的最大优势是存储和计算可以独立扩缩容。数据存储在 HDFS 或对象存储上,可以按需扩缩容。每个计算集群的计算节点,可以实现更加高效的弹性扩缩容,包括手动扩缩容、分时扩缩容以及自动停机。

存算分离特性演示

在此我们以 SelectDB Cloud 现有产品为例,来向大家演示全新存储计算分离模式的特性和功能。

SelectDB Cloud 上新建仓库

SelectDB Cloud 上多集群演示

SelectDB Cloud 上的手动扩缩容

SelectDB Cloud 上的分时扩缩容

SelectDB Cloud上的集群自动启停

存算分离架构的适用场景

基于以上的介绍,毫无疑问也帮助我们进一步明晰了存算分离架构的适用场景,满足下列任一条件,存算分离架构更适合你:

  • 如果已经使用公有云服务,那么存算分离架构绝对值得尝试
  • 拥有可靠的共享存储系统,比如 HDFS、Ceph、对象存储等
  • 需要极致弹性扩缩容,需要 K8S 容器化,需要运行在私有云上
  • 有专职的团队维护整个公司的数据仓库平台
数据湖分析

需要说明的是,针对不同的技术群体,存储、计算与存算分离这些概念指代着不同的含义。

无论是 Apache Doris 的存算分离、还是 Snowflake 的存算分离,都是指单一系统内部存储和计算模块之间的分离。对于数据湖和湖仓一体(Lakehouse)的用户,则是希望做到更加彻底的分离,即计算系统和存储系统是两个不同的产品。存储系统通过统一的开放表格式面向计算系统开放,而计算系统也可以开放地对接不同的底层存储系统。

对于 Apache Doris 而言,无论是存算一体的架构还是存储计算分离的架构,都支持湖仓一体这种新型 Lakehouse 系统形态,即可以直接查询湖存储以及当前流行的各类开放表格式,包括 Hive、Iceberg 和 Hudi 等。需要说明的是,Apache Doris 目前对数据湖的读取已经比较完备,包括支持 Snapshot 读和 Time Tra vel,而后续还会进一步支持湖上数据的写回,形成更加闭环的数据分析和流转。

除了对数据湖的集成与分析,Apache Doris 目前还支持了对当前常见的关系型数据库、对象存储以及 HDFS 上 CSV、Parquet 等格式数据的直接查询分析。

未来计划

围绕着存算分离,SelectDB 技术团队会与 Apache Doris 社区未来一起推进下面相关方向的研发:

Workload Group 与多计算集群的融合

当前存算一体架构下的 Workload Group 与存算分离架构的多计算集群实际都是用来解决负载隔离的,一个偏软限,一个是硬限,当前具体实现方式存在一定差异,后面将考虑二者融合,对用户而言提供统一一致的使用体验。

与外部数据湖更便捷的数据导入导出

外部数据湖的数据可以增量持续写入内表,也可以使得内表的数据可以增量持续写入到外表数据湖的格式。

通过提供更加便捷的外表导入内表的功能,Doris 可以持续加载最新的数据湖数据,以便提供更高的数据计算性能。

通过提供更加便捷的内表导出外表的功能,使得内表的数据可以增量写出为开放的外表格式。数据转换为开放格式,一个是方便与相关大数据生态系统打通,另一个是打消企业对封闭数据格式被锁定的担忧。

实现共享的高速缓存,与计算节点进一步分离

当前存算分离模式下,高速缓存使用的是计算节点的本地磁盘,所以计算节点还不能做成真正的无状态。当进行节点快速扩容的时候,需要考虑缓存的预热均衡;当进行节点快速缩容的时候,需要考虑缓存的失效,以及向其他节点的缓存转移。未来,我们将实现一种与计算节点分离的共享高速缓存,实现计算、缓存和对象存储完全的分离,以便提供秒级扩缩容能力。

存算一体和存算分离两种模式的融合

存算一体和存算分离的架构在部署之初就需要确定下来,而对于多数用户都可能存在不同架构之间的转化,因此后续也会不断改进实现方式,让两种模式间可以更便捷地进行相互转换,甚至逐步融合成一套架构。

交流与试用

存算分离架构的代码将于 2023 年 10 月份前后提交至 Apache Doris 社区,当前正处于紧锣密鼓的代码整理阶段。对于存算分离架构感兴趣的用户可以扫描下面二维码加入存算分离技术沟通群,了解代码开源的最新进展。当前,我们也开放了部分企业的提前试用,有需要可以联系luzhijing@selectdb.com。

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
系统应用 云计算
相关文章 更多
除了界面,Windows11和Win10还有哪些实质差异
除了界面,Windows11和Win10还有哪些实质差异

除了开始菜单的变化,Windows 11在TPM 2.0安全要求、窗口贴靠布局、驱动兼容性以及系统更新策略上与Windows 10有显著不同。本文详解两者实质差异,助你判断是否值得升级。

win10专业版和家庭版关闭更新方法差别在哪
win10专业版和家庭版关闭更新方法差别在哪

详解Windows 10家庭版和专业版在关闭或暂停自动更新时的操作区别。涵盖通用的暂停更新、活动时间设置,以及专业版独有的组策略管理入口,帮助不同版本用户合理控制更新节奏,避免系统安全风险。

win10暂停更新最长可以设置多少天怎么操作
win10暂停更新最长可以设置多少天怎么操作

想知道Win10暂停更新最长能设多久?官方支持最长暂停35天。本文图文演示如何在设置中开启暂停、确认生效日期,以及到期后如何恢复更新或调整活动时间以避免打扰。

win10怎么屏蔽win10系统更新的弹窗提醒
win10怎么屏蔽win10系统更新的弹窗提醒

本教程介绍如何在Windows 10中通过暂停更新、设置活动时间及安排重启时间来减少更新弹窗提醒。包含通知隐藏技巧及更新失败排查步骤,帮助你在保持系统安全的同时减少工作打扰。

win10更新后台占用CPU过高怎么关闭自动更新
win10更新后台占用CPU过高怎么关闭自动更新

Windows 10 更新时 CPU 占用过高怎么办?本教程演示如何通过任务管理器确认更新进程,使用“暂停更新”功能临时停止后台活动,并设置“活动时间”防止自动重启干扰工作。提供安全的故障排查步骤,避免直接禁用系统服务带来的风险。

win10正在玩游戏弹出更新重启怎么禁止
win10正在玩游戏弹出更新重启怎么禁止

Win10玩游戏时突然弹出更新重启提示?不要强制关机。本文教你如何通过设置“活动时间”避免自动重启,利用“安排重启”规划空闲时间,以及合理使用“暂停更新”功能。区分不同状态下的应对策略,既保护游戏进度又维持系统安全。

win10自动更新抢占网络带宽该怎么处理
win10自动更新抢占网络带宽该怎么处理

Win10自动更新抢占带宽导致游戏卡顿或网页打不开?本教程教你通过任务管理器确认更新进程,利用暂停更新、按流量计费连接和传递优化带宽限制,精准控制Windows Update下载速度,解决网络拥堵问题。

win10家庭版有没有简单办法阻止强制更新
win10家庭版有没有简单办法阻止强制更新

Win10家庭版用户常受强制更新困扰。本文详解如何利用系统自带的暂停更新、活动时间和安排重启功能,在不破坏系统稳定性的前提下减少更新打扰,并分析注册表修改的风险及系统支持现状。

win10升级新版本后取消开机密码失效怎么修复
win10升级新版本后取消开机密码失效怎么修复

Windows 10更新后开机突然要求输入密码?本文解析自动登录失效的真实原因,提供通过netplwiz重新保存凭据、关闭Windows Hello干扰及排查账户策略的完整步骤,助你恢复免密进入桌面。

win10更新没下载完反复重试该怎么停止任务
win10更新没下载完反复重试该怎么停止任务

Windows 10更新下载失败反复重试怎么办?不要直接停用服务。本文教你通过设置页面暂停更新、启用按流量计费连接以及调整活动时间,安全地暂时停止下载任务并避免意外重启。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。