1. 概述
- 1.Apache Doris(原名Palo)最早诞生于百度广告报表业务,2017年正式对外开源,2018年7月由百度捐赠给Apache基金会进行孵化,在Apache导师的指导下由孵化器项目管理委员会成员进行孵化和运营。
- 2.2022年6月,Apache Doris成功从Apache孵化器毕业,正式成为Apache顶级项目(Top-Level Project,TLP)。
2. 技术特点
2.1 高性能查询
- 1.Doris通过列式存储引擎和向量化执行引擎来加速查询性能,可以在亚秒级的时间内返回海量数据的查询结果。
- 2.自带高效的列式存储引擎,减少数据扫描量的同时还实现了超高的数据压缩比。
- 3.提供了丰富的索引结构来加速数据读取与过滤,如Sorted Compound Key Index、Z-order Index、Min/Max索引、Bloom Filter和Invert Index等。
2.2 实时数据导入
- 1.Doris支持批量导入和流式导入,适合处理实时数据。
- 2.提供了多种数据摄取方法,如Stream Load、Flink-Doris-Connector、例程加载(Kafka订阅)、Insert Into、Spark Load和Broker Load等。
2.3 易于使用
- 1.Doris提供了类似MySQL的SQL接口,高度兼容MySQL语法,支持标准SQL,降低了学习成本。
- 2.用户可以通过各类客户端工具访问Doris,并支持与BI工具无缝集成。
2.4 高可扩展性
- 1.Doris支持水平扩展,可以通过增加节点来提升系统的处理能力。
- 2.架构精简,只有Frontend(FE)和Backend(BE)两个模块,且两个模块都可以横向扩展。
2.5 数据模型
- 1.Doris支持多种存储模型,如宽表模型、预聚合模型、星型/雪花模型等。
- 2.提供了高效的SQL接口,并完全兼容MySQL协议。
2.6 容错性
- 1.Doris通过复制和恢复机制保证数据的高可用性。
- 2.支持数据多副本存储,集群具备自愈功能。
3. 适用场景
- 1.Apache Doris能够较好地满足多种数据分析需求和使用场景,如报表分析、即时查询、统一数仓构建、数据湖联邦查询加速等。
- 2.用户可以基于Doris构建大屏看板、用户行为分析、AB实验平台、日志检索分析、用户画像分析、订单分析等应用。
4. 部署与架构
4.1 部署方式
- 1.Doris可以根据硬件环境与业务需求选择存算一体架构或存算分离架构。
- 2.存算一体架构精简且易于维护,FE负责接收用户请求、查询解析和规划、元数据管理以及节点管理,BE负责数据存储和查询计划的执行。
- 3.存算分离版使用统一的共享存储层作为数据存储空间,用户可以独立扩展存储容量和计算资源。
4.2 架构特点
- 1.Doris的FE和BE进程通过一致性协议来保证服务的高可用性和数据的高可靠性。
- 2.支持多种主流的BI产品,包括Smartbi、DataEase、FineBI、Tableau、Power BI、Apache Superset等。
5. 优势
- 1.Doris在查询速度上具有竞争优势,根据TPC-H和SSB-Flat基准测试结果,Doris可以提供比Presto、Greenplum和ClickHouse更快的性能。
- 2.Doris启用了混合存储,同时拥有行存储和列存储,以应对高并发点查询场景。
- 3.Doris提供了复杂的基于角色的访问控制,允许在数据库、表、行和列级别进行细粒度的权限控制。