订阅更新

Doris 2.x这些新特性你知道吗?——存算分离、倒排索引、Pipeline引擎

Doris手册 第 19 题 约 5 分钟读完

本文目录
  1. 先说结论
  2. 新特性一:存算分离
  3. 新特性二:倒排索引(Inverted Index)
  4. 新特性三:Pipeline执行引擎
  5. 其他值得关注的新特性
  6. 实战观点:升级到2.x值不值?
  7. 面试高频追问
  8. 总结

先说结论

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-Write2.0Unique模型查询性能提升3-5倍CDC同步表/维度表
Workload Group2.0资源隔离,防止查询互相影响多租户环境
异步物化视图2.1支持多表JOIN的预计算复杂报表加速
File Cache2.1缓存外部数据到本地Multi-Catalog加速
Auto Bucket2.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年大数据老兵,聊技术、聊职场、聊成长

刷题进度保存在当前浏览器