1.概述

转载:ClickHouse之DBA运维宝典 这里仅仅是积累知识。建议大家去看原来的。

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

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

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

1.1 当前连接数

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


ch7.nauu.com :) SELECT * FROM system.metrics WHERE metric LIKE '%Connection';SELECT *
FROM system.metrics
WHERE metric LIKE '%Connection'┌─metric────────────────┬─value─┬─description─────────────────────────────────────────────────────────┐
│ TCPConnection         │     2 │ Number of connections to TCP server (clients with native interface) │
│ HTTPConnection        │     1 │ Number of connections to HTTP server                                │
│ InterserverConnection │     0 │ Number of connections from other replicas to fetch parts            │
└───────────────────────┴───────┴─────────────────────────────────────────────────────────────────────┘

1.2 当前正在执行的查询

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


ch7.nauu.com :) SELECT query_id, user, address, query  FROM system.processes ORDER BY query_id;SELECT query_id, user, address, query
FROM system.processes
ORDER BY query_id ASC┌─query_id─────────────────────────────┬─user────┬─address────────────┬─query─────────────────────────────────────────────────────────────────────────────┐
│ 203f1d0e-944e-472d-8d8f-bae548ff9899 │ default │ ::ffff:10.37.129.4 │ SELECT query_id, user, address, query FROM system.processes ORDER BY query_id ASC │
│ fb7fba85-b2a0-4271-87ff-22da97ae511b │ default │ ::ffff:10.37.129.4 │ INSERT INTO hits_v1 FORMAT TSV                                                    │
└──────────────────────────────────────┴─────────┴────────────────────┴───────────────────────────────────────────────────────────────────────────────────┘

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

1.3 终止查询

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

KILL QUERY WHERE query_id = 'query_id'

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

ch7.nauu.com :) KILL QUERY WHERE query_id='ff695827-dbf5-45ad-9858-a853946ea140';KILL QUERY WHERE query_id = 'ff695827-dbf5-45ad-9858-a853946ea140' ASYNCOk.0 rows in set. Elapsed: 0.024 sec.

众所周知,除了常规的 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;SELECT database, table, mutation_id, command, create_time, is_done
FROM system.mutations┌─database─┬─table──────┬─mutation_id────┬─command──────────────────┬─────────create_time─┬─is_done─┐
│ default  │ testcol_v9 │ mutation_2.txt │ DELETE WHERE ID = 'A003' │ 2020-06-29 01:15:04 │       1 │
└──────────┴────────────┴────────────────┴──────────────────────────┴─────────────────────┴─────────┘1 rows in set. Elapsed: 0.002 sec.

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

KILL MUTATION WHERE mutation_id = 'mutation_id';

1.4 存储空间统计

查询 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.disksSELECT name, path, formatReadableSize(free_space) AS free, formatReadableSize(total_space) AS total, formatReadableSize(keep_free_space) AS reserved
FROM system.disks┌─name──────┬─path──────────────┬─free──────┬─total─────┬─reserved─┐
│ default   │ /chbase/data/     │ 36.35 GiB │ 49.09 GiB │ 0.00 B   │
│ disk_cold │ /chbase/cloddata/ │ 35.35 GiB │ 48.09 GiB │ 1.00 GiB │
│ disk_hot1 │ /chbase/data/     │ 36.35 GiB │ 49.09 GiB │ 0.00 B   │
│ disk_hot2 │ /chbase/hotdata1/ │ 36.35 GiB │ 49.09 GiB │ 0.00 B   │
└───────────┴───────────────────┴───────────┴───────────┴──────────┘4 rows in set. Elapsed: 0.001 sec.

各数据库占用空间统计

ch7.nauu.com :) SELECT database, formatReadableSize(sum(bytes_on_disk)) on_disk FROM system.parts GROUP BY database;SELECT database, formatReadableSize(sum(bytes_on_disk)) AS on_disk
FROM system.parts
GROUP BY database┌─database─┬─on_disk──┐
│ system   │ 1.59 MiB │
│ default  │ 3.60 GiB │
└──────────┴──────────┘

1.4.1 个列字段占用空间统计

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

