一、官方定位
“Doris is a MPP-based interactive SQL data warehousing for reporting and analysis.” Doris 是一个用于报告和分析的基于 MPP 的交互式 SQL 数据仓库。
Doris 主要集成了 Google Mesa 和 Apache Impala 的技术。
二、主要用途
提供 OLAP 数据分析。(同时支持聚合和明细查询分析)
三、实现原理
架构
Doris 的整体架构分为两层。多个 FE 组成第一层,提供 FE 的横向扩展和高可用。多个 BE 组成第二层,负责数据存储于管理。
FE 节点分为 follower 和 observer 两类。follower 节点通过选举,其中一个 follower 成为 leader 节点,负责元数据的写入操作。当 leader 节点宕机后,其他 follower 节点会重新选举出一个 leader,保证服务的高可用。observer 节点仅从 leader 节点进行元数据同步,不参与选举。可以横向扩展以提供元数据的读服务的扩展性。
后端守护进程负责数据存储和执行 SQL 查询。可以部署多个后端守护进程以提供可伸缩性和容错性
前端(FE)
元数据
Doris 的元数据是全内存的。每个 FE 内存中,都维护一个完整的元数据镜像。
Doris 的元数据主要存储4类数据: