首页/数据/数仓建模速查/StarRocks:向量化 MPP 分析引擎
湖仓与引擎63 条

StarRocks:向量化 MPP 分析引擎

StarRocks 采用 FE 与 BE 架构,支持明细、聚合、主键、更新四类模型,兼容 MySQL 协议并支持物化视图与湖表查询。

数仓建模速查数据更新于 2026-10-13

StarRocks 是什么

StarRocks 是采用向量化执行与 MPP 架构的分析型数据库,进程分两类:FE 负责元数据管理与查询规划,BE 负责数据存储与计算。数据组织提供明细、聚合、主键、更新四种表模型,兼容 MySQL 协议,可以直接用 MySQL 客户端连接。除了单表分析,它还支持物化视图、Colocate Join 与通过外部 Catalog 查询湖上数据。StarRocks 与 Apache Doris 同源,模型与语法相近但存在差异,脚本迁移时不能直接照搬。

基本信息

架构FE 负责元数据与查询规划,BE 负责存储与执行
表模型明细、聚合、主键、更新四种
协议兼容 MySQL 协议,可用 MySQL 客户端直连
加速手段同步与异步物化视图、Colocate Join、前缀索引
湖上查询建外部 Catalog 直接查 Hive、Iceberg、Hudi、Delta 表
建表属性PROPERTIES 中配置 replication_num、分桶等相关参数
同源关系与 Apache Doris 同源,语法相近但有差异
副本约束副本数不能超过 BE 节点数量

典型使用场景

  • 实时看板:用主键模型承接上游 upsert 的实时数据,写入即可查询
  • 明细分析:明细模型存原始明细,配合向量化扫描处理大范围过滤聚合
  • 固定指标预聚合:聚合模型或异步物化视图承担高频报表查询
  • 高并发点查:主键模型配合前缀索引,支撑面向用户的实时查询
  • 湖上分析:建外部 Catalog 直接查 Hive 或 Iceberg 表,不复制数据

建表与外部查询

建表与外部查询
CREATE TABLE dw.dws_trade_store_day (   -- 聚合模型:导入即聚合
  dt        DATE NOT NULL,
  store_id  VARCHAR(32) NOT NULL,
  order_cnt BIGINT SUM DEFAULT '0',
  pay_amt   DECIMAL(18,2) SUM DEFAULT '0'
)
AGGREGATE KEY(dt, store_id)
DISTRIBUTED BY HASH(store_id) BUCKETS 16
PROPERTIES ('replication_num' = '3');  -- 副本数不得超过 BE 节点数

-- 外部 Catalog:不搬数据,直接查湖表
CREATE EXTERNAL CATALOG iceberg_lake PROPERTIES (
  'type' = 'iceberg',
  'iceberg.catalog.type' = 'hive',
  'hive.metastore.uris' = 'thrift://metastore:9083'
);
SELECT count(*) FROM iceberg_lake.demo.trade_order WHERE dt = '2026-10-12';

四种模型的选择

模型写入行为典型场景
明细 Duplicate追加写,不去重日志与明细分析
聚合 Aggregate按 key 聚合固定维度的指标表
主键 Primary Key按主键覆盖,支持部分列更新维表、实时明细表
更新 Update同主键覆盖,早期模型行级更新场景,现多由主键模型替代
副本数必须与 BE 节点数量匹配。三副本配置在只有两台 BE 的集群上建表会直接失败,扩容或缩容时也要同步检查已建表的副本设置。
与 Doris 语法相近容易让人掉以轻心,迁移脚本时仍需逐项核对模型定义、参数名与物化视图语法,否则会返工到上线前夕。

易错点

  • 副本数超过 BE 节点数:建表直接失败,扩容前后都要重新核对
  • 把它当 MySQL 用做高频窄表事务更新:OLAP 定位不适合事务型负载,写入与并发都受限
  • 用聚合模型存比率类指标:跨维度汇总时数字自相矛盾,只能重建表
  • 分桶数设置不合理:或数据倾斜、或 tablet 过多,查询与导入都受影响
  • 直接照搬 Doris 或 MySQL 的 SQL 方言:函数与参数差异导致迁移后期返工

数据来源与参考

  • StarRocks 官方文档:Architecture
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