慢 SQL 诊断准确率 99.99%,天翼云基于 Apache Doris MCP 的 AI 智能运维实践

天翼云是中国电信旗下一家科技型、平台型、服务型公司,以"云网融合、安全可信、绿色低碳、生态开放"四大优势,为客户提供公有云、私有云、专属云、混合云、边缘云全栈云服务。天翼云在 Apache Doris 上的应用规模庞大,已在生产环境中落地超 30 个项目,覆盖广泛的业务场景,展现出大规模、多类型场景并行运行的特征。

而在大规模集群部署的背景下,我们在运维上面临以下几项挑战:

  • 故障频发,排查费时费力:集群数量庞大,场景应用复杂,故障和问题频发(日均 10+)。问题可能出现在不同层面(如硬件、网络、软件等),快速定位及解决问题需要较高技术能力和丰富经验,耗费大量人力和时间。
  • 运维负担重,问题发现滞后:运维人员需投入大量精力和时间分析集群的健康指标,不仅工作效率低下,且难以发现潜在问题及隐患,集群稳定性堪忧。
  • 监控告警过载:在管理众多的 Doris 集群时,运维团队常面临告警过载的问题,这使运维人员难以区分真实故障和误报,重要告警可能被忽视。
  • 版本升级风险高:不同集群可能运行着不同的版本,这使维护一致性和兼容性变得复杂。同时,升级过程的不稳定性可能导致功能失效或数据丢失,严重影响业务连续性。

Apache Doris MCP Server

在当前大规模生产环境中,运维团队在日常问题处理上资源紧张,人力长期处于捉襟见肘的状态。为应对这一挑战,团队经过持续探索,逐步明确了通过 AI 技术提升运维效率的方向,旨在构建智能运维体系,实现整体效率的提升。

2024 年下半年,Anthropic 公司发布了 MCP 协议。通过 MCP 协议,AI Agent 可以实现智能工具调用,可根据运维场景自动选择和组合多个监控、诊断、治理工具,形成完整的运维治理工作流。

面对 Data Agent 时代的巨大机遇,各大数据库厂商纷纷推出了自己的 MCP Server 解决方案。然而,通过深入的技术分析和实际测试,我们发现这些解决方案在功能完整性、技术先进性和企业适用性方面存在巨大差异。

Apache Doris MCP Server 以其卓越的技术实力和完整的功能体系,成为了 Data Agent 时代的完美答案。Apache Doris MCP Server 不仅在数量上提供了业界最丰富的 25 个专业工具,更重要的是在质量和深度上实现了全面超越。

Apache Doris MCP Server 是一个基于 Python 和 FastAPI 构建的后端服务,支持客户端通过已定义的"工具"与其进行交互。该服务主要用于连接 Apache Doris 数据库,并利用大语言模型(LLM)执行多种任务,例如将自然语言查询转换为 SQL(NL2SQL)、执行查询,以及进行元数据管理与分析。

项目地址:github.com/apache/dori...

在天翼云智能运维体系的搭建中,主要依赖于 Apache Doris MCP 完成,尤其是在任务智能诊断及集群健康诊断这两项主要能力。接下来将对具体的实现及重难点进行详细介绍。

基于 Doris + AI 的智能运维体系

1. 任务智能诊断

任务诊断的核心在于如何有效利用人力资源,高效应对大量生产集群持续出现的问题,降低排查门槛,使更多人员甚至客户能具体问题排查及分析的能力。同时,由于客户对 Apache Doris 的使用经验有限,就需要提供工具化手段、缩短问题排查时间、提升整体运维效率。

任务诊断的第一步,是基于策略或 AI 对集群内所有任务(包括运行中和历史任务)进行综合分析,以识别出应优先处理的 Top-N 任务。之所以需要这一筛选,是因为在实际操作中难以逐一排查所有任务,因此该步骤成为保障诊断效率的必经环节。

筛选手段包括 AI 分析和基于 MCP 工具的手段,目前阶段我们主要依赖扩展后的 Apache Doris MCP 工具,以获取 Top-N 任务。在识别目标任务后,需要进一步获取与任务分析相关的运行时信息,包括 Profile 信息、任务信息、审计数据及相关监控指标等。根据这些信息,任务诊断分为两个层面的评估:

  • 任务整体评估:对所有入选任务进行整体分析,包括运行时间、CPU 及内存资源消耗、数据扫描情况及其对集群整体的影响,并基于此生成统一的综合评估报告和优化建议。
  • 任务级细化分析:针对筛选出的 Top-N 任务,进行深入的单任务分析,关注其 Pipeline 运行情况和算子执行情况等更细粒度的信息。基于这些指标,系统将生成更具针对性的优化建议,帮助进一步定位性能瓶颈或运行异常。

