【ClickHouse】深入浅出系列之常用系统表--排查问题利器

简介: 【ClickHouse】深入浅出系列之常用系统表--排查问题利器

ClickHouse官方内置了超详细的系统表,存储在system库中。系统表包含服务器的状态、进程以及环境,服务器的内部进程,方便我们进行数据分析和排查问题。在使用ClickHouse进行数据分析的过程中,可以利用这些系统表进行排查和解决问题,提高数据分析的效率和准确性。

system.clusters

通过集群中任意一个节点获取所有的集群信息,验证集群搭建是否成功。获取集群中每个节点ip、副本、分片等信息。

select cluster,shard_num,replica_num, host_name, host_address,default_database from system.clusters

system.columns

类似于describe table命令,查询当前表对应的列信息。

SELECT name,type FROM system.columns

system.disks

查看配置当前节点所在服务器对应的数据存储路径、磁盘可用空间、磁盘容量等,对应配置文件中配置的信息。

SELECT * FROM system.disks

system.functions

查看Clickhouse自带的函数,写SQL查询时忘记了函数名字可以从此表中查询到

SELECT name FROM system.functions

system.merges

正在进行合并的信息,可查询此表判断合并数据的压力是否过大

SELECT count(1) FROM system.merges

system.mutations

包含所有ALERT语句的进度信息。可通过此表查询未alert成功的一些信息,如果有SQL执行卡住,可以执行 kill mutation id进行杀死当前SQL。

select * from system.mutations where id_done = 0

system.parts

可以查看所有的分区信息,遇到Too many parts的问题时可以查询此表,如果有不需要的parts可以先将其删除(永久删除,如果勿删会丢数据,谨慎执行)

SELECT * FROM system.parts

查询库表占用磁盘大小

SELECT
    database AS `本地库名`,
    table AS `本地表名`,
    sum(rows) AS `数据条数`,
    formatReadableSize(sum(bytes_on_disk)) AS `实际占用磁盘空间`,
    formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`,
    formatReadableSize(sum(data_compressed_bytes)) AS `压缩大小`,
    round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `压缩率`
FROM system.parts
WHERE database like '%your_database%' OR table like '%your_table%'
GROUP BY database, table
ORDER BY sum(rows) desc;

system.processes

查看正在运行的所有SQL,包含每个SQL读取内存占用等信息,可判断查询压力是否过大

SELECT * FROM system.processes order by rows_read desc

遇到大查询的时候可以手动将大查询杀死,从而缓解cpu的压力等。

KILL QUERY WHERE query_id=''

system.query_log

排查问题最重要的一张表,此表包含所有已执行过的sql的内存占用、执行时长、错误信息、执行完成情况等信息。遇到大查询的时候可以手动将大查询杀死,从而缓解cpu的压力等。

SELECT   
    event_time,   
    user,   
    query_id AS query,   
    read_rows,   
    read_bytes,   
    result_rows,   
    result_bytes,   
    memory_usage,   
    exception  
FROM clusterAllReplicas('cluster_name', system, query_log)  
ORDER BY event_time DESC  
LIMIT 100

system.replicas

查看clickhouse的副本信息,判断是否出现只读等情况。

SELECT * FROM system.replicas where is_readonly = 1

system.replication_queue

ReplicatedMergeTree类型的clickhouse集群中副本复制的队列,依赖于zookeeper或ck自己的keeper,此队列如果数据量持续很大说明有可能磁盘IO不够。

判断磁盘io能力命令,建议io大于30M/S,更利于大数据量的读写

dd if=/dev/zero of=/data/text.txt bs=10k count=10000 oflag=direct

如果获取更多clickhouse系统表信息可查看官网:System Tables | ClickHouse Docs

相关文章
|
4月前
|
SQL 数据库 开发者
MSSQL性能调优实战:索引策略、SQL优化与并发管理深度剖析
在Microsoft SQL Server(MSSQL)的性能调优过程中,索引策略、SQL查询优化以及并发管理是关键的三大支柱
|
1月前
|
SQL 关系型数据库 MySQL
MySQL中的 where 1=1会不会影响性能?看完官方文档就悟了!
本文探讨了在Mybatis中使用`where 1=1`进行动态SQL拼接是否会影响性能。通过MySQL官方资料和实际测试表明,`where 1=1`在MySQL 5.7及以上版本中会被优化器优化,因此对性能影响不大。文中详细对比了`where 1=1`与`<where>`标签的使用方法,并建议根据MySQL版本和团队需求选择合适的方式。最后,推荐查找官方资料以确保技术路线正确。
46 4
|
3月前
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
57 0
|
4月前
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute产品使用合集之如果生产环境少了数据,该如何排查
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
存储 固态存储 关系型数据库
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(系统底层优化篇)(一)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(系统底层优化篇)
78 1
|
6月前
|
缓存 网络协议 关系型数据库
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(系统底层优化篇)(二)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(系统底层优化篇)
74 0
|
大数据 Linux 网络安全
|
架构师 关系型数据库 MySQL
掘金百万赞强制下架!MySQL性能与架构笔记,涵盖基础-优化-架构
今天给大家带来的是:简朝阳老师著的 《MySQL性能调优与架构设计》,本书是付宝架构师冯大辉、淘宝席DBA陈吉平、席DBA冯春培、网易级DBA翟振兴、搜狐级DBA叶金荣、百度级DBA吴诗展等6位数据库专作序推荐。   初级DBA到LAMP架构设计师利器。   剖析性能可用MySQL调优方,探索低本数据库系统构建之道。
|
存储 监控 关系型数据库
MySQL数据库查询性能优化的技巧和经验分享
MySQL数据库查询性能优化的技巧和经验分享
|
SQL 关系型数据库 MySQL
MySQL实战基础知识入门(10):今天、昨天、近7天、近30天在一个筛选语句内实现的解决方案
MySQL实战基础知识入门(10):今天、昨天、近7天、近30天在一个筛选语句内实现的解决方案
114 0
下一篇
无影云桌面