开源!Apache Doris 上线 Profile 可视化诊断:基于 Doris Skills 破解 AI 误诊难题

简介: 本文将介绍支撑这一 AI 诊断能力的核心机制——Doris Skills 智能诊断体系的设计逻辑与实现路径。

近日,Apache Doris 官网正式上线 Profile 诊断页面。用户上传 Profile 文件后,即可直观查看查询的逻辑执行计划、物理执行分片,并快速定位耗时节点。同时,系统支持生成从结论、证据链到行动建议的完整 AI 诊断报告。

本文将介绍支撑这一 AI 诊断能力的核心机制——Doris Skills 智能诊断体系的设计逻辑与实现路径。

1 示例.PNG

一、Profile 排查中的常见误诊

在分布式数据库的性能排查中,通用 AI 模型常因缺乏内核经验知识而产生误判。以下为两个典型场景:

误诊场景 1:因果关系倒置

在某次耗时 13 秒的查询中,Profile 显示 EXCHANGE_OPERATOR 算子的 WaitForData0(等待数据)耗时达 11 秒:

Fragment 2 · EXCHANGE_OPERATOR (id=5)
  - ExecTime:              avg 12s41ms, max 12s388ms
  - WaitForData0:          11s903ms
  - RowsProduced:          1.02M
  - GetDataFromRecvrTime:  41.2ms

如果使用通用 AI 模型进行分析,很可能得出以下结论:EXCHANGE 算子等待数据 12 秒,占了绝大部分耗时,是主要瓶颈,建议提高并行度并检查 BE 之间的网络。

但实际上,WaitForData0 记录的是 Exchange 接收端等待上游发送数据的时间。真正耗时的是上游算子:HASH_JOIN_SINK_OPERATOR(Build 阶段耗时 11.8 秒)

误诊场景 2:指标语义混淆

在查看算子耗时时,HASH_JOIN_SINK_OPERATOR 的 ExecTime 累加值(sum)为 47.9 秒,远超查询总耗时 13 秒:

Fragment 1 · HASH_JOIN_SINK_OPERATOR (id=4)
  - ExecTime:              sum 47s912ms, avg 11s978ms, max 12s31ms
  - BuildTime:             11s844ms
  - BuildRows:             218,412,096
  - MemoryUsageHashTable:  9.62 GB
  - RuntimeFilterInfo:     RF000[in_or_bloom] <- fact_events.user_id

在没有经验知识的情况下,AI 可能会按 sum 排序,将并发度最高但实际运行顺畅的算子判定为最耗时节点。实际上,在多并发执行体系下,衡量实际阻塞时间应依据 max 值,而非并发任务的 sum 累加值。

从以上两个案例可以看出,一个简单的 Profile,可能导致两个误诊:

  • HASH JOIN 耗时:被误诊为 EXCHANGE 的网络问题。
  • 算子的实际耗时:被误诊为所有并发任务的累计耗时。

上述误诊表明:传统的文档知识库仅解决“数据库能力”的检索,而性能排查需要构建严谨的证据链推导。Doris Skills 即为此目的设计。

二、Doris Skills 的四大设计思考

Doris Skill 是一套基于 Apache Doris 内核行为构建的决策规则库,旨在将资深 DBA 的排查经验转化为工程化规则。以 doris-profile-reader 为例,其设计逻辑分为以下四个核心维度:

从计数器到证据效力

4_jishuqi.PNG

Profile 中包含数十至上百个计数器,但其诊断价值各异。例如,ExecTime 记录算子总耗时,而 WaitForData0 记录接收端等待上游发送数据的时间,两者相减才是算子自身的实际执行时间。

doris-profile-reader 将计数器划分为七大类,并进一步提炼为两大判定规则:

5jishuqi2.png

基于上述规则,时间计数器的分析优先级明确为:

主动计时器(主动工作) → 行数与字节数(数据量) → 数据倾斜(资源压力) → 队列与调度等待(等待与背压)

从运行时开销到计划形状

6runingcost.png

仅仅定位最耗时的算子容易导致诊断停留在表象。例如,哈希表构建耗时过高,根本原因往往是 Join 顺序不当(如将大表误置于 Build 侧)。若仅报告算子耗时,给出的优化建议只能是“增加内存”或“开启 Spill”,属于治标不治本。

对此,Skill 增加了针对 Join 执行计划形状的校验机制:

  • 校验 Join 的 Build/Probe 侧划分;
  • 校验 Runtime Filter 的生成与作用节点;
  • 校验高选择性分支的优先计算顺序。

针对“为产出高过滤率 Runtime Filter 而导致源侧超大表扫描”等隐蔽误诊,Doris Skill 引入判例机制,将典型误诊场景转化为规则约束,从根源规避“推理合理但非根因”的建议。

从单点结论到完整调查

7dandianlunzheng.png

为防止 AI 在发现单一可疑点后即终止排查,Doris Skill 建立了强约束机制:在未完成指定前置校验前,禁止直接输出定性结论。例如:

  • 未在 SQL 及物理计划中排查 SPLIT_BY_STRING 或正则匹配等高 CPU 消耗表达式前,不得将慢 Insert 归因于“数据量过大”;
  • 未评估聚合状态大小、表达式物化、Spill 状态及内存上限前,不得将 OOM 简单归因于“Join 数据膨胀”。

通过规则强制补齐调查路径,确保证据链的严密性与完整性。

