🟦 1. Doris 系统整体架构概览
Doris(Apache Doris)是一个高性能、实时、统一的 MPP(Massively Parallel Processing)分析型数据库,专注于:
高并发低延迟查询(秒级甚至毫秒级)
存储与计算层面高压缩 + 快速向量化处理
处理实时 + 离线数仓数据场景
统一数仓架构(支持明细存储、聚合存储、主键更新、物化视图)
海量数据下的高速多维分析
Doris 采用了分布式架构,并融合了多个优秀系统的理念:

📌 Doris 并非某个系统的简单优化版,而是融合创新后的完整 OLAP 数据库。
🟦 2. Doris 架构演进:从简单到云原生
Doris 的架构发展经历了两个阶段:
⭐ 2.1 Doris 3.0 之前:存算一体架构(经典、稳定、简单)
在 3.0 以前,Doris 整体架构十分简洁,只有 FE 和 BE 两类核心角色。
🖇 整体结构如下:

🧩 2.1.1 FE(Frontend)角色的详细说明
FE 是 Doris 的“大脑”,负责:
🧠 A. 请求管理
接受 MySQL 协议请求(兼容 MySQL 客户端)
执行 SQL 语法解析(Parser)
执行语义分析(Analyzer)
生成查询计划(Planner)
🗂 B. 元数据管理(核心职责)
掌管全库“结构层”信息,包括:
表结构、分区结构、索引信息
Tablet 路由信息(BE 链接路线)
数据版本信息(rowset 元信息)
事务信息(导入事务、版本提交等)
🔄 C. 节点管理
负责 BE 节点加入 / 退出管理
健康检查
元数据复制与一致性维护
🧩 2.1.2 FE 的 Master / Follower / Observer 区别详解
📌 企业常见部署方式
1 Master + 2 Follower(保证高可用)
可按需增加若干 Observer 用于提升查询吞吐
🔐 2.1.3 FE 元数据一致性机制(非常重要)
Doris 使用 Paxos 协议 来保证 FE 多节点之间的数据一致性。
元数据持久化采取“三套机制联合”:

Memory
元数据常驻内存,用于高速访问
Journal(WAL,预写日志)
每次元数据变更先写日志再写内存
通过日志同步到其他 FE 节点
Checkpoint
定期将内存数据快照化写入磁盘
避免日志无限体积增长
📌 执行顺序如下:

元操作产生(DDL/ 事务提交)
写入 Journal(WAL 预写日志)
更新内存元数据
Journal 同步到其他 FE
周期性 Checkpoint 保存内存快照
⭐ 2.2 BE(Backend)详细说明
BE 是 Doris 的“心脏”,负责:
🔢 数据存储(列式)
Segment 文件(自研列式格式)
多副本存储机制(默认 3 副本)
高效索引(前缀索引、BloomFilter)
⚡ 查询执行(向量化执行框架)
主流程:Scan → Filter → Hash → Join → Aggregate
向量化执行避免逐行处理,大幅提升性能
支持编译执行 Pipeline
🔁 数据管理
Compaction(合并小文件、清理版本)
Tablet 负载均衡
删除标记处理(害怕数据膨胀)
🟦 3. 存算分离架构(Doris 3.0+)
🎯 存算分离的目标
更灵活的资源扩缩容
更低的存储成本(S3 / OSS 等)
更强的多租户隔离
更符合云原生部署趋势
Doris 3.0 将原先的 FE 与 BE 职责进一步细分,使架构成为工业级标准:
⭐ 3.1 三层架构分层说明

⭐ 3.2 元数据层(Meta Layer)
承担 FE 的元数据管理职责
维护查询计划、租户配置、表元信息
高可用保证数据一致性
➕ 元数据操作从 BE 中剥离,提高集群稳定性。
⭐ 3.3 计算层(Compute Layer)
由多个 Compute Group 组成,每组可视为一个租户
每组可以独立:
资源管理
任务调度
并发控制
集群扩缩容
BE 在这一层变成 无状态执行节点,可以轻松:
扩容
缩容
失效节点自动替代
⭐ 3.4 存储层(Storage Layer)
存储层支持多种对象存储:
S3
OSS / COS / OBS
MinIO
Ceph
HDFS
使用对象存储的好处:
低成本(比自建服务器硬盘便宜)
无限扩容
数据天然高可用
多地多活
🟦 4. Doris 自研列式存储架构(核心能力)
Doris 的存储引擎经过高度定制,服务于高性能分析。
⭐ 4.1 Segment 文件(核心)
Segment 是 Doris 的物理存储单位,包含:
数据页(Data Pages)
列数据编码(Dictionary、RLE、Bitmap…)
索引数据(Prefix Index)
Footer(元信息)
特点:
按列存储(Column-oriented)
高压缩
按需读取
高效并行扫描
⭐ 4.2 Prefix Index(前缀索引)
对排序键列生成前缀索引,可快速定位:
范围查询
点查
Join Probe 时加速 Key 查找
⭐ 4.3 Data Region & Index Region
Data Region:列数据 + 编码
Index Region:前缀索引、BloomFilter、ZoneMap
配合向量化执行实现极快查询
🟦 5. Doris 数据模型(极其关键)
Doris 的三大模型面向不同业务场景:
⭐ 5.1 Aggregate 模型(聚合模型)
有聚合键(Key Columns)
Value 列自动做聚合
类似物化视图聚合
✔ 适合报表、指标类数据
⭐ 5.2 Unique 模型(主键模型)
支持主键唯一性
支持更新(Merge-on-Write)
✔ 适合 CDC 数据、业务明细表
⭐ 5.3 Duplicate 模型(重复模型)
不做聚合,也不做唯一性控制
✔ 适合日志、宽表数据
🟦 6. 存算一体 vs 存算分离(总结)
📌 结论:存算分离是未来趋势,适用于大规模企业级场景。
🟦 7. 总结(Rich Version)
Doris 结合多种系统优势,真正实现了高性能 + 实时 + 统一的数据平台能力
从 3.0 起支持云原生的存算分离架构,是 OLAP 方向最具潜力的系统之一
其自研存储格式、向量化执行引擎、Paxos 元数据一致性等技术共同构建了 Doris 的高性能基础
适用于中小企业到大型集团的多种数仓与分析场景
在湖仓一体、实时数仓、多租户资源池、企业分析体系中表现出色