Apache Doris 近期版本中提升性能的优化补丁及其效果
性能优化亮点
- 查询性能提升: Apache Doris 在近期版本中通过优化 SQL Hash 计算和改进查询结果的准确性,显著提升了查询性能。
- 存储管理优化: 新增的存储管理指标和优化的文件缓存淘汰策略有效提升了存储效率和高并发场景下的查询性能。
- 功能增强与问题修复: 通过修复多个关键 Bug 和增强如 IPv6 子网匹配等功能,Doris 在稳定性和性能上都得到了显著改善。
Apache Doris 近期版本性能优化详解
Apache Doris 作为一个高性能的分析型数据库,其社区一直在积极地进行性能优化和功能改进。在近期发布的版本中,Doris 通过引入多项补丁和优化措施,显著提升了查询性能、存储管理效率,并修复了多个关键 Bug。以下将详细介绍这些性能优化补丁,并提供相关链接以便查阅。
关键性能优化补丁
近期版本中,Apache Doris 针对多个方面进行了优化,以下是其中一些关键的性能优化补丁:
SQL Hash 计算优化
在最新的 Apache Doris 2.1.9 版本中,改进了 SQL Hash 计算方法,从而提高了查询性能。SQL Hash 计算的优化可以减少查询过程中的计算开销,使得查询执行更加迅速。这一改进对于复杂的 SQL 查询尤其有效,能够显著缩短查询响应时间。
查询结果准确性增强
Apache Doris 2.1.9 版本还增强了查询结果的准确性。通过修复多个与查询结果相关的 Bug,确保在各种查询场景下都能得到正确的结果。这对于数据分析的可靠性至关重要,尤其是在金融、医疗等对数据准确性要求极高的领域。
存储管理指标改进
为了更好地管理存储资源,Apache Doris 在新版本中引入了新的存储管理指标。这些指标可以帮助用户更全面地了解存储的使用情况,及时发现和解决存储瓶颈问题。通过监控这些指标,可以更好地进行存储容量规划和性能优化。
文件缓存淘汰策略优化
Apache Doris 3.0.3 版本优化了文件缓存的淘汰策略和锁竞争,提高了缓存命中率和高并发点查询性能。文件缓存是提高查询性能的重要手段,通过优化缓存淘汰策略,可以更有效地利用缓存资源,减少磁盘 I/O,从而提高查询速度。在高并发场景下,优化锁竞争可以减少线程间的等待时间,进一步提高系统吞吐量。
IPv6 子网匹配性能优化
在 Apache Doris 3.0.3 版本中,使用了 SSE 指令来优化 match_ipv6_subnet
函数的性能。IPv6 子网匹配在网络分析和安全领域有广泛应用,通过使用 SSE 指令,可以显著提高匹配速度,从而加速相关查询的执行。
Apache Doris 在小米的实践与优化
性能优化效果评估
Apache Doris 的性能优化效果可以通过多种方式进行评估。以下是一些常用的评估方法:
TPC-DS 基准测试
TPC-DS 是一种常用的基准测试,用于评估数据仓库系统的性能。Apache Doris 2.1.0 版本在 TPC-DS 1TB 基准测试中,实现了 100% 的查询速度提升。这意味着在相同硬件环境下,Doris 2.1.0 能够以更快的速度完成复杂的 SQL 查询。
实际应用场景测试
除了基准测试,还可以通过在实际应用场景中进行测试来评估性能优化效果。例如,在日志分析、用户行为分析等场景中,比较优化前后的查询响应时间、吞吐量等指标。通过实际应用场景测试,可以更真实地反映性能优化对业务的影响。
性能监控与分析
通过性能监控工具,可以实时监控 Doris 系统的各项性能指标,如 CPU 使用率、内存使用率、磁盘 I/O 等。通过分析这些指标,可以及时发现性能瓶颈,并采取相应的优化措施。同时,性能监控还可以帮助评估性能优化措施的效果,确保系统始终保持最佳状态。
已合入的 Patch 链接整理
以下是 Apache Doris 近期版本中已合入的性能优化补丁的链接整理:
- GitHub Releases:可以在 Apache Doris 的 GitHub 仓库中找到各个版本的发布说明,其中包含了详细的更新内容和 Bug 修复列表。
- Apache Doris 博客:Apache Doris 官方博客会定期发布关于新版本特性、性能优化和最佳实践的文章,可以从中获取有价值的信息。
- Doris Versioning - Apache Doris:了解 Doris 的版本发布策略,包括 Major、Minor 和 Patch 版本的含义和发布周期。