1.1 提升 AI 精确度

虽然 AI 在很多常见场景中已取得广泛成功,但在专业性较强、知识体系复杂的领域,其表现仍显不足。尤其在直接向模型提问时,常常会生成不够准确,甚至偏差或不相关的回答。因此,提升 AI 在专业场景中的准确性成为首要挑战。为提升 AI 精确度,我们主要采取两类手段:

A. 提示词(SOP):

通过提供清晰且结构化的提示词,可以规范 AI 的分析路径。例如,

  • 在提取 Top-N 任务时,为 AI 提供相应的提示词;在执行整体评估时,通过明确的提示词指引 AI 的分析思路,而非让其自由发挥。
  • 在任务评估时,要求 AI 针对特定维度进行分析,如运行时间、资源消耗(CPU 和内存)、数据扫描情况及其对集群的影响等。通过结构化的 SOP 限制 AI 的分析框架,使其在指定范围内输出更稳定、可靠的评估内容。
  • 在单任务分析时,同样采取类似方式,通过提示词引导其从 Pipeline 运行情况和算子执行等细粒度角度进行分析。

如下图所示,展示了提供给 AI 的提示词结构。

然而,单靠 SOP 仍不足以保障准确性,原因是未经训练的 AI 模型通常缺乏专业知识,对领域概念的理解有限,容易生成模棱两可或仅停留在通用层面的回答,这与生产环境需求存在明显差距。因此,需要为 AI 提供专业知识的载体。

B. MCP:

当前较为有效的方式是引入 MCP,其具有两个核心特性:专业性和集成性。

  • 专业性体现在可以针对不同领域构建相应的 MCP,提供所需的专业知识与工具能力;
  • 集成性意味着 MCP 能作为能力接口,将外部工具、文档和知识库接入,为 AI 提供可调用的专业支持。通过这两个特性,MCP 有效补充了模型在专业场景中的知识缺失。

在本场景中,团队主要使用 Apache Doris 的 MCP,并进行了大量优化,以满足实际需求。例如,增加了用于获取 Profile 的工具、提取 Task 信息的工具及分析审计记录的工具。同时,还将这些工具与自研的 Profile 可视化工具集成到 MCP 中,使其可在 MCP 体系内被调用。下图展示了 MCP 工具扩展的部分示例:

1.2 解决超时与渲染问题

在提升 AI 诊断能力精准度之后,继而发现这一过程仍存在新的挑战。由于任务本身具有较高复杂度,若将完整诊断流程以一次性方式交由 AI 执行,往往会因上下文长度过长、分析逻辑过于复杂、生成内容体量较大等因素,导致模型处理超时或中断。因此,仅依赖单轮交互难以稳定支撑完整诊断过程。

为解决这一问题,我们引入了"分治"的思路,将原本体量庞大、结构复杂的诊断任务拆解为多个规模更小、边界更清晰的子任务,并通过多次与 AI 交互逐步完成整个诊断流程。首先通过一定策略锚定慢查询和大导入的任务列表,然后对 TopN 的任务做一个整体的评估,最后在对单任务逐个进行分析。

拆分过程需遵循明确的方法,避免随意切分。核心原则是尽量降低子任务之间的关联度,以防上下文依赖过强而增加负担。分治策略还带来另一项收益------并行化处理,拆解后的任务可以进行独立诊断,彼此不存在依赖关系,因此能够并行提交多次请求,让 AI 同时处理多个分析任务。此外,列表提取、整体评估和子任务诊断等流程也可拆分为相互独立的步骤,在并行执行后显著缩短整体诊断耗时。

另一方面,AI 生成的诊断结果通常以大段文字呈现,阅读效率较低,不利于快速理解。因此需要进一步提升结果呈现方式的可读性与表现力。为此,利用 AI 提供的格式化输出能力,通过提示词要求模型按指定结构返回数据。通过动态渲染工具把任务表格、任务整体评估报告、单任务的报告一并连接起来,结合图表的强表现力合并成一个完整的分析报告。

