【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

相关文章
|
5月前
|
SQL 监控 关系型数据库
SQL性能监控与调优工具的神奇之处:如何用最佳实践选择最适合你的那一个,让你的数据库飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库性能监控与调优对应用稳定性至关重要。本文对比了数据库内置工具、第三方工具及云服务工具等几种常用SQL性能监控与调优工具,并通过示例代码展示了如何利用MySQL的EXPLAIN功能分析查询性能。选择最适合的工具需综合考虑功能需求、数据库类型及成本预算等因素。遵循了解工具功能、试用工具及定期维护工具等最佳实践,可帮助开发者更高效地管理和优化数据库性能,迎接未来软件开发中的挑战与机遇。
73 0
|
SQL 缓存 关系型数据库
简述MySQL可以从哪些方面做到性能优化
数据库设计优化:良好的数据库设计是性能优化的基础。包括选择适当的数据类型、建立正确的索引以及合理划分表等。通过优化数据库结构,可以减少磁盘空间的占用和提高查询效率。
140 0
|
存储 SQL 数据挖掘
ClickHouse使用场景和案列分析
@[TOC](目录) # 一、ClickHouse 概述 ## 1. ClickHouse简介 ClickHouse 是一款开源的分布式列式数据库,旨在处理大规模数据集并实现快速查询。它最初由俄罗斯搜索引擎公司 Yandex 于 2016 年发布,并在短时间内获得了广泛的关注和应用。ClickHouse 具有高性能、可扩展性和可靠性等特点,成为处理海量数据的理想工具。 ## 2. ClickHouse 发展历程 ClickHouse 的发展历程可以追溯到 2016 年,当时 Yandex 公司意识到传统的关系型数据库在处理大规模数据时存在性能瓶颈,于是开始研发一款专为大数据处理而设计的列式数
2945 0
|
SQL 关系型数据库 MySQL
MySQL实战基础知识入门(10):今天、昨天、近7天、近30天在一个筛选语句内实现的解决方案
MySQL实战基础知识入门(10):今天、昨天、近7天、近30天在一个筛选语句内实现的解决方案
127 0
|
存储 监控 关系型数据库
MySQL数据库查询性能优化的技巧和经验分享
MySQL数据库查询性能优化的技巧和经验分享
|
SQL 存储 消息中间件
ELK搭建(六):搭建mysql性能、执行效率监控平台
mysql作为市场的主流数据库,承载了大部分公司的核心业务数据,同时也是大多数业务的底层存储。 针对mysql运行情况的监控必不可少,之前我们讲解了如何搭建mysql慢日志、错误日志的监控平台。 那么本期,我们针对mysql集群、性能、各类sql语句执行情况、服务状态等指标来搭建一个可视化的监控平台,方便我们实时了解mysql资源利用率、sql执行效率、访问压力等等。
469 0
ELK搭建(六):搭建mysql性能、执行效率监控平台
|
存储 SQL 设计模式
ClickHouse设计原理简介(中)
ClickHouse设计原理简介(中)
443 1
ClickHouse设计原理简介(中)
|
存储 自然语言处理 算法
ClickHouse设计原理简介(下)
ClickHouse设计原理简介(下)
389 0
ClickHouse设计原理简介(下)