NUMA 仿真加速 Pi 5
Apache Doris 的数据模型
Apache Doris 支持多种数据模型,并针对不同场景进行了优化:
- 明细模型(Duplicate Key Model):满足事实表存储需求。
- 主键模型(Unique Key Model):确保键的唯一性,允许行级别的数据更新。
- 聚合模型(Aggregate Key Model):合并具有相同键的值列,通过预聚合显著提高性能。
Apache Doris 版本更新策略
Apache Doris 遵循一定的版本更新策略,以确保系统的稳定性和性能。通常,Doris 的版本分为 Major、Minor 和 Patch 三种类型:
- Major 版本:包含重要的功能更新和架构变更,可能需要进行较大的升级。
- Minor 版本:包含新的功能和性能优化,通常可以平滑升级。
- Patch 版本:主要用于修复 Bug 和优化性能,通常可以快速应用。
Patch 版本通常每 2-4 周发布一次,主要用于修复 Bug、优化性能和小功能更新。Major 和 Minor 版本的升级可能会改变元数据或数据格式。Apache Doris 确保向前兼容这些更改,允许从旧版本升级到新版本,但不允许降级。
Apache Doris 的应用场景
Apache Doris 在多个领域都有广泛的应用,以下是一些典型的应用场景:
- 报表分析:Doris 能够快速处理大量的报表数据,提供实时的分析结果。
- Ad-hoc 查询:Doris 支持灵活的 Ad-hoc 查询,可以满足用户随时提出的数据分析需求。
- 统一数据仓库:Doris 可以作为统一的数据仓库,整合各种数据源,提供一致的数据视图。
- 数据湖查询加速:Doris 可以加速对数据湖中数据的查询,提高数据分析的效率。
- 日志和事件分析:Doris 支持对日志和事件进行实时或批量分析,帮助用户发现问题和优化性能。
- 用户画像和行为分析:Doris 可以分析用户行为,如参与度、留存率和转化率,支持用户画像和人群选择。
性能测试环境
为了评估 Group Commit 的写入性能,Apache Doris 在高并发小数据量场景下,使用 Stream Load 和 JDBC(异步模式)进行了单独测试。测试环境如下:
组件 | 配置 |
---|---|
前端 (FE) 服务器 | 阿里云,8 核 CPU,16GB 内存,100GB ESSD PL1 SSD |
后端 (BE) 服务器 | 阿里云,16 核 CPU,64GB 内存,1TB ESSD PL1 SSD |
测试客户端 | 阿里云,16 核 CPU,64GB 内存,100GB ESSD PL1 SSD |
Doris 版本 | 2.1.5 |
测试结果显示,在并发级别为 10,每次写入小于 10MB 的情况下,启用 Group Commit 可以提高 45% 的写入速度和 79% 的写入吞吐量。
FAQ
Apache Doris 的最新版本是什么?
截至2024年12月,Apache Doris 的最新版本是 3.0.3,该版本进一步增强了系统的性能和稳定性。
如何获取 Apache Doris 的性能优化补丁?
可以通过 Apache Doris 的 GitHub 仓库或者官方博客获取性能优化补丁的详细信息和下载链接。
Apache Doris 的版本更新策略是什么?
Apache Doris 的版本分为 Major、Minor 和 Patch 三种类型,Patch 版本通常每 2-4 周发布一次,主要用于修复 Bug 和优化性能。
Apache Doris 在哪些场景下有应用?
Apache Doris 在报表分析、Ad-hoc 查询、统一数据仓库、数据湖查询加速、日志和事件分析、用户画像和行为分析等场景下都有广泛的应用。
如何评估 Apache Doris 的性能优化效果?
可以通过 TPC-DS 基准测试、实际应用场景测试和性能监控与分析等方式评估 Apache Doris 的性能优化效果。
参考文献
-
Apache Doris 2.1.0 is released! 100% higher out-of-the-box performance - Medium
-
[Discuss] Doris Roadmap 2025 Issue #47948 apache/doris - GitHub
Last updated April 17, 2025