SELECT database, table, column, any(type), sum(column_data_compressed_bytes) AS compressed, sum(column_data_uncompressed_bytes) AS uncompressed, round(uncompressed / compressed, 2) AS ratio, compressed / sum(rows) AS bpr, sum(rows)
FROM system.parts_columns
WHERE active AND database != 'system'
GROUP BY database, table, column
ORDER BY database ASC, table ASC, column ASC┌─database─┬─table────────┬─column─────────────────────┬─any(type)──────────────────────────────┬─compressed─┬─uncompressed─┬──ratio─┬───────────────────bpr─┬─sum(rows)─┐
│ default  │ hits_v1      │ AdvEngineID                │ UInt8                                  │     351534 │     26621706 │  75.73 │  0.013204788603705563 │  26621706 │
│ default  │ hits_v1      │ Age                        │ UInt8                                  │    7543552 │     26621706 │   3.53 │    0.2833609536518809 │  26621706 │
│ default  │ hits_v1      │ BrowserCountry             │ FixedString(2)                         │    6549379 │     53243412 │   8.13 │   0.24601650247358303 │  26621706 │
│ default  │ hits_v1      │ BrowserLanguage            │ FixedString(2)                         │    2819085 │     53243412 │  18.89 │   0.10589422781545255 │  26621706 │
│ default  │ hits_v1      │ CLID                       │ UInt32                                 │    2311006 │    106486824 │  46.08 │   0.08680908729140048 │  26621706 │
│ default  │ hits_v1      │ ClientEventTime            │ DateTime                               │   98518704 │    106486824 │   1.08 │    3.7006908573026838 │  26621706 │
│ default  │ hits_v1      │ ClientIP                   │ UInt32                                 │   25120766 │    106486824 │   4.24 │    0.9436196913901761 │  26621706 │
│ default  │ hits_v1      │ ClientIP6                  │ FixedString(16)                        │   25088558 │    425947296 │  16.98 │    0.9424098515699934 │  26621706 │
│ default  │ hits_v1      │ ClientTimeZone             │ Int16                                  │    8487148 │     53243412 │   6.27 │    0.3188055641512982 │  26621706 │
│ default  │ hits_v1      │ CodeVersion                │ UInt32                                 │   11976952 │    106486824 │   8.89 │    0.4498942329240658 │  26621706 │
│ default  │ hits_v1      │ ConnectTiming              │ Int32                                  │   27937373 │    106486824 │   3.81 │    1.0494208372671534 │  26621706 │
│ default  │ hits_v1      │ CookieEnable               │ UInt8                                  │     202718 │     26621706 │ 131.32 │  0.007614763681936838 │  26621706 │
│ default  │ hits_v1      │ CounterClass               │ Int8                                   │     425492 │     26621706 │  62.57 │  0.015982897564866805 │  26621706 │
...

1.5 慢查询

