Doris,新一代实时数仓核心基础设施
起源发展
Apache Doris是一款开源的、面向实时分析的分布式MPP(大规模并行处理)数据库系统,其前身是百度Palo项目。
- 2012年为了满足数据量快速增长和实时分析的迫切需求,百度开始着手研发Palo;
- 2017年将其捐赠给Apache基金会并更名为Doris, 之后进入Apache孵化器,迅速吸引了包括美团、京东、小米等互联网企业的关注,在架构和能力上获得了非常大的改进,支持数千节点级的扩展,引入向量化执行引擎,TPC-H性能提升3-5倍,并实现了存算分离架构原型;
- 2022年正式毕业成为顶级项目,并于2023年发布2.0版本,支持事务型分析能力。
核心特点
作为新一代实时分析型数据库,Doris具有以下的核心技术特点,这些特性共同构成了其在OLAP领域的核心竞争力。
- 极速分析能力
Doris采用MPP并行计算框架,查询任务可自动拆分为多个子任务,在后端节点并行执行实现线性扩展。支持列式存储引擎和向量化执行引擎,基于SIMD指令集的批量处理模式,LLVM动态编译优化,关键算子性能提升3-5倍。
- 实时分析能力
Doris具有高效的更新能力,主键模型支持UPSERT操作和部分列更新技术,避免全行重写开销,Kafka的实时流摄入能够将延时控制毫秒级,通过预聚合Rollup自动匹配查询和增量刷新机制,物化视图能够捕获数据秒级变化,实现实时查询。
特性 | Doris | Hadoop生态(Hive+Spark) | 传统MPP数据库 |
---|---|---|---|
查询延迟 | 亚秒级 | 分钟级 | 秒级 |
数据更新能力 | 支持实时更新 | 批量覆盖 | 部分支持 |
并发能力 | 千级QPS | 百级QPS | 百级QPS |
运维复杂度 | 无外部依赖 | 依赖HDFS/YARN/ZooKeeper | 中等 |
- 高可用及弹性扩缩容
Doris架构设计具备优秀的故障自愈和在线扩缩容能力:
BE节点宕机时,副本自动切换志健康节点,新的BE节点秒级接入,系统自动均衡数据分布;
FE主节点故障,10秒内完成新主选举,FE节点动态增删,数据自动重新同步。
整体架构解析
Doris采用经典的Master-Slave架构,由Frontend (FE)、Backend (BE) 等核心组件构成,支持水平扩展与高可用部署。
- Frontend(FE):元数据与查询中枢
Frontend主要负责接收用户请求、查询解析生成分布式执行计划以及节点管理等功能,采用分层架构设计,根据在整体架构中承担的职责分为三种角色:
角色 | 功能 |
---|---|
Master | FE Master 节点负责元数据的读写。当 Master 节点的元数据发生变更后,会通过 BDB JE 协议同步给 Follower 或 Observer 节点。 |
Follower | Follower 节点负责读取元数据。当 Master 节点发生故障时,可以选取一个 Follower 节点作为新的 Master 节点。 |
Observer | Observer 节点负责读取元数据,主要目的是增加集群的查询并发能力。Observer 节点不参与集群的选主过程。 |
- Backend(BE):数据存储与计算引擎
Backend主要负责数据存储和查询计划的执行,数据按分区分桶策略切分为数据分片,在BE中以多副本的方式存储。
Backend支持混合负载管理,通过资源组(Resource Group)隔离导入、查询等资源消耗较大任务的资源,避免对其他操作造成影响;支持数据亲和性的本地化计算和算子下推,优先在存储节点执行计算,减少网络开销;此外还支持后台自动合并数据版本,优化查询性能。
FE 和 BE 进程都可以横向扩展,单个集群可以支持数百台机器和数十 PB 的存储容量,FE 和 BE 进程通过一致性协议来保证服务的高可用性和数据的高可靠性。
典型应用场景
Apache Doris 作为高性能实时分析型数据库,凭借其极速查询、高并发支持与多模数据处理能力,在多个领域展现出显著优势。
- 实时数据仓库
传统数仓存在小时级延迟,无法满足实时监控与决策需求。Doris通过 Stream Load 或 Routine Load 实时摄入 Kafka 等流数据,实现数据秒级可见;主键模型支持 UPSERT 操作,处理订单状态变更、库存实时更新等场景,能够实现数据延时 < 5秒,亿级数据聚合 < 1 秒,在电商实时大屏(GMV、UV 分钟级刷新)、金融实时风控(交易反欺诈)有着广泛的应用。
- 用户行为分析
用户行为数据量庞大(日均千亿级),需快速计算留存率、转化漏斗等指标。Doris通过Bitmap精准去重,Rollup物化视图预计算常用维度组合,支持5000+ QPS的即席查询,满足运营人员的分析需求。
- 日志分析与运维监控
日志数据半结构化、体量大,需快速检索与聚合。Doris通过倒排索引加速日志关键词的索引分析,直接解析嵌套JSON字段,避免ETL预处理。
- 商业智能与报表
传统 BI 工具面对复杂报表时响应慢,无法支持交互式探索。Doris按时间自动管理分区,避免全表扫描,结合MPP等多项技术,对10 亿行数据关联查询可实现亚秒级返回。同时通过多租户Resource Group隔离不同部门查询资源,避免业务之间的相互干扰。
写在最后
在传统OLAP方案中,企业往往需要在Hadoop生态组件(如Hive、Spark)与商业分析型数据库(如Greenplum)之间权衡性能与成本。Doris通过融合MPP架构的高效计算能力、列式存储的压缩优势以及分布式系统的弹性扩展特性,实现了亚秒级响应的实时分析能力,同时支持PB级数据量的高效管理,成为新一代实时数仓的核心基础设施。其开源模式和技术民主化特性,极大地降低了企业构建实时分析平台的技术门槛,加速了数据驱动型组织的规模化落地,重构了大数据基础设施的竞争格局。