SuperAPI AI 工具集

altinity-expert-clickhouse-storage

数据与分析

查看项目

更新于 10-15 16:50

技能介绍

用途:回答“磁盘空间去哪了、数据压缩得好不好、磁盘是否跟得上”,数据来自 system.disks、system.parts、system.columns、system.detached_parts、system.storage_policies、system.asynchronous_metrics、system.query_log 与 system.part_log。若连接模式、集群和时间窗口尚未确定,先运行 altinity-expert-clickhouse-connection。

主要能力:checks.sql 含 19 项检查,覆盖磁盘剩余空间及严重级别、按库与按表大小、按路径用量、整体与单表压缩比、压缩比低于 2 的列、part 大小分布、小 part 检测、Wide 与 Compact 混合、磁盘 IO 指标、查询日志中的近期 IO、最重 IO 查询、系统日志磁盘占用、detached part 及原因、存储策略及使用表、最近一小时增长、以合并吞吐作为磁盘速度参考。storage-19 需要 system.part_log,缺失时跳过。reference.md 提供设置、容量规划与反模式背景,仅在需要解释建议时阅读。

使用方式:从技能目录读取各 pack 文件,逐条执行语句,不要整文件运行;语句以 ; 结尾并以 -- @check <id> <title> 开头,保留 id 与结果对应。遵守 -- @requires:表缺失、需要 Keeper 而服务器无 Keeper/ZooKeeper、版本条件不满足时跳过并记录原因。存在集群宏时保留 {cluster},否则按连接技能的重写规则处理;其他 {placeholder} 需替换真实值或跳过。出错时记录 check id 与错误首行后继续;仅对 UNKNOWN_IDENTIFIER 执行 DESCRIBE TABLE system.<table> 并去掉缺失列。severity 列即该行结论,直接复制不要重新评级。

解读要点:storage-01 中已用超 80% 为 Moderate、85% 为 Major、90% 为 Critical,Major 应当天处理;MergeTree 需要至少与最大合并相当的剩余空间。压缩比低于 2 通常意味着列类型或编解码器不当,可显式指定 ZSTD、Delta, ZSTD、DoubleDelta, ZSTD 或 LowCardinality(String);2 到 5 属正常,高于 5 良好。storage-09 只返回超过一半 part 小于 10 MB 且 part 数大于 10 的表,属合并积压或微批插入。storage-10 中小于 min_bytes_for_wide_part(默认 10 MiB)的 part 以 Compact 存储。storage-15 中 broken、unexpected、noquorum、ignored 开头的原因指向损坏、失败操作或复制问题,需先调查;clone 与 covered-by-broken 属可清理残留。storage-18 与 storage-03 对比可找出即将占满磁盘的表。storage-19 报告合并吞吐,远低于同盘其他表说明设备慢或饱和,对象存储磁盘天然较慢,只应互相比对。storage-14 的系统日志表属保留策略问题而非容量问题。

报告格式:头部写连接模式、集群或单节点、ClickHouse 版本、时间窗口;发现项按 check、severity、对象、证据、建议逐行列出,Critical 在前;OK 检查一行列出无问题行 id;跳过与失败检查必须列出 id 及原因或错误首行;最后给出后续技能与即时操作。

后续技能:压缩差、列类型错误或分区产生小 part 转 schema;小 part 多、合并积压或吞吐慢转 merges;写 IO 高或微批插入转 ingestion;系统日志表过大转 logs;detached part 原因异常转 replication;需要 part 创建合并删除速率转 part-log;缓存或主键争用内存转 memory。

限制:仅覆盖上述 system 表可得的存储与 IO 诊断,不涉及其他领域;部分检查依赖 system.part_log、Keeper/ZooKeeper 或版本条件,缺失时只能跳过;具体阈值与建议以资料所述为准,未提供的收费、平台等信息暂未提供。