StarRocks 名词解释:把缩写一个一个拆开
StarRocks 研究报告里缩写太多(MPP、CBO、FE、CN、MoR、2PC……),要一篇讲人话的名词解释。
文本版 · 供搜索与朗读
StarRocks 名词解释:把缩写一个一个拆开
数据仓库 · OLAP 引擎 · 名词解释
StarRocks 名词解释:把缩写一个一个拆开
StarRocks 研究报告里缩写太多(MPP、CBO、FE、CN、MoR、2PC……),要一篇讲人话的名词解释。
目 录
开场:一家只做现问现答的饭店
三个总词:OLAP、OLTP、MPP
引擎三件套:向量化、CBO、Pipeline
架构词:FE、BE、CN 和那本账
表模型词:四种记账法
提速词:从翻账本到预制菜
装货词:货怎么进仓
杂项:profile、TPC-DS、external catalog
收摊
0. 开场:一家只做现问现答的饭店
那份报告读起来费劲,症结不在内容,在缩写密度。MPP、CBO、FE、CN、MoR、2PC——二十几个黑话一锅炖。我拆一遍给你看,全挂在一个画面上:一家专门伺候报表的饭店。你开经销店,年底想问"华东区哪个经销商的洗护品类卖得最好",这句话扔进饭店,几秒内端菜。整篇报告讲的就是这家店怎么修的。
先给个尺度感。一张流水表一年攒下来十亿行,打印出来能从一楼摞到三楼。所谓 OLAP 引擎,就是能在这摞纸上几秒钟翻出答案的后厨。
1. 三个总词:OLAP、OLTP、MPP
OLAP(On-Line Analytical Processing,联机分析处理):"现问现答"这个营业模式本身。特点是一问扫一大片——问年度销量,它要把全年账本都过一遍。
OLTP(On-Line Transaction Processing,联机事务处理):它的反面兄弟,管"一次动一行"——收银台开一张单、改一条库存。ERP、POS 机干的是这个。一个伺候老板的问题,一个伺候柜台的笔。
MPP(Massively Parallel Processing,大规模并行处理):多个灶台同时炒。一个大问题切成小块,十台机器各炒各的,端上来再拼盘。饭店规模上去了,单灶必死。
2. 引擎三件套:向量化、CBO、Pipeline
向量化执行:算账的方式。老式引擎一行一行算,向量化一列一列、一批一批算——CPU 一次指令吃一组数,流水线上货盘搬运。就这一个改动,常能有数倍差距。
CBO(Cost-Based Optimizer,基于代价的优化器):点菜之后、开炒之前,有个老练的领班盘算"先炒哪锅、哪两锅并灶"。他按代价估——谁的行数少、谁过滤得狠、哪条路要跨机器搬数据——最后挑便宜的那条走。与之相对的老办法叫 RBO(规则优化),背死口诀,不看行情。
Pipeline 执行引擎:流水线作业。数据像传送带上的零件,一小块一小块往前流,不等一整筐装满才动。带子不停。查询时延因此压得下来,几百个并发同时在传送带上跑。
3. 架构词:FE、BE、CN 和那本账
FE(Frontend,前端节点):领班。收 SQL、解析、规划、派活。它不管炒菜,管动嘴。
BDBJE(Berkeley DB Java Edition):几个领班之间抄账本用的复制库。名字怎么念不重要,你不需要会念。作用是:领班组共记一本元数据账(表在哪、表结构是什么),谁离职都不丢账。
Follower / Observer:领班的两种跟班。Follower 是副领班,账本人手一份,正领班倒了从中投票选新王;Observer 只抄账不投票,专职应付更多客人的点单——扩读用。
BE(Backend,后端节点):灶台。真正存数据、算数据的机器。一家店的规模就看灶台数。
tablet:数据的最小搬运单位。一张大表切成的小砖块,一块建议 1–10 GB——砖太大搬不动,太小了满地碎渣(元数据爆炸)。
存算分离:3.0 起的新店型。食材统一放中央大仓(就是对象存储,S3/OSS 那类),门店灶台改叫 CN(Compute Node,计算节点),只炒菜不囤货,本地只留一台冰箱(Data Cache,热数据缓存)。加门店不用搬食材,秒级开张;中央仓的存储价钱约是本地 SSD 的十分之一量级。京东物流公开的账:存储成本降了约九成。
StarOS:官方给存算分离那套调度、存储访问、缓存管理起的壳子名。里面 OS 是不是严格意义的操作系统?我当它是个管事的名字看,更深的水我没潜。
4.0 的 File Bundling:顺带一提。小份食材入库时先打包成大箱再进中央仓,对象存储的接口调用降约九成——官方口径,出处我在报告里核过。中央仓模式的"最后一口气"堵上了。
4. 表模型词:四种记账法
Duplicate(明细模型):流水账。来一行记一行,永不合并。审计和追溯就靠它,丢一行你半年后都能对出来。
Aggregate(聚合模型):汇总账。按 key(比如经销商×商品×天)先加总再落库,数字列配好算法——销量用 sum、库存用 max、最新值用 replace。翻得快,代价是明细没了,改口径得整本重记。
Unique(更新模型):覆盖账。同一个 key,新的一行盖掉旧的。它的老实现叫 MoR(merge-on-read,读时合并)——写的时候新旧都留着,查的时候现场合并,查询慢,谓词都推不下去;后来的 MoW(merge-on-write,写时合并)是写入时就地了断旧值。Doris 那边 2.1 起 MoW 默认。一句话:MoR 是懒人记账急死查账的,新表没理由再选它。
Primary Key(主键模型,PK):StarRocks 的招牌账本。主键索引常驻内存,新数据进来先查内存——有旧的就删旧插新(delete-and-insert),写入即去重。实时更新场景的首选。代价明摆着:主键索引吃内存,所以主键要短,用整型代理键,别拿长字符串拼键把内存撑爆。
upsert:update + insert 的合成词。有则改,无则补。一条指令两种结局。
partial update(部分列更新):只改账本里的某几列,其他列不动。库存增量就靠它——每小时只刷一个在库数量列。
5. 提速词:从翻账本到预制菜
前缀索引:每本账事先定好排序(叫排序键),排在前面的列就是最快的翻法。查账总按经销商过滤,排序键就把经销商放第一位。设计表时定,事后难改。
Bitmap 索引(位图索引):给低基数的列用——比如"业态"就便利店、超市、百货等十来种。每种值配一串 0/1,第几家店是这个业态就亮 1。等值过滤飞快。
Bloomfilter(布隆过滤器):给高基数列点查用——单据号、终端 ID 这类几百万个不同值的。它的脾气:说"没有"就真没有,说"有"可能蒙你。用在"这批大概率没有,跳过"的判断上,省扫描。
BITMAP 精确去重:数"多少家店动销了"这类 count distinct,把每个值画进位图再数 1,比逐个比对快一个量级。列类型得是 BITMAP。
分区:账本按月装订。查三月的事只抽三月那本。分区裁剪就是这句承诺的兑现——查询条件一给,无关的整本跳过。TTL(Time To Live,存活时间):每本账的保质期,到期自动卖废纸,防止仓库被史前数据撑死。
分桶:每本账内部再按 hash(key) 归档到不同柜子。两个作用:多个柜子多个伙计同时翻(并行度);同一个 key 永远在同一柜子(为下一词铺垫)。桶数经验值:灶台数乘每台磁盘数,再乘 1 到 2。
Colocate Join(协同放置 join):两张表按同一个 key 分桶、锁在同一排柜子。对账时两边柜门对开,不用把食材推着小车满店跑(免 shuffle)。代价是约束:两表桶数必须一致,柜位被绑定,建表时就要想好。
Bucket Shuffle Join:join 时只把一张表按 key 撒到对方柜子去,搬运量比全网互撒小。
Runtime Filter(运行时过滤器):反着来的聪明。大表还没扫完,join 那头已经知道"只要华东的",回头喊一嗓子:"不是华东的别翻了!"扫描量当场瘦身。
物化视图(MV,Materialized View):预制菜。常被点的菜提前做好装盘,客人再点直接端。同步 MV 在导入的同一事务里顺手刷,只管单表;异步物化视图(2.4 起)能力大一圈——多表 join、定时刷新、还能分区级增量(只重做变化的那个月)。查询改写(query rewrite)是它的魔法:你点的现炒,厨房发现预制菜盘里就有同一道,直接端预制——你毫无感觉,账单时间短了一截。
6. 装货词:货怎么进仓
Stream Load:HTTP 批量收货。经销商每天那份手工日结文件,推一把就进门。
Routine Load:常驻订阅。挂一条 Kafka 流,货到了自动卸,不停工。
Broker Load:从数据湖、HDFS 这类大库房整批搬历史。
Flink Connector:Flink 流计算引擎和 StarRocks 之间的传送带,实时装货主力。
2PC exactly-once(two-phase commit,两阶段提交·恰好一次):传送带断电也不丢不重。先问"都备好了吗",全员点头才落账;中途炸了就整体退回。库存这种数,重一次多一件都是事故,靠的就是它。
7. 杂项:profile、TPC-DS、external catalog
profile:一条查询的体检报告,每一步耗时列得明明白白。调优不是玄学,是读报告:分区裁剪命中没有、join 顺不顺、预制菜改写命中没有、并行度够不够。
TPC-DS:业界的标准模拟考(TPC 委员会的决策支持基准,DS = Decision Support),几十道商业分析题,各家引擎排队考试比总分。4.0 官方口径比上代快约六成,就是这份卷子上的分。
external catalog(外部目录):把 Iceberg、Hive 这些数据湖的账本挂个名牌进店,直接翻、不用搬。湖里的五年冷明细就是这么被查的。
Iceberg:对象存储上的开放表格式,湖仓一体的当红标准——上一篇专门讲过它。
ClickHouse:另一路引擎,单表查询快得吓人,join 和高并发是短板。Doris:StarRocks 的同源兄弟,2020 年分家,各自长成了不同的树。
8. 收摊
三十来个缩写,拆开就这么多东西:一个前台几个灶台、四本账、若干翻账本的技巧、几条进货通道。评审会上谁再甩缩写,你就让他讲人话——他讲不出来,说明他自己也没拆过。
系列前篇里还有一组词(ODS/DWD/DWS/DIM、SCD、事实表),在《数仓分层设计》《缓慢变化维SCD》那两篇的人话版里,这里不重复。
深度研究 · 编译:智柴 · 2026-09-09 · 源文件:StarRocks名词解释_2026-09-09.md
#StarRocks #名词解释 #OLAP #数仓 #渠道数据 #智柴