示例展示了为 AI 定义的输出格式,用于规范 AI 生成报告的结构。

1.3 实践案例

在前述优化方案实施后,团队对任务诊断分析的实际效果进行了评估。在下方示例中,诊断了三个具体任务,随后进行整体评估,基于这一组任务生成综合报告。

  1. TopN 列表:首先通过 AI 获取当前集群的慢任务列表,即 Top-N 的慢查询任务。
  2. 整体评估:涵盖多个维度,包括任务执行时间的统计分析、资源消耗的总体情况、数据扫描情况以及任务重分布的相关信息。根据这些信息对该批任务运行状况的全局判断。
  3. 综合报告:借助图表展示任务执行时间分布、CPU 和内存使用情况,使诊断结果更加直观易懂。整体评估中还包含总结性结论与优化建议,为后续的优化工作提供指导。
  4. 单任务分析:进一步对单任务深入分析,包括 Top-10 耗时算子、各算子的执行时长与平均时长,以及任务执行过程中的资源消耗和扫描数据量等。这些信息共同构成了单任务级别的执行报告。

1.4 使用收益

过去如果需要对一个集群的慢 SQL 进行全面分析,即便投入一到两小时也未必能够完成。而在引入 Doris MCP Server + AI 之后,慢 SQL 的分析结果基本能够在 5 分钟内生成,执行效率提升约为 95.8%,准确率从 80% 提升至于 99.99%,这一数值同样较为保守,人工排查很多情况下准确率不足 60% ,且花费时间更长。

2. 集群健康诊断

基于 AI 的智能运维体系中,另一项关键任务是集群健康诊断。这项工作旨在应对监控告警过载和问题发现滞后带来的运维负担以及业务稳定性挑战,从而提升运维效率和响应速度。

集群健康的诊断主要分为两种:

  • 被动式监控告警触发:首先将监控告警输入 AI,AI 通过分析告警和相关处理 SOP,决定对集群的哪些方面进行评估,并提供修复建议。
  • 主动式定期体检:定期对集群进行体检,包括任务运行情况、集群节点的 CPU/内存使用情况、表健康度以及数据压缩(compaction)等。

集群诊断能力同样依赖 MCP 和 SOP,以确保诊断的准确性。在这一环节中,我们进一步扩展了多个 MCP 工具,使 AI 能够更精准地完成专业分析任务。

2.1 集群智能诊断的关键

如何评估 Apache Doris 中表的健康度?这一过程需要专业知识。表的健康度评估包括多个维度,如分区情况、tablet 状态、版本健康度、副本健康度及 segment 数量等。这与机器健康、存储健康和压缩的评估方法相似,都依赖特定公式将相关指标组合,计算出健康度结果。

以表级健康度为例,尽管流程概述简单,但其内部包含复杂的计算逻辑。

公式如下: 表健康度 = 分区健康度 * 0.05 + tablet 健康度 * 0.3 + 版本健康度 * 0.25 + 副本健康度 * 0.3 + segment 健康度 * 0.1

在评估 tablet 健康度时,我们统计表级的分桶总数和最大分桶大小,并计算标准方差,以识别潜在的数据倾斜情况。例如,某些分桶过大而另一些过小时,需要结合方差值进行判断。此外,最大分桶的大小也需关注,因为分桶过大会影响查询效率,而分桶过小则可能导致 segment 数量过多,进而影响查询性能。查询效率与典型的"漏斗模型"密切相关,过多的 segment 会加重查询负担。

进一步分析涉及 segment 健康度的计算逻辑。整体而言,健康度计算依赖专业知识,通过精确计算得出真实反映对象健康状况的评分,从而帮助发现潜在问题。

具体的计算公式可见:

2.2 实践案例

具体可见下方示例:

  • 导入任务及热点表分析:包括导入任务数量、写入文件总数、写入总行数以及写入数据的总体大小等指标。可识别哪些表被频繁导入,以及这些表的版本变化趋势。相关信息通过可视化图表进行呈现,以增强诊断结果的表达效果。
  • 表级健康诊断:以表健康度为例,体现了 AI 基于这些信息生成的诊断结果,包含分区健康度、tablet 健康度、版本健康度、副本健康度以及 segment 健康度。基于上述各项指标,汇总计算出该表的整体健康度。
  • 热点表及图表呈现:热点表的效果图,用于呈现热点查询等相关情况。

