ClickHouse之DBA运维宝典 4年前

最近有位网友与我聊天,他是一名 DBA,问我在 ClickHouse 中有没有一些能够 “安家立命” 的运维 SQL 语句。我想对于这个问题很多朋友都会有兴趣,所以就在这里做一个简单的分享。

在 ClickHouse 默认的 system 数据库下(databse),拥有众多的系统表。我们对 ClickHouse 运行状态的各种信息,就主要来自于这些系统表。

接下来就列举一些常用的运维 SQL 语句。

  • 当前连接数

众所周知,CH 对外暴露的原生接口分为 TCP 和 HTTP 两类,通过 system.metrics 即可查询当前的 TCP、HTTP 与内部副本的连接数。

ch7.nauu.com :) SELECT * FROM system.metrics WHERE metric LIKE '%Connection';
  • 当前正在执行的查询

通过 system.processes 可以查询目前正在执行的查询,例如:

ch7.nauu.com :) SELECT query_id, user, address, query  FROM system.processes ORDER BY query_id;

可以看到,CH 目前正在执行两条语句,其中第 2 条是  INSERT 查询正在写入数据。 

  • 终止查询

通过 KILL QUERY 语句,可以终止正在执行的查询:

KILL QUERY WHERE query_id = 'query_id'

例如,终止刚才的  INSERT 查询 :

ch7.nauu.com :) KILL QUERY WHERE query_id='ff695827-dbf5-45ad-9858-a853946ea140';

众所周知,除了常规的 SELECT 和 INSERT 之外,在 ClickHouse 中还存在一类被称作 Mutation 的操作,也就是 **ALTER ** DELETE 和  **ALTER ** UPDATE

对于 Mutation 操作, ClickHouse 专门提供了  system.mutations 用于查询,例如:

ch7.nauu.com :) SELECT database, table, mutation_id, command, create_time, is_done FROM system.mutations;

同样的,可以使用  KILL MUTATION 终止正在执行的 Mutation 操作:

KILL MUTATION WHERE mutation_id = 'mutation_id';
  • 存储空间统计

查询 CH 各个存储路径的空间:

ch5.nauu.com :) SELECT name,path,formatReadableSize(free_space) AS free,formatReadableSize(total_space) AS total,formatReadableSize(keep_free_space) AS reserved FROM system.disks
  • 各数据库占用空间统计

    ch7.nauu.com :) SELECT database, formatReadableSize(sum(bytes_on_disk)) on_disk FROM system.parts GROUP BY database;

  • 个列字段占用空间统计

每个列字段的压缩大小、压缩比率以及该列的每行数据大小的占比

SELECT
  • 慢查询

    SELECT

  • 副本预警监控

通过下面的 SQL 语句对副本进行预警监控,其中各个预警的变量可以根据自身情况调整。

SELECT database, table, is_leader, total_replicas, active_replicas

好了,今天的分享就到这里。对于 CH 日常的运维 SQL 远不止这些,这里也只是抱砖引玉啦。

彩蛋:这次送6本书,转发文章的朋友才有资格抽奖,送给最需要的人😄,公众号回复:"抽奖",即可参与。

扫码关注我们

我知道你“在看”哟~

本文分享自微信公众号 - 小晨说数据(flink-spark)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

image
岁月不待人
和自己的心站在一起,而不是恐惧、悲伤、失落、无力、愤怒、掩饰。勇敢。
2
发布数
2
关注者
1296
累计阅读

热门教程文档

QT
33小节
Docker
62小节
React Native
40小节
Vue
25小节
Linux
51小节
广告