【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

相关文章
|
SQL 运维 监控
Clickhouse运维之你最需要知道的SQL总结
Clickhouse运维之你最需要知道的SQL总结
Clickhouse运维之你最需要知道的SQL总结
|
OLAP 数据库 索引
59.【clickhouse】ClickHouse从入门到放弃-分区表
【clickhouse】ClickHouse从入门到放弃-分区表
59.【clickhouse】ClickHouse从入门到放弃-分区表
|
11月前
|
存储 SQL 监控
ClickHouse 应用剖析:设计理念、机制与实践
ClickHouse 是一款高性能的列式数据库管理系统,主要用于实时的大数据分析场景。它由俄罗斯 Yandex 公司开源于 2016 年,在网页日志分析、物联网监控、广告计费等领域有广泛应用。ClickHouse 通过列式存储、向量化执行和分布式架构,实现对海量数据的快速查询分析。本文将介绍 ClickHouse 的设计理念,以及在实际使用中如何处理数据删除更新、冷热数据分离等问题,并提供常见配置的调优建议和异常问题的处理方法。
1402 14
ClickHouse 应用剖析:设计理念、机制与实践
|
SQL 存储 算法
ClickHouse性能优化 3
ClickHouse性能优化
993 0
|
11月前
|
存储 SQL 自然语言处理
ClickHouse查询执行与优化
本文详细介绍了SQL语法扩展、执行计划分析及优化策略,涵盖特殊函数与子句(如`WITH`、`ANY JOIN`)、聚合函数扩展(如`uniqCombined`、`quantileTDigest`)以及执行计划优化技巧。同时深入解析了ClickHouse的索引原理,包括主键索引和跳数索引的工作机制与优化方法。针对查询优化,文章提供了过滤条件下推、分布式查询优化和数据预聚合等策略,并探讨了资源管理与并发控制的核心参数(如`max_memory_usage`、`max_threads`)及队列优先级调度机制,助力高效使用ClickHouse。
1396 9
|
11月前
|
存储 分布式计算 监控
ClickHouse简介
ClickHouse是一款专注于OLAP(联机分析处理)的列式存储数据库,以其极致的查询性能、高压缩率和实时分析能力著称。它通过列式存储、向量化查询引擎及分布式架构,满足大规模数据复杂聚合需求,适用于实时日志分析、用户行为分析等场景。然而,ClickHouse不支持事务(ACID),JOIN性能较弱,且对单行更新/删除效率低,不适合OLTP场景。其丰富的表引擎(如MergeTree系列)和数据类型(如LowCardinality优化类型)为不同业务需求提供了灵活支持。
1691 3
|
11月前
|
存储 缓存 分布式计算
ClickHouse核心架构设计
本文深入解析了列式存储、数据压缩、向量化执行引擎、分布式计算模型及MergeTree引擎的底层原理。首先对比列式与行式存储,阐述列式存储在减少I/O、高效压缩及向量化处理方面的优势;接着分析常用压缩算法(如LZ4、ZSTD)及其优化策略。随后探讨向量化执行引擎的工作机制,包括数据块结构、SIMD指令加速及零拷贝技术,显著提升OLAP查询性能。分布式计算部分详解分片与副本机制,确保高可用与扩展性。最后聚焦MergeTree引擎,涵盖数据写入、合并、主键索引、跳数索引及分区管理等核心功能,并提供最佳实践建议。
644 8
|
SQL 存储 缓存
什么?部署ClickHouse的服务器CPU利用率100%了?
什么?部署ClickHouse的服务器CPU利用率100%了?
|
存储 SQL 算法
ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
CollapsingMergeTree是ClickHouse的一种表引擎,它扩展了`MergeTree`,通过折叠行来优化存储和查询效率。当`Sign`列值为1和-1的成对行存在时,该引擎会异步删除除`Sign`外其他字段相同的行,只保留最新状态。建表语法中,`sign`列必须为`Int8`类型,用来标记状态(1)和撤销(-1)。写入时,应确保状态和撤销行的对应关系以保证正确折叠。查询时,可能需要使用聚合函数如`sum(Sign * x)`配合`GROUP BY`来处理折叠后的数据。使用`FINAL`修饰符可强制折叠,但效率较低。系列文章提供了更多关于ClickHouse及其表引擎的详细解析。
646 1
|
JSON Prometheus 监控
ClickHouse监控系统Prometheus+Grafana
ClickHouse监控系统Prometheus+Grafana
2461 0

热门文章

最新文章