Doris 2.x这些新特性你知道吗?——存算分离、倒排索引、Pipeline引擎
先说结论
Doris 2.x三大核心升级:① 存算分离:BE变成无状态计算节点,数据存对象存储,弹性扩缩容;② 倒排索引:支持全文检索,替代ES的部分场景;③ Pipeline执行引擎:充分利用多核CPU,高并发性能提升2-3倍。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
Doris从1.x到2.x是一次巨大的跃迁。很多面试官会问:你用的Doris什么版本?2.0有什么新特性?这些问题不是考你背版本号,而是看你有没有关注技术发展。我在某元宇宙社交公司用的是Doris 1.2,在某短剧出海公司用的是Hologres,对比过两者的功能差异。今天把Doris 2.x的核心新特性讲清楚。
新特性一:存算分离
| 维度 | 存算一体(Doris 1.x) | 存算分离(Doris 2.x+) |
|---|---|---|
| 数据存储 | BE本地SSD | 对象存储(S3/OSS) |
| 扩容 | 加BE + Balance数据迁移 | 加BE即可,不用迁数据 |
| 缩容 | DECOMMISSION + 数据迁移 | 直接下线BE |
| 存储成本 | 高(SSD) | 低(对象存储便宜10倍) |
| 查询性能 | 最快(本地读取) | 略慢(需File Cache加速) |
| 弹性 | 差(迁移耗时) | 好(秒级扩缩容) |
我的看法:存算分离是大趋势,但目前生产环境大部分还是存算一体。原因是存算分离的查询性能依赖File Cache命中率,冷查询首次访问比较慢。如果查询模式固定(实时大盘总查最近几天),File Cache命中率高,存算分离很好。
新特性二:倒排索引(Inverted Index)
-- 创建倒排索引
CREATE TABLE log_table (
log_time DATETIME,
level VARCHAR(16),
message TEXT,
service VARCHAR(64),
INDEX idx_msg (message) USING INVERTED
PROPERTIES('parser' = 'chinese') -- 中文分词
) DUPLICATE KEY(log_time)
DISTRIBUTED BY HASH(service) BUCKETS 16;
-- 全文检索查询
SELECT log_time, level, message FROM log_table
WHERE message MATCH 'OOM' AND level = 'ERROR'
ORDER BY log_time DESC LIMIT 20;
-- Doris现在既能全文检索又能做聚合分析
-- 日志分析场景可以用Doris替代ES+Kibana
新特性三:Pipeline执行引擎
① 充分利用多核CPU:老Volcano模型每个Fragment只用一个线程,32核CPU可能只用了4个核。Pipeline模型可以用满所有核心。
② 并发性能提升:老模型高并发时线程数暴增导致频繁上下文切换,Pipeline模型用固定线程数通过异步调度避免切换开销。实测50+ QPS场景性能提升2-3倍。
③ 内存更可控:Pipeline模型对每个查询的内存有更精细的控制,减少OOM风险。
其他值得关注的新特性
| 特性 | 版本 | 价值 | 适用场景 |
|---|---|---|---|
| Merge-on-Write | 2.0 | Unique模型查询性能提升3-5倍 | CDC同步表/维度表 |
| Workload Group | 2.0 | 资源隔离,防止查询互相影响 | 多租户环境 |
| 异步物化视图 | 2.1 | 支持多表JOIN的预计算 | 复杂报表加速 |
| File Cache | 2.1 | 缓存外部数据到本地 | Multi-Catalog加速 |
| Auto Bucket | 2.1 | 自动计算最优桶数 | 简化建表 |
实战观点:升级到2.x值不值?
如果我现在重新搭建某元宇宙社交公司的Doris集群,一定会选2.x版本。最有价值的三个特性:
① Merge-on-Write的Unique模型:我们的dim_user表用Unique模型做CDC同步,1.x的Merge-on-Read查询时有性能开销。2.x的Merge-on-Write查询速度提升3-5倍。
② Workload Group:第11篇和第15篇反复提到的资源隔离需求,1.x没有原生方案。2.x的Workload Group是真正的资源组隔离。
③ Multi-Catalog:第10篇讲的冷热分离在1.x要通过外部Spark查S3实现,2.x用Multi-Catalog直接在Doris里查S3,架构更简洁。
面试高频追问
追问一:Doris和StarRocks在2.x特性上谁更领先?
两者功能差异在缩小。StarRocks的物化视图和Pipeline引擎推出更早,Doris在2023-2024年追赶上来。核心功能差距在10%以内,选型更多看生态和团队经验。
追问二:从1.x升级到2.x有什么风险?
主要风险:SQL行为可能有细微差异、新功能需要逐步验证、存算分离稳定性需观察。建议先在测试环境验证核心SQL,确认结果一致后灰度上线。
总结
Doris 2.x新特性面试重点讲三个:① 存算分离(弹性扩缩容+降低存储成本);② 倒排索引(支持全文检索,可替代部分ES场景);③ Pipeline执行引擎(多核利用率提升,高并发性能提升2-3倍)。能结合项目说'如果用2.x我会怎么做',展示判断力,面试官会很加分。
下一篇是Doris系列的最后一篇:20道题总结篇——快速查阅表+面试备战指南!
你们用的Doris什么版本?有没有计划升级2.x?评论区聊聊~
关注「Wood聊大数据」| 9年大数据老兵,聊技术、聊职场、聊成长