架构设计 · 大数据运维

待环境验证

StarRocks 存算一体与存算分离架构核验

比较 shared-nothing 的 BE 本地副本与 shared-data 的 CN、共享存储和缓存,建立版本能力、冷热负载与迁移恢复检查。

StarRocks大数据高可用
阅读导引 · 理解后再操作

这篇知识解决什么问题

按持久数据所在位置理解两种存算模式的运维责任,再分别评估 BE 副本恢复和 CN 缓存回源。架构评审需要版本能力、冷热负载和恢复来源,不能以节点心跳或架构名称代替服务验收。

区分持久数据和本地缓存

BE 本地数据容量与 CN 缓存占用不是同一口径。前者需要解释副本、分布和恢复余量,后者需要解释热点、回源请求及远端依赖;只记录集群剩余磁盘会遗漏两种模式各自的风险。

模式选择与表模型分别验收

部署模式决定运行和存储形态,表模型决定重复、更新与聚合语义。支持 Primary Key 表不代表当前模式支持全部部分更新或索引能力,应记录精确补丁版本及所需功能,避免把 Latest 能力写成现场事实。

进入文章正文
关联架构图解5 个组件 · 点击展开

场景图把 shared-nothing 的 BE 分支与 shared-data 的 CN、共享存储分支并列用于选择,两个分支不代表在同一个集群中混合运行。图中 FE 是共同协调角色,未展开真实节点数量、故障域、远端存储权限及缓存容量。

查看场景架构与实施步骤
参考架构 · 非实时拓扑

StarRocks 存算模式与导入查询运维架构

先辨别 shared-nothing 与 shared-data,再检查 FE、BE 或 CN、导入与主键更新、查询 Profile 和存储恢复边界。

  • 数据 / 请求
  • 控制 / 管理
  • 观测 / 查询

点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。

StarRocks 存算模式与导入查询运维架构:组件关系图先辨别 shared-nothing 与 shared-data,再检查 FE、BE 或 CN、导入与主键更新、查询 Profile 和存储恢复边界。 导入与查询客户端 → FE 计划与元数据:入口与计划;FE 计划与元数据 → BE 本地存储:存算一体调度;FE 计划与元数据 → CN 计算与缓存:存算分离调度;CN 计算与缓存 → 共享存储:远端持久数据访问;导入与查询客户端 → BE 本地存储:一体模式导入路径;导入与查询客户端 → CN 计算与缓存:分离模式导入路径。箭头说明见下方流向解读。
逻辑参考图,待环境验证。覆盖 StarRocks 3.3+ 常见架构,操作前对照实际小版本。shared-nothing 使用 BE 本地存储与副本,shared-data 使用 CN 计算、共享存储及本地缓存;两条分支独立核验。

导入与查询客户端

入口 / 来源

明确输入批次、更新顺序和业务可见性。

全部组件职责 5 个组件
导入与查询客户端
明确输入批次、更新顺序和业务可见性。
FE 计划与元数据
两种模式均需 FE 管理元数据和查询计划。工具介绍 FE 计划与元数据
BE 本地存储
存算一体通过 BE 维护本地 Tablet 和副本。工具介绍 BE 本地存储
CN 计算与缓存
存算分离通过 CN 计算并访问共享存储,本地缓存不是唯一数据副本。工具介绍 CN 计算与缓存
共享存储
持久数据由配置的共享存储保存,访问依赖存储卷和凭据。
流向解读 6 条连接
  1. 1

    导入与查询客户端 FE 计划与元数据

    数据 / 请求 · 入口与计划

    记录查询与导入的控制入口,数据路径按具体协议确认。

  2. 2

    FE 计划与元数据 BE 本地存储

    控制 / 管理 · 存算一体调度

    仅选择 shared-nothing 时采用该分支。

  3. 3

    FE 计划与元数据 CN 计算与缓存

    控制 / 管理 · 存算分离调度

    仅选择 shared-data 时采用该分支。

  4. 4

    CN 计算与缓存 共享存储

    数据 / 请求 · 远端持久数据访问

    CN 读取共享数据并利用本地缓存,区分远端延迟与计算耗时。

  5. 5

    导入与查询客户端 BE 本地存储

    数据 / 请求 · 一体模式导入路径

    逻辑表示客户端向 BE 导入,是否重定向或经过代理以具体导入方式为准。

  6. 6

    导入与查询客户端 CN 计算与缓存

    数据 / 请求 · 分离模式导入路径

    逻辑表示 shared-data 模式向 CN 导入;是否重定向及数据持久化路径以具体导入方式和存储配置为准。