从分析正确到方案可信

8fanganzhengque.png

doris-profile-reader 统一采用严谨的标准格式输出结论:

Conclusion(结论) → Evidence(证据) → Reasoning(推理) → Next checks(下一步排查) → Solution(方案)

同时,在可信度控制方面,Doris Skill 采用一套保守而严谨策略:

  • 显示标注:所有引用的计时指标均需显式标注类型及置信度等级(proven / likely / not proven);
  • 分级输出:仅当 Profile 提供充分证据或精准匹配已知已知模式时,才输出确切修复方案;证据不足时,强制将建议下沉 Next checks,防止 AI 给出高确定性的误导建议。

三、结语

区分指标的证据效力、从运行时开销回溯计划形状、补齐严密的调查链路,以及严格控制结论置信度,构成了 doris-profile-reader 排查 Profile 的核心逻辑。其最终目标是将专家经验中的内核知识与边界条件,转化为 Agent 可稳定执行、且可在真实集群中验证的工程化规则。

目前,上述能力已在 apache/doris-skills 仓库开源,仓库包含以下核心模块:

  • doris-profile-reader: Profile 智能诊断与分析;
  • doris-best-practices:覆盖表结构设计、容量规划与查询优化最佳实践;
  • doris-architecture-advisor:基于业务工作负载提供架构选型与评估建议;
  • doris-debug:覆盖查询、数据导入、Compaction、节点状态及物化视图等生产级故障排查。

上述 Skills 均采用开放的 Agent Skills 标准格式,适配多种 Agent 框架与运维工具。

安装与使用:

npx skills add apache/doris-skills
目录
相关文章
|
2月前
|
缓存 数据可视化 前端开发
DeepSeek Harness 接入 Litefuse:完善 Agent 可观测与评估能力
DeepSeek Harness发布后迅速走红,Litefuse第一时间推出dsh-litefuse-plugin插件,为其增强Agent可观测能力:支持多层Subagent调用追踪、Token与成本精细归因、跨会话聚合分析,并集成Agent Evals实现“运行-评估-优化”闭环。
304 0
|
2月前
|
数据采集 供应链 监控
终于有人把数据指标体系讲透了:指标、口径、层级、责任一次讲清
企业指标体系不是指标堆砌,而是支撑经营决策的闭环系统:明确“算什么”,统一“怎么算”,分层“为什么”,落实“谁负责”。唯有解决口径不一、权责不清、数据割裂、落地脱节四大痛点,指标才能从数字清单升维为管理引擎。(239字)
|
SQL HIVE
【Hive SQL 每日一题】环比增长率、环比增长率、复合增长率
该文介绍了环比增长率、同比增长率和复合增长率的概念及计算公式,并提供了SQL代码示例来计算商品的月度增长率。环比增长率是相邻两期数据的增长率,同比增长率是与去年同期相比的增长率,复合增长率则是连续时间段内平均增长的速率。文章还包含了一组销售数据用于演示如何运用这些增长率进行计算。
1708 4
|
SQL 人工智能 机器人
AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建
FastGPT 与 MCP 协议结合,打造工具增强型智能体新范式。MCP 如同 AI 领域的“USB-C 接口”,实现数据与工具的标准化接入。FastGPT 可调用 MCP 工具集,动态执行复杂任务,亦可作为 MCP 服务器共享能力。二者融合推动 AI 应用向协作式、高复用、易集成的下一代智能体演进。
1381 0
|
数据挖掘 计算机视觉 Windows
Origin2024 汉化安装专业解析|企业级部署教程+批量激活解决方案
Origin是一款由OriginLab开发的科学绘图与数据分析软件,支持Windows系统,提供丰富的2D/3D图形模板和强大的数据分析功能,如统计、信号处理、图像处理等。本文详细介绍Origin2024的下载与安装步骤,包括解压文件、运行安装程序、输入序列号、安装路径设置及破解方法,帮助用户快速完成软件安装与激活。
9534 21
Origin2024 汉化安装专业解析|企业级部署教程+批量激活解决方案
|
存储 数据挖掘 OLAP
Doris数据库的效率为什么很高
【6月更文挑战第8天】Doris数据库的效率为什么很高
1437 9
|
存储 人工智能 Cloud Native
耳朵经济快速增长背后,喜马拉雅数据价值如何释放 | 创新场景
喜马拉雅和阿里云的合作,正走在整个互联网行业的最前沿,在新的数据底座之上,喜马拉雅的AI、大数据应用也将大放光彩。本文摘自《云栖战略参考》
48053 5
耳朵经济快速增长背后,喜马拉雅数据价值如何释放 | 创新场景
|
存储 监控 Cloud Native
ClickHouse物化视图里常见的7个坑,你踩过几个?
在 OLAP 的业务场景中,不仅要把数据存起来,还需要把数据处理好。在 ClickHouse 中,为了提高数据处理性能,使用 Materialized View 是有效的方法之一。本文主要探讨 Materialized View(下文称 MV) 的工作原理与最佳实践,并介绍了使用过程中容易踩坑的一些问题和解决方案。
2089 5
|
消息中间件 存储 监控
Kafka 消息保留时长由 24 小时变更为 72 小时的影响分析
Kafka 消息保留时长由 24 小时变更为 72 小时的影响分析
1439 0
|
存储 大数据 BI
数据仓库、数据湖、湖仓一体,究竟有什么区别?
近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”。乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。