Doris专题1- 什么是Doris
1. 概述
- 定义:基于 MPP 架构的高性能、实时分析型数据库
- 特点:高效、简单、统一,亚秒级查询响应
- 适用场景:
- 高并发点查询
- 高吞吐复杂分析
- 报表分析、即席查询、统一数仓构建、数据湖联邦查询加速
2. 发展历程
- 起源于百度广告报表业务(Palo)
- 2017年开源,2018年捐赠给Apache基金会
- 2022年6月成为Apache顶级项目
- 社区规模:600+贡献者,120+月活跃贡献者
3. 应用现状
- 全球5000+中大型企业使用
- 中国互联网Top 50公司中80%长期使用
- 覆盖金融、电信、制造、能源、医疗、政务等传统行业
- 主流云厂商均提供托管服务
4. 核心架构
4.1 两种架构模式
-
存算一体架构
-
Frontend (FE):查询解析、元数据管理、节点管理
-
Backend (BE):数据存储、查询计划执行
-
角色分工:
角色 功能 Master 元数据读写,通过BDB JE协议同步 Follower 元数据读取,可升级为Master Observer 元数据读取,提升查询并发,不参与选主
-
-
存算分离架构(3.0+)
- 元数据层:查询解析、元数据管理
- 计算层:无状态BE节点,弹性伸缩
- 存储层:S3、HDFS、OSS等共享存储
5. 核心特性
5.1 高可用
- 多副本存储 + Quorum协议
- 自动故障隔离
- 支持同城/异地容灾
5.2 高兼容
- 完全兼容MySQL协议和语法
- 支持标准SQL
- 无缝对接MySQL生态工具
5.3 实时数仓
- 秒级数据入库
- 亚秒级查询响应
- 向量化引擎 + MPP架构 + Pipeline执行引擎
5.4 湖仓一体
- 外部数据源联邦查询
- 数据湖与数据仓库无缝集成
5.5 灵活建模
- 宽表模型、预聚合模型、星型/雪花模型
- 支持视图、物化视图、实时多表关联
6. 技术特点
6.1 存储引擎
- 列式存储:高压缩比,减少IO扫描
- 索引支持:
- Sorted Compound Key Index
- Min/Max Index
- BloomFilter Index
- Inverted Index
- 存储模型:
- 明细模型 (Duplicate Key Model)
- 主键模型 (Unique Key Model)
- 聚合模型 (Aggregate Key Model)
6.2 查询引擎
- MPP架构:节点间/节点内并行执行
- 向量化引擎:性能提升5-10倍
- Pipeline执行引擎:多核并行,减少数据拷贝
- 优化器:CBO + RBO + HBO 结合
6.3 高级功能
- 自适应查询执行 (AQE)
- 运行时过滤 (Runtime Filter)
- 物化视图(单表自动刷新,多表异步刷新)
7. 生态集成
- BI工具:Smartbi、DataEase、FineBI、Tableau、Power BI、Superset
- 数据源:RDBMS、PolarDB、数据湖(Hive、Iceberg、Hudi)
- 部署方式:本地部署、各大云平台托管服务
8. 总结
Apache Doris作为一款现代实时分析型数据库,凭借其高性能、高兼容、易用性等特性,已成为企业级数据分析的重要选择,特别适合需要实时洞察和复杂分析的业务场景。