故障域与操作边界

适用版本与部署模式

覆盖 StarRocks 3.3+ 常见架构,操作前对照实际小版本。shared-nothing 使用 BE 本地存储与副本,shared-data 使用 CN 计算、共享存储及本地缓存;两条分支独立核验。

数据与变更边界

不提供在线切换存算模式、批量删除节点或清空对象存储的通用命令。缓存可重建不代表 FE 元数据、存储卷凭据或业务数据可以丢弃。

架构依据与版本核对 2 篇官方资料

图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。

适用范围与版本边界

本文帮助理解 StarRocks 的 shared-nothing 与 shared-data 两种部署形态,适合架构评审、容量规划与运维交接。讨论以 3.3 及以后版本的基础能力为范围,但功能仍须按实际大版本和补丁核验。官方 Latest 页面会随发布更新,不代表已有集群具备全部能力;本文未连接真实集群验证,等级为 PENDING。

先收集 FE/BE/CN 清单、部署配置、表 DDL、远端存储类型与业务负载曲线。确认这次评审要解决的是容量、弹性、查询延迟还是隔离问题,分别给出可测量指标。不能仅凭架构名称判定哪种方案适合所有业务。

两种形态的核心区别

  • shared-nothing:BE 计算并存储表数据。 主要数据位于 BE 本地存储,通过多副本提供冗余;容量重点是数据分布、副本和恢复空间。
  • shared-data:CN 计算,远端保存持久数据。 主要数据位于对象存储或 HDFS,本地磁盘承载缓存等运行数据;容量重点是远端存储、缓存和请求开销。

两种形态都由 FE 承担连接、规划和元数据协调。shared-data 的 CN 执行计算,热数据通过本地缓存加速;远端存储并不会消除网络延迟与对象请求开销。此处是组件职责划分,不是对任意负载的性能保证,见 StarRocks 架构

用集群视图校对资产

在具备相应只读查看权限的运维会话中执行组件清单查询:

SHOW FRONTENDS;
SHOW BACKENDS;
SHOW COMPUTE NODES;

这些语句枚举集群节点,结果规模由已知集群大小决定,不是业务表扫描。保存节点 ID、版本、存活状态与最近心跳,并和部署配置交叉核对。不能只因为看到 CN 就跳过部署模式确认;不同用途的节点与外表计算场景需要一起解释。

对于 BE,DataUsedCapacityUsedPct 的口径不同,后者可能包含非数据文件影响;MaxDiskUsedPct 还能暴露单盘热点。对于 CN,重点读节点状态和可用的缓存指标,不把本地占用直接当成远端表数据总量。字段按 SHOW BACKENDSSHOW COMPUTE NODES 的版本说明解释。

shared-nothing 的运行检查

BE 同时承担存储和计算,扩缩容需要考虑数据分布与副本恢复过程。总剩余空间充足不代表每个节点、每块盘都能承接写入和合并。容量基线应包含表数据、版本合并临时空间、恢复任务和预留故障容量。

把节点离线与计划退役分开:某个 BE 标记退役并不等于数据已迁移完成。维护记录要包含受影响 Tablet、其他副本健康、目标容量与迁移收敛情况。本篇只建立检查清单,不运行退役或删除节点命令。若查询正好都命中健康副本,一次成功读取也不能证明该 BE 可以立即停机。

shared-data 的缓存与远端依赖

共享数据降低了计算节点与持久化容量之间的绑定,CN 变化时仍需关注缓存命中、冷读请求和在途任务。存储后端应有独立的权限、网络、容量和可用性监控;FE 正常、CN 心跳正常,也可能因为对象存储访问失败导致查询不可用。

对同一查询分别记录首次运行和后续运行的远端读取量、缓存命中与耗时。热缓存快不能推断扩容后的新节点也同样快。缓存目录不等于可随意清空的临时目录,删除缓存可能引发集中回源,需按维护流程评估查询和存储负载。

表模型与部署模式分开评审

Primary Key、Duplicate Key、Aggregate Key 等表模型决定数据语义;shared-data/shared-nothing 决定运行与存储形态。Primary Key 表在 shared-data 中自 3.1 开始支持,但持久化索引、部分更新等细分能力有各自版本要求,不能以“支持主键表”推断全部功能相同,见 Primary Key 表

SHOW CREATE TABLE analytics.orders_current;
DESC analytics.orders_current;

对目标表保存主键、分桶、分区、排序和存储相关属性。主键保证逻辑唯一性,排序键服务查询访问,两者不必承担相同职责;部分更新方式还需要与当前模式的功能表核对。主键写入问题可继续阅读 StarRocks 导入与主键实践

