产品文档

实时数据仓库StarRocks版

2025-01-07 01:41:30

架构选择

StarRocks 支持存算一体架构 (每个 BE 节点将其数据存储在本地存储) 和存算分离架构 (所有数据存储在对象存储或 HDFS 中,每个 CN 仅在本地存储缓存)。您可以根据需要决定数据存储的位置。

存算一体

本地存储为实时查询提供了更低的查询延迟。
在存算一体架构中,BE 负责数据存储和计算。将数据存储在 BE 中使得数据可以在当前节点中计算,避免了数据传输和复制,从而提供极快的查询和分析性能。该架构支持多副本数据存储,增强了集群处理高并发查询的能力并确保数据可靠性,非常适合追求最佳查询性能的场景。


在存算一体架构中,StarRocks 由两种类型的节点组成:FE 和 BE。其中FE 负责元数据管理和构建执行计划,BE 执行查询计划并存储数据,BE 利用本地存储加速查询,并使用多副本机制确保高数据可用性。

1、FE节点
FE 负责元数据管理、客户端连接管理、查询规划和查询调度。每个 FE 在其内存中存储和维护一份完整的元数据副本,保证 FE 之间服务的一致性。FE 分为 Leader FE 节点、Follower 节点和 Observer 节点。Follower 节点可以根据类似 Paxos 的 BDB JE(Berkeley DB Java Edition)协议选举主节点。

FE 角色 元数据管理 节点选主
Leader 节点 Leader FE 负责读写元数据。Follower 节点和 Observer 节点只能读取元数据,并将元数据写请求路由到 Leader FE。Leader FE 更新元数据,然后使用 BDB JE 将元数据更改同步到 Follower 节点和 Observer 节点。只有在元数据更改同步到超过一半的Follower 节点后,数据写入才被认为成功。 Leader FE 技术上也是一个 Follower 节点,是从Follower 节点中选举出来的。要执行主节点选举,集群中必须有超过一半的Follower 节点处于活动状态。当 Leader FE 发生故障时,Follower 节点将开始另一轮主节点选举
Follower 节点 Follower 节点只能读取元数据。它们从 Leader FE 同步和重放日志以更新元数据 Follower 节点参与主节点选举,这需要集群中超过一半的 Follower 节点处于活动状态
Observer 节点 Observer 节点从 Leader FE 同步和重放日志以更新元数据。 Observer 节点 主要用于增加集群的查询并发性,Observer 节点不参与主节点选举,因此不会增加集群的主节点选举压力

2、BE节点
BE 负责数据存储和 SQL 执行。
数据存储:BE 具有等效的数据存储能力。FE 根据预定义规则将数据分发到各个 BE。BE 转换导入的数据,将数据写入所需格式,并为数据生成索引。
SQL 执行:FE 根据查询的语义将每个 SQL 查询解析为逻辑执行计划,然后将逻辑计划转换为可以在 BE 上执行的物理执行计划。BE 在本地存储数据以及执行查询,避免了数据传输和复制,极大地提高了查询性能。

存算分离

在存算分离架构中,BE 被“计算节点 (CN)”取代,后者仅负责数据计算任务和缓存热数据。数据存储在低成本且可靠的远端存储系统中。当缓存命中时,查询性能可与存算一体架构相媲美。CN 节点可以根据需要在几秒钟内添加或删除。这种架构降低了存储成本,确保更好的资源隔离,并具有高度的弹性和可扩展性。
存算分离架构与存算一体架构一样简单。它仅由两种类型的节点组成:FE 和 CN。唯一的区别底层数据使用的是对象存储
<img src="https://s3.cn-north-1.jdcloud-oss.com/jdcloud-portal/video/6c721c56-55de-4b1d-8fb9-d64ab8d646ce20250106143236.png" alt="image.png" contenteditable="false" >

1、节点说明
在存算分离架构中,FE 提供的功能与存算一体架构中的相同。
BE 被 CN (计算节点) 取代,存储功能被转移到对象存储或 HDFS。CN 是无状态的计算节点,可以执行除存储数据外所有 BE 的功能。

2、存储说明
StarRocks 存算分离集群支持两种存储解决方案:对象存储 (例如,AWS S3、Google GCS、Azure Blob Storage 或 MinIO) 和 HDFS。
在存算分离集群中,数据文件格式与存算一体集群 (存储和计算耦合) 保持一致。数据存储为 Segment 文件,云原生表(专门用于存算分离集群的表)也可以利用存算一体架构中支持的各种索引技术。

3、缓存说明
StarRocks 存算分离集群将数据存储与计算分离,使两方都能够独立扩展,从而降低成本并提高系统弹性扩展能力。然而,这种架构会影响查询性能。
为减少架构对于性能的影响,StarRocks 建立了包含内存、本地磁盘和远端存储的多层数据访问系统,以便更好地满足各种业务需求。
对于针对热数据的查询,StarRocks 会先扫描缓存,然后扫描本地磁盘。而针对冷数据的查询,需要先将数据从对象存储中加载到本地缓存中,加速后续查询。通过将热数据缓存在计算单元内,StarRocks 实现了真正的高计算性能和高性价比存储。此外,还通过数据预取策略优化了对冷数据的访问,有效消除了查询的性能限制。
可以在建表时启用缓存。启用缓存后,数据将同时写入本地磁盘和后端对象存储。在查询过程中,CN 节点首先从本地磁盘读取数据。如果未找到数据,将从后端对象存储中检索,并将数据缓存到本地磁盘中

文档反馈

开始与售前顾问沟通

可直接拨打电话 400-098-8505转1

我们的产品专家为您找到最合适的产品/解决⽅案

在线咨询 5*8⼩时

1v1线上咨询获取售前专业咨询

点击咨询
企微服务助手

专业产品顾问,随时随地沟通