【Doris系列01】Doris核心概念与架构,搞懂实时数仓为什么快
文章目录Apache Doris 完整背景发展史必知一、深度解析到底什么是 Apache Doris核心定义MPP架构详解1.1 Doris vs MySQL最核心区分OLAP vs OLTP二、Doris 适合做什么不适合做什么✅ 核心适用场景企业主流落地❌ 不适合场景新手最大误区三、Doris 核心底层概念零基础必懂1. 列式存储Doris 快的核心原因2. 分区与分桶Doris 数据组织核心3. 副本机制4. 前缀索引四、Doris 整体架构详解FE / BE / Broker1. FEFrontend前端节点2. BEBackend后端节点3. Broker辅助组件五、通俗吃透Doris 读写核心流程1. 查询流程为什么查询快2. 写入流程为什么支持实时写入六、Doris 核心优势总结Apache Doris 完整背景发展史必知想要学好一款开源技术首先要了解它的诞生初衷和发展历程才能精准把握它的核心优势与适用场景避免盲目选型和错误使用。Apache Doris 前身是百度内部自研的Palo 项目始于2013年最初是为了解决百度广告业务、流量统计业务中高并发、低延迟、实时多维报表分析的痛点而生专门替代传统离线数仓解决业务报表查询延迟高、无法实时更新、并发能力差的问题。其完整开源发展历程清晰清晰也是目前它能成为主流实时数仓的核心原因2013年百度内部启动 Palo 项目自研分布式分析型数据库支撑内部广告、流量大数据分析业务2017年项目正式对外开源面向行业开放能力2018年百度将项目捐赠给 Apache 基金会正式进入孵化器孵化更名为 Apache Doris2022年6月顺利完成 Apache 孵化器毕业成为Apache 顶级开源项目也是国内主导的标杆级大数据开源项目经过十余年迭代目前 Doris 社区生态极其成熟GitHub Stars 近13000活跃贡献者超670人每月持续迭代优化已被美团、京东、小米、腾讯、华为等上千家企业大规模落地生产是当前国内实时离线一体数仓的首选方案。一、深度解析到底什么是 Apache Doris核心定义MPP架构详解官方标准定义Apache Doris 是一款开源、基于 MPP 大规模并行处理架构的分布式、列式存储、实时离线一体化的 OLAP 分析型数据仓库。为了让零基础读者彻底看懂我们拆解核心关键词拒绝模糊概念MPP 大规模并行处理架构核心精髓是多节点并行计算、任务均分、协同处理。面对海量数据查询、聚合分析任务Doris 会自动将大任务拆分分发到集群所有 BE 节点并行执行最后汇总结果相比单节点计算性能呈线性提升这是它秒杀传统单机数据库的核心关键。分布式存储数据自动分片、多副本存储在集群多个节点支持横向无限扩容无单点瓶颈适配PB级海量数据存储与分析。列式存储区别于传统行存数据库按列存储数据适配多维分析场景大幅降低IO开销。实时离线一体化打破传统数仓壁垒既支持秒级实时数据写入、实时查询也支持海量离线数据批量分析一套集群搞定两类场景。纯 OLAP 定位专注数据分析、聚合统计、多维下钻、报表查询不处理事务性读写业务。大白话通俗总结Doris 就是一款专门用来存海量大数据、做快速统计分析、跑实时业务报表的数仓工具写入数据即刻可查查询速度快、并发高、运维简单一套集群搞定企业绝大多数大数据分析场景。为了彻底厘清认知下面我们做全方位技术对比解决新手最大疑惑Doris 和 MySQL、Hive、ClickHouse、StarRocks 到底有什么区别各自适合什么场景1.1 Doris vs MySQL最核心区分OLAP vs OLTP很多新手会混淆两者甚至想用 Doris 替代 MySQL 存业务数据这是典型的选型错误两者定位完全互补无替代关系对比维度MySQLOLTP事务型数据库Apache DorisOLAP分析型数仓核心定位日常业务事务读写增删改查、订单、用户数据存储海量数据聚合分析、多维统计、业务报表、自助分析存储方式行式存储读取整行数据列式存储只读取查询所需列事务能力支持完整ACID事务强一致性仅支持简单写入事务不支持复杂事务、高频更新删除数据量级适合千万级以内数据海量数据查询卡顿严重适配千万~PB级海量数据大数据量性能优势极致查询场景单条明细查询、少量条件筛选、事务读写多维度聚合、分组统计、海量数据批量查询写入延迟实时写入实时可见实时写入实时可见高吞吐写入能力更强核心短板大数据量聚合查询极慢、无法支撑多维分析不支持高频修改、事务操作无法替代业务数据库Apache Doris 是一款现代化、高性能、分布式、列式存储的实时 OLAP 分析型数据仓库。人话翻译专门用来做大数据查询分析、报表统计、自助分析的数仓支持实时写入、秒级查询。我们可以把常见大数据组件的定位简单区分Hive离线数仓跑批任务延迟高不适合实时报表ClickHouse单机性能极强集群运维弱、高并发场景短板明显StarRocks和 Doris 高度相似但资源开销更大、配置更重Doris轻量、稳定、运维简单、兼顾实时与离线、高并发友好、社区活跃、企业落地极多所以目前行业趋势非常明显实时分析场景越来越多公司从 Hive、CK 转向 Doris。二、Doris 适合做什么不适合做什么✅ 核心适用场景企业主流落地实时业务报表电商、金融、游戏实时大盘秒级刷新用户行为分析用户画像、行为漏斗、留存分析日志与监控分析海量日志实时入库、检索、统计自助多维分析业务自由下钻、筛选、聚合离线数仓加速替代 Hive 做最终查询聚合层❌ 不适合场景新手最大误区不适合做事务型业务OLTP不能替代 MySQL不适合高频更新、事务读写不适合做海量明细存储归档单纯存海量冷数据不如 Hive/OSS不适合超复杂计算流式复杂计算、多轮迭代计算优先 Flink/Spark一句话总结Doris 专精「大数据快速统计分析」。三、Doris 核心底层概念零基础必懂想要看懂架构、后面会调优必须先懂这几个核心概念。1. 列式存储Doris 快的核心原因MySQL 是行存储查询一整行数据Doris 是列式存储只读取需要的列。优势非常明显多维分析只查少数列IO 大幅降低同列数据类型一致压缩率极高节省磁盘、提升读取速度便于并行批量计算2. 分区与分桶Doris 数据组织核心Doris 的数据两层拆分分区 分桶分区一般按时间拆分天/小时方便冷热数据管理、过期删除、分区裁剪分桶按哈希键打散数据均匀分布在不同 BE 节点实现并行查询后续 80% 的调优都来自分区分桶设计是否合理。3. 副本机制Doris 默认多副本存储一般生产采用三副本保证数据高可用节点挂了不丢数据查询可以负载均衡多副本并行查询提升性能4. 前缀索引Doris 默认对排序键建立前缀索引可以快速过滤大量数据这也是 Doris 低延迟查询的关键能力。四、Doris 整体架构详解FE / BE / BrokerDoris 架构极其简洁只有三个核心角色新手完全不用怕复杂组件。1. FEFrontend前端节点核心定位管理者、调度者、入口层FE 不存储业务数据只负责管理元数据和请求调度。核心能力接收客户端 SQL 请求解析 SQL、生成执行计划管理库表元数据、权限、分区分桶信息调度 BE 节点执行查询、导入任务集群高可用管理Master/Follower/Observer生产架构多 FE 部署1主2从保证元数据高可用。2. BEBackend后端节点核心定位干活的存数据、算数据BE 是 Doris 的数据存储与计算节点所有真实数据都存在 BE 上。核心能力真实数据落地存储、持久化执行 FE 下发的查询计算任务数据写入、版本合并、Compaction副本管理、数据同步集群扩容只需要加 BE 节点横向扩展能力极强。3. Broker辅助组件Broker 是可选组件主要用于读取外部数据源HDFS、S3 等。日常 Kafka 实时导入、本地文件导入完全不需要 Broker。五、通俗吃透Doris 读写核心流程1. 查询流程为什么查询快客户端发起 SQL连接 FEFE 解析、生成执行计划根据分区分桶定位数据所在 BE 节点下发查询任务到对应 BEBE 并行扫描列数据、聚合计算FE 汇总结果返回客户端核心优势精准定位、分区裁剪、并行计算、只读必要列。2. 写入流程为什么支持实时写入数据通过 Stream Load/Routine Load 写入 FEFE 路由数据到对应分片 BE 节点BE 落地为增量数据版本写入即刻可见后台异步 Compaction 合并小版本、整理数据这里解决新手最大疑惑Doris 可以实时写入、实时查询不需要等待定时合并。六、Doris 核心优势总结看完架构我们重新总结 Doris 为什么现在这么火极简架构仅 FE/BE无多余组件运维成本极低MySQL 兼容零学习成本上手 SQL实时离线一体既可以做实时大屏也能做离线统计高并发低延迟支持业务高并发自助查询横向扩容简单加 BE 即扩容算力与存储社区成熟稳定大厂广泛落地版本迭代稳定

相关新闻