ClickHouse常用管理语句汇总:会话、磁盘、性能与复制管理

作为一款高性能列式存储数据库,ClickHouse在日常运维中离不开各类管理语句的支撑。本文将从会话管理、磁盘空间监控、性能排查、复制异常检测四个核心场景出发,整理ClickHouse常用管理语句,帮助运维与开发人员高效完成日常管理工作。

1. 会话相关管理语句

会话管理是保障ClickHouse实例稳定运行的基础,主要用于查看活跃查询、终止异常SQL及监控数据变更操作。

1.1 获取活跃会话

通过该语句可查看当前实例中所有正在执行的会话,包含查询ID、执行用户、客户端地址、执行时长等关键信息,功能类似MySQL的show processlist;

plsql 复制代码
select query_id, user, address, elapsed, query from system.processes order by query_id;

1.2 终止异常查询(kill查询)

当某条SQL执行耗时过长、占用资源过高并影响实例性能时,可与业务方确认后,通过查询ID终止该操作。

plsql 复制代码
kill query where query_id='a410013e-f8f6-4ba7-a23a-48ae43535041';

注:query_id需替换为实际要终止的查询ID,可通过"获取活跃会话"语句查询获得。

1.3 mutation操作管理

ClickHouse中没有传统的updatedelete,这类数据变更操作被称为mutation(属于DDL操作)。通过该语句可查看mutation队列状态,判断数据变更是否完成。

plsql 复制代码
SELECT * FROM system.mutations;

关键字段说明:

  • is_done:突变操作完成标志,1表示已完成,0表示正在执行中。

2. 磁盘空间相关管理语句

磁盘空间监控可帮助及时清理冗余数据,避免因空间不足导致实例异常,主要包含表级和库级空间查询。

2.1 查看表所使用的空间

该语句可按数据库、表、分区维度,查看每个数据分片的磁盘占用情况,便于定位大表或大分区。

plsql 复制代码
select database, table, partition, name part_name, active, bytes_on_disk 
from system.parts 
where database not in 'system' 
order by database, table, partition, name;

关键字段说明:

  • bytes_on_disk:该分片在磁盘上的实际占用大小;
  • active:分片是否处于活跃状态(非活跃分片可后续清理)。

2.2 查看数据库大小

按数据库维度统计总磁盘占用,快速定位占用空间最大的数据库,优先进行空间优化。

plsql 复制代码
select database, sum(bytes_on_disk) as db_size 
from system.parts 
group by database 
order by db_size desc;

3. 性能相关管理语句

性能排查是日常运维的核心场景,通过以下语句可定位慢查询、统计SQL执行情况及监控后台资源使用。

3.1 查找慢查询

可筛选出最近执行完成的最慢10条SQL,按执行开始时间倒序排列,帮助分析性能瓶颈。

plsql 复制代码
SELECT * FROM system.query_log 
WHERE type = 'QueryFinish' 
ORDER BY query_start_time DESC 
LIMIT 10 FORMAT Vertical;

注:FORMAT Vertical表示按垂直格式输出,便于查看长SQL语句详情。

3.2 SQL执行统计

分为"实时执行统计"和"累积执行统计"两类,满足不同监控需求:

  • 实时执行统计(system.metrics):查看当前实例的实时状态,如正在执行的查询次数、合并操作次数等。

    plsql 复制代码
    select * from system.metrics limit 5;
  • 累积执行统计(system.events) :查看实例运行以来的累积指标,如总查询次数、总select语句执行次数等。

    plsql 复制代码
    select * from system.events limit 5;

3.3 后台运行概要信息

查看实例当前的内存分配、执行队列任务数量等后台资源使用情况,及时发现资源过载风险。

plsql 复制代码
select * from system.asynchronous_metrics limit 5;

4. 其他核心管理语句

除上述场景外,复制异常检测和SQL基准测试也是常用运维操作,保障ClickHouse集群稳定性与性能验证。

4.1 检查复制异常

针对ClickHouse副本集群,该语句可筛选出存在复制异常的表,如只读副本、队列任务过多、副本数量不足等情况。

plsql 复制代码
SELECT database, table, is_leader, total_replicas, active_replicas 
FROM system.replicas  
WHERE is_readonly  -- 副本只读
   OR is_session_expired  -- 会话过期
   OR future_parts > 20  -- 未来分片数过多
   OR parts_to_check > 10  -- 待检查分片数过多
   OR queue_size > 20  -- 队列大小超限
   OR inserts_in_queue > 10  -- 插入队列超限
   OR log_max_index - log_pointer > 10  -- 日志同步滞后
   OR total_replicas < 2  -- 总副本数不足2个
   OR active_replicas < total_replicas;  -- 活跃副本数少于总副本数

4.2 SQL基准测试

ClickHouse自带clickhouse-benchmark工具,可对SQL语句进行性能测试,输出QPS、RPS及各百分位执行时间。

bash 复制代码
echo "select * from martin.t3;" | clickhouse-benchmark -i 5

参数说明:

  • -i 5:表示该SQL语句执行5次,可根据需求调整执行次数;
  • 测试结果包含"RPS""95%查询耗时""QPS"等关键指标,用于性能对比或优化验证。

更多工具用法可参考官方文档:https://clickhouse.com/docs/en/operations/utilities/clickhouse-benchmark

总结

本文整理的ClickHouse管理语句覆盖了会话、磁盘、性能、复制四大核心运维场景,可直接应用于日常实例监控、问题排查与性能优化。实际使用时,可根据具体需求调整SQL筛选条件(如增加时间范围、指定数据库),也可结合可视化工具将关键指标集成到监控面板,提升运维效率。

相关推荐
游戏开发爱好者824 分钟前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
王码码203529 分钟前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
黑码哥1 小时前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
亓才孓1 小时前
[JDBC]元数据
android
独行soc1 小时前
2026年渗透测试面试题总结-17(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
金融RPA机器人丨实在智能1 小时前
Android Studio开发App项目进入AI深水区:实在智能Agent引领无代码交互革命
android·人工智能·ai·android studio
科技块儿1 小时前
利用IP查询在智慧城市交通信号系统中的应用探索
android·tcp/ip·智慧城市
独行soc2 小时前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
王码码20352 小时前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
2501_915106322 小时前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview