公司动态

Starrocks架构特性与OLAP选型

📅 2026/7/31 1:32:49
Starrocks架构特性与OLAP选型
一、StarRocks 架构原理StarRocks 采用 FEFrontend BEBackend的经典二层架构从 3.0 版本开始引入 CNCompute Node支持存算分离部署模式。用户 SQL 先进入 FE被解析成逻辑计划再被优化成物理执行计划FE 会把一个查询拆成多个执行片段下发到多个 BE 并行运行这是典型MPP模式查询过程中会涉及Join、聚合、过滤、排序、Shuffle/Broadcast 分发等分布式算子选择所以 StarRocks 的性能上限不只取决于单机 CPU而取决于计划是否合理 数据是否能被局部化处理 集群并行度。FE 负责SQL 解析、元数据管理、权限、查询优化、调度协调BE 节点同时承担计算和存储数据以列式格式存储在本地磁盘这是经典的 Shared-Nothing 架构适合对延迟敏感的实时分析场景CN 节点为无状态计算节点数据持久化到对象存储S3、HDFS、OSS这一模式支持弹性伸缩、降低存储成本适合数据量大但查询负载波动明显的场景。这本质上是“控制面/数据面分离”FE 负责决定怎么跑BE/CN 负责高吞吐地真正执行。FE 通常以多副本方式部署以支持高可用BE/CN 节点可以横向扩展数据通常有副本机制以提高可用性和容错性实际上StarRocks 的扩展方式更像“加机器扩并行度”而不是“升级单机吃更大查询”。二、StarRocks 核心特性1.MPP 并行执行StarRocks 是 MPP 分析型数据库一个查询会被切成多个子任务在多个 BE 上同时执行它擅长大扫描、大聚合、多维分析不擅长高频点写、强事务更新那类 OLTP 工作负载。2.向量化执行引擎StarRocks 采用全面向量化Fully Vectorized执行引擎从存储层读取到计算层输出所有算子均以列式批量Column Batch方式处理数据充分利用 CPU SIMD 指令集SSE4.2 / AVX2显著减少虚函数调用和分支预测失败的开销。与传统逐行模型相比向量化引擎在典型聚合查询上可获得3-10 倍性能提升。3.列式存储StarRocks 使用列式存储分析查询只读需要的列这比行存更适合 BI、报表、宽表聚合因为能显著减少 I/O。4.数据跳过与索引能力StarRocks 具备分区、分桶、列统计等机制用于减少扫描范围它支持多种加速过滤/命中的能力例如 Bitmap 类思路与数据块级跳过能力。它的关键思想不是“把所有数据都扫一遍再算”而是尽量提前排除不可能命中的数据块。5.CBO 优化器StarRocks 具有基于代价的优化器会综合统计信息选择 Join 顺序、分发策略和物理算子。真正难的不是“支持 SQL”而是在复杂多表场景下选对执行计划这一点直接决定查询尾延迟。6.物化视图StarRocks 支持物化视图用于预计算高频聚合或复杂查询结果可基于调度策略自动刷新在合适条件下优化器可以自动把原查询改写为命中物化视图无需应用层改造这对固定口径报表、公共指标层、热点查询非常有杀伤力因为它把“实时重算”变成了“预先算好”。7.实时导入能力StarRocks 支持多种导入方式包括批量导入、流式导入、订阅式导入等常被用于对接 Kafka/Flink 一类实时数据链路这决定了它不像传统离线数仓那样只能 T1更适合分钟级甚至更低延迟的分析服务。8.表模型StarRocks 提供多种表模型如 Duplicate Key、Aggregate、Unique/Primary Key 等这些模型的本质不是“语法区别”而是你在去重、聚合、更新语义、查询性能之间做取舍实践里最容易犯错的是没想清楚业务更新语义就先选表模型后面会很痛。9.湖仓/外表能力StarRocks 近年强化了对外部数据源与湖仓查询能力的支持可直接查询部分外部存储数据相比 Trino/Presto 的纯联邦查询模式StarRocks 可将热数据导入本地获得更高性能同时保留对冷数据的湖上直查能力这使它不只是一套封闭存储也能作为“统一查询层”接湖里的数据。10.存算分离3.0 版本引入的存算分离是 StarRocks 架构演进的重要里程碑弹性扩缩CN 节点无状态可按需快速扩容/缩容成本优化热数据本地缓存 冷数据对象存储存储成本下降显著多租户隔离不同 Warehouse 可独立使用 CN 资源池三、常用OLAP对比与选型1.典型查询延迟对比2.多维能力对比3.综合对比表维度StarRocksClickHouseApache DorisTrino架构模型MPPShared-Nothing / Shared-DataMPPShared-NothingMPPShared-NothingMPPShared-Nothing纯计算存算分离3.0 原生支持ClickHouse Cloud商业版3.0 在推进Multi-Compute Cluster天然无状态计算执行引擎全面向量化 Pipeline向量化 Pipeline向量化 Pipeline向量化部分算子优化器CBOCascades 框架成熟RBO 为主 部分 CBONereids CBO2.0 引入CBO成熟多表 Join优秀CBO Runtime Filter较弱设计偏宽表良好逐步追赶优秀天生联邦设计实时写入Primary Key 模型毫秒级批量写入为主MergeTreeUnique Key 模型秒级不支持只读查询引擎并发能力高千级 QPS中等百级 QPS高千级 QPS中高依赖资源隔离数据湖集成External Catalog 直查有限需外挂或 ClickHouse CloudMulti-Catalog 直查原生强项Connector 生态丰富物化视图异步 MV 自动路由有限Projection 为主异步 MV 自动路由不支持协议兼容MySQL 协议自有协议 HTTPMySQL 协议自有协议JDBC/ODBC开源许可Apache 2.0Apache 2.0Apache 2.0Apache 2.0社区活跃度高GitHub 9k stars极高GitHub 38k stars高GitHub 12k stars国内活跃高GitHub 10k stars典型短板生态工具链待完善多表 Join、高并发弱CBO 成熟度追赶中不支持数据写入/存储4.OLAP选型指引选 StarRocks多表 Join 实时更新 高并发追求一个引擎解决多种分析需求选 ClickHouse超大单表聚合、时序分析、日志分析不介意 Join 能力弱选 Apache Doris需求与 StarRocks 类似但更看重国内社区支持、运维简单选 Trino数据散布多源、不需要存储层、已有成熟数据湖基础设施