2.3 使用收益

过去依赖人工进行分析。若对一个集群进行巡检并分析结果,需要检查多项指标并、逐个排查各组件和模块,整个流程需要六个小时才能完成,还需形成诊断结论。在使用 AI 之后,这一过程的整体耗时大幅缩短,完整的集群诊断基本可在 10 分钟左右完成,并能够提前发现潜在问题,无需等到故障发生后再进行处理。

版本质量保障

我们建立了一套自动化质量评估体系,主要用于解决前文提到的版本数量多、发版风险高等问题,避免新版本对生产环境造成影响。该体系的主要思想就是在版本发布之后通过自动化流程把 UT、集成测试、性能测试、用户核心 case 都回归测试,再由 AI 对这些结果进行分析,输出诊断结论及相应的优化建议。

3.1 具体方案:

  • 构建一体化的 CICD 流水线(编译、打包、部署)。
  • 在 UT 和集成测试集成到 CICD 流水线中,采集数据和异常情况并持久化。
  • 自动化部署到 POC 环境后跑 1T 数据规模的 TPC-H 和 TPC-DS,采集数据并持久化。
  • 针对用户核心场景采用一定调度策略(串行、并行)在 POC 上做回归测试,采集测试的结果数据并持久化。
  • 通过 AI 的能力,智能分析所有数据并输出分析报告。

需要说明的是,真实业务场景通常较为复杂,可能同时涉及数据导入、查询,以及查询之间的串行或并行运行模式。在不同场景下,某些查询组合在并行状态下可能会出现问题,而这些组合关系本身具有一定讲究。因此,未来可以通过引入更多策略,让 AI 根据用户用例自动完成任务调度设计,例如根据已有用户用例自动规划任务组合,以便更有效地暴露潜在问题。

质量报告的示例中包含多类测试的结论。例如,UT 测试结论以及与历史版本之间的对比结果都会在报告中呈现,测试的结论、性能测试的结果以及相关的测试图表。通过这些测试数据,AI 会生成关于整体质量状况的分析及优化建议。

3.2 使用收益

在版本质量方面,以前发布新版本时,需执行单元测试、部署至 POC 环境并进行测试等多个步骤,这些流程都需要投入大量人力和时间。此外,测试结果的分析同样需要手工完成,整体资源消耗较大。

在自动化体系建立后,这些流程均可由系统自动执行。尽管完整流程大约需要 5 个小时,但在此期间几乎不需要人工干预,只需一键触发等待结果。5 个小时主要是在单元测试、数据导入以及与 POC 环境的集成。如果环境资源充足,编译和单元测试执行速度更快,整体耗时有望进一步降低。

在质量保障方面 ,过去的代码合并和 BUG 发现主要依赖人工,可控性较低。引入 AI 后,这些过程得以统一处理,质量评估准确率可达 80%。如果用户用例模型更加完善,测试场景更丰富,并允许 AI 自主组合用例进行测试,则潜在问题更可能提前暴露,进一步提升质量保障能力。

未来规划

当前,基于 AI 的智能运维主要落地在上述三个场景中,未来我们还将进一步推广至更丰富场景中。不仅如此,未来在能力的扩展下,我们还将进行以下工作:

  • 智能运维:持续完善和优化智能运维的工具,并通过优化 MCP 和 Doris 内核来提升 AI 诊断的准确率和性能问题。
  • 智能咨询:通过 AI 的能力+专业知识库向用户提供专业的咨询能力。
  • 内核优化:持续完善和优化 Doris 内核的功能和性能。
  • 存算分离:推出 3.x 的版本来解决用户对存算分离的需求包括多 AZ 的容灾、数据共享、湖仓一体等。 长按下方二维码,回复「1218 」加入 Doris 社区交流群,并免费领取 Doris x Al 和100+ 企业实践案例集,获取技术帮助、了解最新动态,并与更多开发者和用户互动。
相关推荐
sell-cloud1 小时前
Prompt Engineering要凉了?Fable 5.5能“猜“意图,但银行正在封杀AI Agent——企业AI的真正护城河是什么
人工智能·prompt
Navicat中国2 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI3 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区3 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris5 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy5 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V5 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai
AI_AGENT_DEV_AI5 小时前
AI英语教培智能体的开发
人工智能
物联网软硬件开发-轨物科技5 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据5 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化