SELECT user, client_hostname AS host, client_name AS client, formatDateTime(query_start_time, '%T') AS started, query_duration_ms / 1000 AS sec, round(memory_usage / 1048576) AS MEM_MB, result_rows AS RES_CNT, result_bytes / 1048576 AS RES_MB, read_rows AS R_CNT, round(read_bytes / 1048576) AS R_MB, written_rows AS W_CNT, round(written_bytes / 1048576) AS W_MB, query
FROM system.query_log
WHERE type = 2
ORDER BY query_duration_ms DESC
LIMIT 10┌─user────┬─host─────────┬─client────────────┬─started──┬────sec─┬─MEM_MB─┬──RES_CNT─┬────────────────RES_MB─┬────R_CNT─┬─R_MB─┬───W_CNT─┬─W_MB─┬─query───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ default │ ch7.nauu.com │ ClickHouse client │ 01:05:03 │ 51.434 │   1031 │  8873898 │      8706.51146697998 │        0 │    0 │ 8873898 │ 8707 │ INSERT INTO hits_v1 FORMAT TSV                                                                                                                                          │
│ default │ ch7.nauu.com │ ClickHouse client │ 01:01:48 │ 43.511 │   1031 │  8873898 │      8706.51146697998 │        0 │    0 │ 8873898 │ 8707 │ INSERT INTO hits_v1 FORMAT TSV                                                                                                                                          │
│ default │ ch7.nauu.com │ ClickHouse client │ 17:12:04 │  11.12 │   1801 │ 18874398 │     446.8216323852539 │  6291466 │  351 │       0 │    0 │ SELECT id, arrayJoin(arrayConcat(groupArray(a), groupArray(b), groupArray(c))) AS v FROM test_y GROUP BY id ORDER BY v ASC                                              │
│ default │ ch7.nauu.com │ ClickHouse client │ 17:13:28 │  3.992 │   1549 │ 18874398 │     446.8216323852539 │  6291466 │  351 │       0 │    0 │ SELECT id, arrayJoin(arrayConcat(groupArray(a), groupArray(b), groupArray(c))) AS v FROM test_y GROUP BY id                                                             │
│ default │ ch7.nauu.com │ ClickHouse client │ 17:13:12 │  3.976 │   1549 │ 18874398 │     446.8216323852539 │  6291466 │  351 │       0 │    0 │ SELECT id, arrayJoin(arrayConcat(groupArray(a), groupArray(b), groupArray(c))) AS v FROM test_y GROUP BY id                                                             │
│ default │ ch7.nauu.com │ ClickHouse client │ 01:25:39 │  3.962 │   1549 │ 18874398 │     446.8216323852539 │  6291466 │  351 │       0 │    0 │ SELECT id, arrayJoin(arrayConcat(groupArray(a), groupArray(b), groupArray(c))) AS v FROM test_y GROUP BY id                                                             │
│ default │ ch7.nauu.com │ ClickHouse client │ 04:32:29 │  3.114 │   1542 │ 10000000 │    219.82192993164062 │ 10500000 │  231 │       0 │    0 │ SELECT user_id, argMax(score, create_time) AS score, argMax(deleted, create_time) AS deleted, max(create_time) AS ctime FROM test_a GROUP BY user_id HAVING deleted = 0 │
│ default │ ch7.nauu.com │ ClickHouse client │ 02:59:56 │   3.03 │   1544 │ 10000000 │    219.75380992889404 │ 10500000 │  231 │       0 │    0 │ SELECT user_id, argMax(score, create_time) AS score, argMax(is_update, create_time) AS is_update, max(create_time) AS ctime FROM test_a GROUP BY user_id                │
│ default │ ch7.nauu.com │ ClickHouse client │ 02:54:01 │  3.019 │   1543 │ 10000000 │     219.3450927734375 │ 10500000 │  230 │       0 │    0 │ SELECT user_id, argMax(score, create_time) AS score, argMax(delete, create_time) AS delete, max(create_time) AS ctime FROM test_a GROUP BY user_id                      │
│ default │              │                   │ 03:03:12 │  2.857 │   1543 │       10 │ 0.0002269744873046875 │ 10500000 │  231 │       0 │    0 │ SELECT * FROM view_test_a limit 10                                                                                                                                      │
└─────────┴──────────────┴───────────────────┴──────────┴────────┴────────┴──────────┴───────────────────────┴──────────┴──────┴─────────┴──────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘10 rows in set. Elapsed: 0.017 sec. Processed 1.44 thousand rows, 200.81 KB (83.78 thousand rows/s., 11.68 MB/s.) 

1.6 副本预警监控

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

SELECT database, table, is_leader, total_replicas, active_replicas FROM system.replicas WHERE is_readonly OR is_session_expired OR future_parts > 30 OR parts_to_check > 20 OR queue_size > 30 OR inserts_in_queue > 20 OR log_max_index - log_pointer > 20 OR total_replicas < 2 OR active_replicas < total_replicas┌─database─┬─table───────────────────────┬─is_leader─┬─total_replicas─┬─active_replicas─┐
│ default  │ replicated_sales_12         │         0 │              0 │               0 │
│ default  │ test_fetch                  │         0 │              0 │               0 │
│ default  │ test_sharding_simple2_local │         0 │              0 │               0 │
└──────────┴─────────────────────────────┴───────────┴────────────────┴─────────────────┘