设计一组公平的比较负载

比较两种形态时,使用相同数据、相同结果语义和明确的资源账单,覆盖冷读、热读、持续写入以及查询与写入同时发生的窗口。至少固定单日明细扫描、聚合和维表 Join 三种业务查询,不能只测缓存命中的单表 COUNT。

EXPLAIN
SELECT merchant_id, SUM(amount)
FROM analytics.orders_current
WHERE order_date = '2026-09-01' AND tenant_id = 42
GROUP BY merchant_id
LIMIT 20;

先确认 order_date 的分区定义与计划选择范围,再决定是否在受控会话执行。输出里有少量行并不说明扫描量小;比较记录还必须包含实际读取量与并发。该例是候选负载,表名、字段与预算均需现场确认。

常见误区与迁移限制

官方 shared-data 支持说明列出不支持在同一集群混合两种模式,也不支持两者直接转换。迁移应按独立目标集群、历史数据迁入、增量同步和业务切换来规划,不能当成修改一个配置后重启。以实际版本文档为准,见 shared-data 功能支持

另一个误区是把远端多副本存储当成完整备份。对象持久化、FE 元数据保护、逻辑误删恢复与跨区域灾难恢复是不同问题。也不要把 CN 无状态理解为任何时刻都可中断;协调中的导入与查询仍有运行状态,需要停止条件和客户端恢复策略。

验收、停止与回退

评审交付物应包含模式与组件图、版本能力清单、冷/热负载曲线、峰值写入下的查询延迟、容量及成本拆分。只有业务结果一致且恢复与维护流程可解释,才算完成架构验证;本站内容本身不构成环境验收。

若远端错误扩大、冷缓存拖垮关键查询、源目标出现差异或恢复链缺失,停止切换与缩容。迁移回退需保留旧集群及源端增量,明确切换后新写入的补齐方式;不能假定回改连接串自动恢复数据一致。性能分析继续阅读 StarRocks 查询 Profile 调优

参考资料

从现象到判断

先收集证据,再缩小范围。以下是判读路径,不代表已经确认根因或获准变更。

  1. 集群仍有较多剩余空间,某些 BE 写入和合并却开始失败。

    只读核对
    核对逐节点和 MaxDiskUsedPct、水位口径、数据分布及恢复任务。
    如何判读
    总容量可能掩盖单盘或单节点压力,先确认可放置与临时空间,不能直接安排退役。
  2. 新增 CN 后首次访问很慢,后续查询恢复,而扫描范围没有变化。

    只读核对
    对照节点扩容时间、缓存命中、远端读取量和对象存储延迟。
    如何判读
    可能是冷缓存回源成本,需要建立首次访问基线,不应归因为 SQL 回归或立刻清缓存重试。
  3. FE 与 CN 心跳正常,但访问共享数据持续报错。

    只读核对
    检查实际存储类型、存储配置、权限引用和同时间窗远端请求错误。
    如何判读
    协调与计算节点存活不能证明存储路径可用,应把远端依赖作为独立故障层。
常见误区与判断边界 2 项

把两种模式当配置开关

官方支持说明不将两种模式直接转换或混合部署作为通用能力。迁移应保留独立目标、历史导入、增量窗口与读切换证据,不能假定重启即可完成且随时可回退。

把远端存储当完整备份

持久数据、FE 元数据、权限配置和逻辑误删恢复有不同保护范围。CN 重启成功或对象仍在都只证明局部状态,恢复验收要覆盖元数据关联与业务样本,并保留独立可恢复来源。

交接时应留下的证据

作为记录提纲使用,不是自动检查结果;未取得的证据应标记缺口,并注明负责人。

  • 记录实际模式、FE/BE/CN 清单与精确版本,按模式标明本地盘和远端存储的职责。
  • 保留 BE 逐盘水位与副本影响,或 CN 冷热缓存、远端读取和请求错误的同窗口证据。
  • 归档相同数据和并发下的扫描、聚合、Join 负载与资源成本,注明首次与热缓存访问差异。
  • 列明迁移增量补齐、旧读路径、独立恢复来源和停止缩容条件,未实测能力不写成已通过。

记录需包含环境、版本、时间与时区;分享前脱敏,不附访问令牌、密码或完整业务敏感数据。

继续阅读与资料核对

补充相关主题,再结合当前环境的实施记录形成结论。

返回原理导读

DOUYA OPS ECOSYSTEM

贡献你的经验,帮助更多运维人

把故障复盘、标准流程和最佳实践沉淀为可检索、可复用的知识内容。