Doris概述篇
一、Doris简介
Apache Doris 是一款现代化的分析型数据库产品,基于MPP(大规模并行处理)架构构建。它能够将查询任务分散到多个节点上并行执行,各节点独立完成本地计算后,再将结果汇总形成最终输出,整个过程与Hadoop的分布式处理机制类似。得益于这种架构设计,Doris能够在亚秒级内返回查询结果,为实时数据分析提供强有力的支持。
MPP(Massively Parallel Processing),即大规模并行处理,广泛应用于非共享集群架构的数据库系统中。每个节点拥有独立的磁盘和内存资源,数据根据模型和业务需求分布于各个节点,通过专用或通用网络连接协同工作,共同对外提供数据库服务。该架构具备出色的可伸缩性、高可用性、高性能以及良好的性价比,同时支持资源共享。[此处为图片1]
Apache Doris 可广泛应用于多种数据分析场景,包括固定历史报表生成、实时数据分析、交互式探索分析等,显著提升数据分析效率与便捷性。
二、核心特性
- 采用MPP架构,专为高性能分析设计
- 具备卓越性能,支持PB级数据量下的毫秒至秒级响应
- 兼容标准SQL语法及MySQL协议,降低使用门槛
- 集成向量化执行引擎,提升计算效率
- 支持高效的聚合表技术与新型预聚合机制Rollup
- 具备高可用、高可靠、高性能三大保障
- 运维极简,支持弹性伸缩,适应动态业务需求
三、Doris的主要特点
性能卓越
在TPC-H和TPC-DS基准测试中表现领先,具备极高性价比。支持高并发查询,百节点集群可实现高达10万QPS的吞吐能力;支持流式导入,单节点写入速度可达50MB/s,小批量数据导入延迟低至毫秒级别。
简单易用
高度兼容MySQL协议,便于现有应用快速接入;支持在线修改表结构,无需停机维护;系统高度集成,不依赖外部存储组件,部署和管理更加简便。
扩展性强
架构设计简洁高效,单个集群可水平扩展至200台以上节点,满足不断增长的数据规模和查询负载需求。
高可用性
支持多副本机制,确保数据安全;元数据服务同样具备高可用能力,避免单点故障影响整体服务稳定性。
四、前言
Doris 最初由百度大数据部门研发,原名为“百度Palo”。2017年正式开源,并于2018年捐赠至Apache社区,随后更名为Apache Doris。经过持续迭代与发展,已成为国内领先的开源OLAP系统之一。
五、开源OLAP引擎对比
OLTP 与 OLAP 的区别
OLTP(Online Transaction Processing)主要用于处理日常事务操作,如基于主键的增删改查(CRUD),通常只涉及少量记录,且频繁使用索引进行快速定位。
而OLAP(OnLine Analytical Processing)则侧重于复杂分析任务,往往需要扫描大量数据,但一般仅访问部分列,聚合操作(如Sum、Count、Max、Min)远多于明细数据查询。
HTAP 简介
HTAP(Hybrid Transactional/Analytical Processing)是指在同一系统中同时支持事务处理与分析处理的技术架构。依托创新的计算存储一体化框架,HTAP数据库可在同一份数据上支撑业务交易与分析查询,有效避免传统架构中在线库与离线数仓之间的频繁数据同步,减少延迟与资源消耗。
基于分布式架构,HTAP系统具备弹性扩容能力,可根据实际需求灵活调整计算或存储资源,轻松应对高并发与海量数据挑战。
当前主流的HTAP数据库包括PingCAP的TiDB、阿里云的HybridDB for MySQL、百度的BaikalDB等。其中,TiDB是国内首个开源的HTAP分布式数据库。
OLAP分类解析
MOLAP(Multi-dimensional OLAP)
MOLAP通过预先计算并存储多维数据切片,实现“一次计算,多次查询”,以空间换取时间,保证查询稳定性和响应速度。其典型代表是Apache Kylin。该模式已实现基于Bitmap的去重算法,可在不同维度下高效完成去重统计,适合对查询延迟敏感的场景。
ROLAP(Relational OLAP)
ROLAP基于实时的大规模并行计算引擎,对集群硬件要求较高。其核心思想是将数据打散分布,充分利用CPU、IO和内存资源的并行能力,从而提升整体计算性能。
在当前以磁盘为主要存储介质的环境下,大规模数据扫描带来较高的IO开销,并行计算也导致CPU负载上升,成为性能瓶颈。因此,在高频汇总统计和高并发查询场景下,系统表现受限于硬件并行能力。
传统去重算法资源消耗大,实时大规模去重对内存和CPU提出严峻挑战。目前Doris最新版本已支持Bitmap去重算法,并结合预计算策略,能有效应对复杂的去重分析场景。
Doris作为ROLAP引擎的应用优势
Doris属于典型的ROLAP引擎,适用于以下典型场景:
- 灵活的多维分析
- 同时支持明细数据与聚合查询
- 支持主键更新功能
对比其他OLAP系统的差异 —— MOLAP模式的局限性(以Kylin为例)
- 应用层建模复杂,需针对业务和生产流程进行大量预处理,导致模型复用率低。
- MOLAP不支持直接查询原始明细数据,在“汇总+明细”混合场景中,必须将明细数据同步至外部关系型数据库以支持交互查询,增加了运维复杂度和成本。
- 大量的预计算任务带来较高的生产维护成本,特别是在维度组合频繁变化的情况下,刷新和重建代价高昂。
ROLAP模式的优势
相较于MOLAP,ROLAP无需依赖复杂的预计算流程,灵活性更高,能动态响应多样化的查询需求,尤其适合探索式分析和实时分析场景。配合现代向量化执行引擎与智能优化器,ROLAP在性能上已接近甚至超越部分MOLAP系统,同时大幅降低了建模与维护成本。
在应用层模型设计中,采用轻量且标准化的建模方式可显著降低生产与维护成本。通过将数据统一至一个稳定的数据粒度(如以商家为单位的星形模型),不仅实现了模型结构的简化,还提升了模型的复用能力。
业务逻辑在App层可通过视图方式进行封装,这种方式有效避免了数据冗余,增强了应用系统的灵活性,同时也减少了后期运维的工作量。[此处为图片1]
该架构支持“汇总+明细”数据并存的模式,兼顾统计效率与数据完整性,适用于多类分析场景。
对于存在变化维度、非预设维度或需进行细粒度统计的应用环境,采用由MPP引擎驱动的ROLAP模式尤为合适。该模式能够减少对预计算的依赖,借助强大的实时计算性能,保障良好的交互响应体验,同时进一步简化整体模型设计。
性能对比方面:
- ClickHouse在数据压缩率上表现更优;
- 单表查询场景下,ClickHouse具备显著的性能优势;
- 在Join操作中,两者各有长短:小数据量时ClickHouse更胜一筹,而大数据量环境下Doris更具优势;
- Doris在SQL兼容性与支持广度方面相对更强。


雷达卡


京公网安备 11010802022788号