【clickhouse】ClickHouse之DBA运维宝典相关推荐

  1. ClickHouse之DBA运维宝典

    ClickHouse 中有没有一些能够 "安家立命" 的运维 SQL 语句.我想对于这个问题很多朋友都会有兴趣,所以就在这里做一个简单的分享. 在 ClickHouse 默认的 s ...

  2. bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...

    MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典 本资源由JAD资源网收集整理丨www.jiuandun.com 资源简介 MySQ DBAL重点剖 ...

  3. DBA运维福音:10分钟,一行命令安装Oracle数据库

    前言 随着Oracle数据库的普遍应用,大家多多少少都需要安装Oracle数据库,比如应用上线,应用测试,恢复演练,版本升级等等.作为经常从事这类工作的DBA运维人员,相信大家早已厌倦这些重复性的劳动 ...

  4. 老男孩mysql运维dba实战21部完整版_老男孩MySQL DBA 运维课程全套,资源教程下载...

    课程名称 老男孩MySQL DBA 运维课程全套 课程目录 01-第一部-MySQL基础入门(21节) 02-第二部-老男孩MySQL多实例安装与企业应用场景(10节) 03-第三部-老男孩MySQL ...

  5. DBA运维工具-OLazy

    OLazy说明 OLazy工具是辅助.帮助简化DBA运维工具,将日常用到的众多命令集于一身,DBA只需要敲简单的命令即可查看相应的数据,如:tbs:查看表空间相关信息. 其主要特性是无客户端方式,无需 ...

  6. DBA/运维人员近期直播活动日历

    2020年3月4日 星期三 20:00-21:00 分享主题:腾讯云TDSQL产品设计思路与产品能力分享 本分享从产品设计视角,分析了国内分布式数据库产生的背景,为什么主流分布式数据库都是兼容MySQ ...

  7. 运维宝典 | 数据千万条,备份第一条,数据找不回,老板两行泪

    开工第一天,请带着你的回忆看下文,想想你这些年删过的库,被删过的库... 数据库备份是个老生常谈的话题,看似很简单,但在实际操作过程中,运维人员往往会遇到这样或那样的"坑". 数据 ...

  8. 【DB】数据库面试笔试题库及详解(小麦苗DBA宝典出品)--数据库运维宝典

    DB笔试面试历史连接--2019 DB笔试面试历史连接--2018 DB笔试面试历史连接--2017 DB笔试面试历史连接--2016 小麦苗课堂培训认证 OCP培训说明连接:https://mp.w ...

  9. DBA 运维与管理操作规范

    DBA操作规范 1.涉及业务上的修改/删除数据,在得到业务方.CTO的邮件批准后方可执行,执行前提前做好备份,必要时可逆. 2.所有上线需求必须走工单系统,口头通知视为无效. 3.在对大表做表结构变更 ...

最新文章

  1. java 无符号 类型_java中符号类型和无符号类型的问题分析
  2. 64位Ubuntu kylin 16.04搭建nfs网络文件系统
  3. 网络交换机的作用有哪些?
  4. 远控免杀专题(29)-C#加载shellcode免杀-5种方式(VT免杀率8-70)
  5. 共享锁与排它锁区别(转)
  6. HTTP请求方式中GET和POST的区别?
  7. 适用于连续资源块的数组空闲链表的算法
  8. python对文件去重_python对文件夹内文件去重
  9. 手撸一个外卖点餐系统后台,可以写上简历的实战项目!
  10. order by、distribute by、sort by、group by、partition by
  11. appstore开发者中文名称修改
  12. 3、xx配音狂app登陆算法分析【Android逆向分析学习】
  13. STM32——中断优先级分组
  14. 3934:C 10 Aug 2022 00:14:04.239 # Fatal error, can‘t open config file ‘/usr/local/redis/./redis-conf
  15. 用计算机求函数总分 平均分,老师如何在Excel学生成绩表中一键生成总分和各科平均分...
  16. 10个最好用的在线配色网站推荐
  17. 聊聊 Redis 使用场景 1
  18. pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple
  19. 带id的市和区/县 json数据
  20. 聚名十周年线上庆典正式开启,发送祝福即有好礼相赠~

热门文章

  1. 买下千万美元豪宅的库克 在周日获得了价值3600万美元股票
  2. “五一”档总票房破13亿 《你的婚礼》高居榜首
  3. 荣耀V40屏幕素质得到“认证”:120Hz高刷屏没跑了
  4. 3399元起!120Hz瞳孔屏+65W超级闪充,一加 8T今日发布
  5. B站发布2020年一季度财报:月活用户达1.72亿,日活用户突破5000万
  6. 字节跳动的首款获批游戏曝光 原来是这个
  7. 有没有跟新型肺炎确诊患者同乘车?百度可查!
  8. 国庆档电影《我和我的祖国》3天票房破10亿
  9. 小米MIX 4真机亮屏照曝光?真全面屏 边框窄到窒息
  10. 情侣签到365天获1000现金?这款App被关停下架了 网友拍手称快!