Apache Doris 架构与原理 专栏导览
专栏定位
本专栏聚焦 Apache Doris MPP 分析数据库的架构设计与实时分析能力——从 FE/BE 分离架构和 MySQL 协议兼容,到 Tablet 分桶存储与 Compaction 策略,再到向量化执行引擎和多种数据导入方式。Doris 以其极简架构(无外部依赖)、MySQL 协议兼容和实时导入能力,成为实时分析和联邦查询的热门选择。
目标读者
- 使用 Doris 做实时数仓、报表分析的数据工程师
- 需要在 Clickhouse、Doris、StarRocks 之间做选型的架构师
- 对 MPP 数据库和向量化执行引擎设计感兴趣的技术爱好者
专栏目录
| 序号 | 标题 | 核心内容 |
|---|---|---|
| 01 | 01 Doris 全局架构——FE BE 分离与 MPP 执行 | Frontend(元数据/查询规划)与 Backend(存储/执行)的职责分离、MySQL 协议兼容、与 Clickhouse 的定位差异 |
| 02 | 02 存储引擎——Tablet、Rowset 与 Compaction | Tablet 的分桶机制、Rowset 的列式存储格式、Cumulative/Base Compaction 策略、前缀索引与 ZoneMap 索引 |
| 03 | 03 查询引擎——向量化执行与 Pipeline | 查询规划(RBO → CBO)、Fragment 的分布式执行、向量化引擎的列式计算、Runtime Filter 的下推优化 |
| 04 | 04 数据模型——Duplicate、Aggregate 与 Unique | 三种数据模型的适用场景、Aggregate 模型的预聚合机制、Unique 模型的 Merge-on-Read vs Merge-on-Write、物化视图与 Rollup |
| 05 | 05 实时数据导入——Stream Load、Routine Load 与 Flink Connector | 导入事务的两阶段提交、Stream Load 的 HTTP 接口、Routine Load 消费 Kafka、Flink-Doris-Connector 的 Exactly-Once 语义 |
| 06 | 06 Doris 运维与调优——分区分桶设计、慢查询与扩缩容 | 分区策略(Range/List/动态分区)、分桶数计算、Tablet 均衡与修复、BE 扩缩容的数据迁移、与 StarRocks 的技术对比 |
推荐阅读路径
核心原理路径:01 → 02 → 03 → 04
实战运维路径:05 → 06
前置知识
- SQL 基础和数据仓库概念
- 建议对比阅读 ClickHouse 专栏了解另一种 OLAP 引擎的设计思路
关联专栏
- ClickHouse:同类 OLAP 引擎的设计对比
- Trino:联邦查询 vs 单一引擎的选型
- Kafka:Routine Load 消费 Kafka 实时数据
- Flink:Flink-Doris-Connector 的 Exactly-Once 写入