当前位置: 首页 > backend >正文

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级数据量的高效管理,成为新一代实时数仓的核心基础设施。其开源模式和技术民主化特性,极大地降低了企业构建实时分析平台的技术门槛,加速了数据驱动型组织的规模化落地,重构了大数据基础设施的竞争格局。

http://www.xdnf.cn/news/541.html

相关文章:

  • 数据防泄漏:企业信息安全的重要防线
  • Datawhale AI春训营学习
  • PHP框架在大规模分布式系统中的适用性如何?
  • deekseak 本地windows 10 部署步骤
  • ACM ICPC算法基础包括哪几类
  • Withholding Tax(预扣所得税)-前台操作 Part 1
  • System.in 详解
  • 【笔记】网络安全管理
  • 嵌入式单片机开发 - Keil MDK 编译与烧录程序
  • c++中的类有关概念
  • 精益数据分析(6/126):深入理解精益分析的核心要点
  • 五分钟学会如何基本使用JJWT!!!
  • Java虚拟机面试题:垃圾收集(下)
  • 3.基础开发工具
  • CLIP赋能视频分析:时空侧网络调优,行人属性识别效率革命
  • Java—— 常见API介绍 第二期
  • C++/Python实现RGB和HSI相互转换
  • Linux——firewalld防火墙(笔记)
  • 深度学习语音识别
  • bat脚本转换为EXE应用程序文件
  • 案例驱动的 IT 团队管理:创新与突破之路:第六章 组织进化:从案例沉淀到管理体系-6.1 案例库建设方法论-6.1.2案例分级与标签体系
  • OpenStack Yoga版安装笔记(23)Swift安装
  • QML中的3D功能--模型导入与修改
  • LRU Java实现
  • 五、小白如何用Pygame制作一款跑酷类游戏(主角跳跃和滑行动作的实现)
  • Linux | I.MX6ULL 使用 Yocto 文件系统开发 QT
  • 015-C语言字符函数和字符串函数
  • java蓝桥杯b组
  • 大模型Rag - 两大检索技术
  • 【滑动窗口】最⼤连续 1 的个数 III(medium)