SuperAPI AI 工具集

altinity-expert-clickhouse-merges

数据与分析

查看项目

更新于 10-15 16:48

技能介绍

用途:诊断 ClickHouse 合并(merge)性能、part 积压、合并内存使用与“too many parts”错误,回答“合并是否在运行、针对哪些表、是什么在阻碍合并”。数据来源为 system.merges、system.part_log 和 system.parts。若尚未确定连接模式、集群和时间窗口,应先运行 altinity-expert-clickhouse-connection。

主要能力:提供 checks.sql 查询包,共 8 项检查——当前合并活动及内存、算法与类型(merges-01);按主机与集群范围的活跃合并内存(merges-02、merges-03);按小时的合并成功/失败趋势(merges-04);表级合并判定(merges-05);合并原因与算法矩阵(merges-06);每表合并 RAM 峰值(merges-07);part 数量问题对象(merges-08)。merges-04 至 merges-07 需要 system.part_log。附带 reference.md 提供背景说明(合并与 TTL 设置、即席查询防护),仅在需要解释建议时阅读。

使用方式:从技能目录(加载器会打印目录路径)读取每个查询包文件;逐条运行语句,绝不整文件运行。语句以 ; 结尾,并以 -- @check <id> <title> 头部开始,需将 id 与结果保留在一起。遵守 -- @requires:当指定表缺失、需要 keeper 而服务器无 Keeper/ZooKeeper、或版本条件不满足时跳过该语句,并列出跳过的 id 与原因。存在集群宏时保持 {cluster} 原样,否则应用连接技能的重写规则;其他 {placeholder} 是模板变量,须先替换真实值或跳过。出错时记录检查 id 和错误首行后继续;仅对 UNKNOWN_IDENTIFIER 执行 DESCRIBE TABLE system.<table> 并去掉缺失列。severity 列即该行的判定,直接复制,不重新评级。

判定与限制:按 id 顺序运行检查。报告结尾给出唯一判定:PROVED(窗口内任何位置都无成功合并)、DECLINED(集群范围内合并成功)或 PARTIAL(特定表受阻而其他表仍在合并)。若同一窗口内有任何表合并成功,判定只能是 PARTIAL 或 DECLINED,绝不判定为全局合并停止。merge_ok = 0 且反复出现 MEMORY_LIMIT_EXCEEDED 的表是表级阻塞,而非集群级。若合并 100% 为 Horizontal,应说明规划器选择了水平合并;除非 merge tree 设置证明,不要声称垂直算法被禁用。merges-08 中最大 part 计数来自 system.* 表时,应指出告警源不匹配,避免误归因于业务表。merges-07 的峰值 RAM 是历史值:高 峰值且当前无合并意味着问题已发生而非正在发生。缺少 system.part_log 时,merges-04 至 merges-07 被跳过,集群范围合并停止不可证明,应说明“无 part_log 则不可证明”,而不是选择判定。

结构性原因:单一热分区(partition_id = 'all')会使每次合并重读整表,建议改为基于时间的分区;热摄取表上的重 TTL ... GROUP BY ... SET ... 会串行化合并,应将汇总移至物化视图或批处理表,并保持基表 TTL 仅删除;反复出现的大规模水平合并因 OOM 失败,指向行宽与 part 大小问题,而非池容量;合并健康但 part 持续增长,说明插入快于合并,应修复插入批次大小与频率而非合并设置。

报告格式:头部含连接模式、集群或“单节点”、ClickHouse 版本、时间窗口;Findings 表格含 check、severity、object、evidence、recommendation 列,每行一个发现,Critical 优先,evidence 引用结果行中的数字;OK 检查用一行列出未返回问题行的检查 id;跳过与失败检查列出 id 及原因或错误首行,此部分不得省略;Next steps 给出下一步要加载的技能与即时操作。在 Findings 部分第一行说明 PROVED/DECLINED/PARTIAL 判定。

后续技能:合并因 MEMORY_LIMIT_EXCEEDED 失败或合并 RAM 峰值接近上限,加载 altinity-expert-clickhouse-memory;合并缓慢但磁盘吞吐正常,或分区与 ORDER BY 看似有误,加载 altinity-expert-clickhouse-schema;合并缓慢且磁盘 IO 高或磁盘已满,加载 altinity-expert-clickhouse-storage;合并队列被 mutation 阻塞或出现 MutatePart 错误,加载 altinity-expert-clickhouse-mutations;复制延迟或复制队列增长伴随合并问题,加载 altinity-expert-clickhouse-replication;part 创建速率是主因而非合并容量,加载 altinity-expert-clickhouse-ingestion;需要详细逐 part 历史,加载 altinity-expert-clickhouse-part-log。

限制:上述内容均来自公开资料,未提供具体定价、平台或效果信息;实际结果取决于集群配置与数据情况。