场景一、查询占cpu高的SQL
运维过ClickHouse都知道,ClickHouse很容易cpu飙高,当ClickHouse的节点cpu飙高时,那么,需要找到对应的SQL,下面的语句可以协助你找到很耗cpu的SQL语句,找到语句后剩下的就是SQL优化了。
| #在最近十分钟,消耗cpu top 10的SQL WITH ( SELECT sum(ProfileEvents['OSCPUVirtualTimeMicroseconds']) FROM clusterAllReplicas(集群名称, system.query_log) WHERE event_time > (now() - toIntervalMinute(10)) ) AS cpu_total_microseconds SELECT normalized_query_hash, query_kind, first_value(query), sum(ProfileEvents['OSCPUVirtualTimeMicroseconds']) AS cpu_microseconds, (((cpu_microseconds / 1000) / 1000) / 60) / 10 AS kernel_num, (cpu_microseconds / cpu_total_microseconds) * 100 AS percent FROM clusterAllReplicas(集群名称, system.query_log) WHERE event_time > (now() - toIntervalMinute(10)) GROUP BY normalized_query_hash, query_kind ORDER BY cpu_microseconds DESC LIMIT 10 SETTINGS max_threads = 2 |
场景二、杀掉具体查询和MUTATION
如若在生产数据库上,发现某个查询很耗费资源,并且执行时间特别久,经过排查该SQL不重要可以杀掉,那么可以使用KILL语句把这个SQL干掉。
(1)查询耗时很长的SQL
select query_id,elapsed,query from system.processes where elapsed > xxx;
(2)执行KILL语句
KILL QUERY WHERE query_id = 'xxx';
有些任务会异步执行的,比如说delete,当执行了后会立即返回结果,任务在后台异步执行的,如若担心mutation影响到数据库的性能了,想kill这个操作,那么可以这么干,先查出相关信息,然后再执行kill。
(1) 查询出具体的mutation_id
select * from system.mutations where database = ‘xxx’ and table = ‘xxx’;
(2)通过KILL语句干掉MUTATION
KILL MUTATION WHERE database = 'xxx' AND table = 'xxx' AND mutation_id = 'xxx';
场景三、修改某个参数
有些时候我们需要对账号进行一些资源限制,比如下面我要对所有账号限制其并发查询最大线程数,那么可以使用如下命令
| CREATE SETTINGSPROFILE max_threads_profile SETTINGS max_threads = 10 TO ALL |
如若我要对某个账号限制其查询的执行时间,则可以使用如下命令
| CREATE SETTINGS PROFILE max_execution_time_profile SETTINGS max_execution_time = 600 TO 账号_A ;注意这个设置了对该账号的insert也生效的 |
场景四、查看执行计划
查到了占cpu高的或者耗时长的SQL,那么就要看这个SQL的执行计划,分析是否有优化的空间,ClickHouse查看执行计划有很多种方式,这里只介绍最常用的方式。
| explain indexes=1 select * from table_a limit 1;
|
场景五、查询表大小、集群信息、磁盘信息
| #查看表在磁盘上的大小,压缩、未压缩的大小、压缩率 SELECT database, table, formatReadableSize(size) AS size, formatReadableSize(bytes_on_disk) AS bytes_on_disk, formatReadableSize(data_uncompressed_bytes) AS data_uncompressed_bytes, formatReadableSize(data_compressed_bytes) AS data_compressed_bytes, compress_rate, rows, days, formatReadableSize(avgDaySize) AS avgDaySize FROM ( SELECT database, table, sum(bytes) AS size, sum(rows) AS rows, min(min_date) AS min_date, max(max_date) AS max_date, sum(bytes_on_disk) AS bytes_on_disk, sum(data_uncompressed_bytes) AS data_uncompressed_bytes, sum(data_compressed_bytes) AS data_compressed_bytes, (data_compressed_bytes / data_uncompressed_bytes) * 100 AS compress_rate, max_date - min_date AS days, size / (max_date - min_date) AS avgDaySize FROM system.parts WHERE active AND (database = 'xxx') GROUP BY database, table ) #查看集群信息 select * from system.clusters #查看磁盘信息 select * from system.disks; |
场景六、停止Merge
某些场景下存在需要把表的merge操作临时停掉,避免出现文件不存在的错误,比如迁移数据,下面是停止表merge和启动表merge的命令
(1)停止merge
ALTER TABLE tab_name ON CLUSTER cluster_name MODIFY SETTING max_replicated_merges_in_queue = 0, max_bytes_to_merge_at_max_space_in_pool = 0, max_bytes_to_merge_at_min_space_in_pool = 0
(2)开启merge
ALTER TABLE tab_name ON CLUSTER cluster_name MODIFY SETTING max_replicated_merges_in_queue = 16, max_bytes_to_merge_at_max_space_in_pool = 32212254720, max_bytes_to_merge_at_min_space_in_pool = 1048576
场景七、创建外表、分区移动
ClickHouse支持外表,把数据存储在mysql或者其他存储介质上,通过ClickHouse本地来查询,下面是创建外地表的命令
| CREATE TABLE 库名.表名 ( 字段1 UInt32, 字段2 String, 字段3 UInt32 ) ENGINE = MySQL('ip:port', '库名', '表名', '账号', '密码') |
有时候会有把表的分区移动到另外一个表中的需求,比如把一些不怎么使用的数据移动到另外一个表中,保留一段时间后进行删除,可以使用如下命令进行移动。
| ALTER TABLE 库名.表名 MOVE PARTITION 19700120 TO TABLE 库名.表名; |
场景八、给表数据设置TTL
某些场景会给表设置数据生命周期,比如几个月之前的数据可能不需要,就可以删除掉,节省存储,ClickHouse也支持TTL,无需自己去手动删除数据,设置好策略自动帮你清理数据,命令如下:
| create table 库名.表名 (字段1 Int32, 字段2 String, 字段3 DateTime )engine = MergeTree Order by 字段3 TTL 字段3 + INTERVAL 3 MONTH |
场景九、集群间数据迁移
经常会存在把这个集群的表中的数据迁移到另外一个集群中的表中,我们会使用remote的这个工具来进行迁移,命令如下:
| #迁移数据 Insert into 库名.表名 select * from remote(‘ip:port’,’库名’,’表名’,’账号’,’密码’)
|
场景十、备份与恢复
数据库备份和恢复是最常见的操作,ClickHouse也有原生的备份和恢复工具,分别是backup和restore,这里使用表备份到oss存储上进行举例说明其用法,表格里面是详细的命令,对表的备份和恢复需要了解以下两个知识点
一是backup和restore,只能操作本地表,只在一个节点执行,因为backup和restore可以通过zk分发到各个节点上,所以不需要去每个节点执行。
二是backup和restore不能备份和还原分布式表,备份和还原过程都不会报错,备份的文件大小也跟本地表备份大小无差别,但是恢复后,数据为0。
| (1)备份表到oss BACKUP TABLE 库名.表名 TO S3('oss地址', '账号', '密码') BACKUP TABLE 库名.表名 PARTITION 202504 TO S3('oss地址', '账号', '密码') (2)从oss恢复数据 RESTORE TABLE 库名.表名 FROM S3('oss地址', '账号', '密码') SETTINGS allow_non_empty_tables=true |
35岁+运维人员的发展与出路
经常有人问我:干网工、干运维多年遇瓶颈,想学点新技术给自己涨涨“身价”,应该怎么选择?
聪明人早已经用脚投票:近年来,越来越多运维的朋友寻找新的职业发展机会,将目光聚焦到了网络安全产业。
1、为什么我建议你学习网络安全?
有一种技术人才:华为阿里平安等大厂抢着要,甚至高薪难求——白帽黑客。白帽黑客,就是网络安全卫士,他们“低调”行事,同时“身价”不菲。
根据腾讯安全发布的《互联网安全报告》,目前中国**网络安全岗位缺口已达70万,缺口高达95%。**而与网络安全人才需求量逐年递增局面相反的是,每年高校安全专业培养人才仅有3万余人,很多企业却一“将”难求,网络安全人才供应严重匮乏。
这种供求不平衡直接反映在安全工程师的薪资上,简单来说就是:竞争压力小,薪资还很高。



而且安全行业就业非常灵活,既可以就职一家公司从事信息安全维护和研究,也可以当作兼职或成为自由职业者,给SRC平台提交漏洞获取奖金等等。
随着国家和政府的强监管需求,一线城市安全行业近年来已经发展的相当成熟工作机会非常多,二三线城市安全也在逐步得到重视未来将有巨大缺口。
作为运维人员,这几年对于安全的技能要求也将不断提高,现阶段做好未来2到3年的技术储备,有非常大的必要性
2、运维转型成为网络安全工程师,是不是很容易?
运维转安全,因为本身有很好的Linux基础,相对于其他人来说,确实有一定的优势,入门会快一些。
系统管理经验
运维对服务器、网络架构的深度理解,可直接迁移到安全防护场景。例如,熟悉Linux/Windows系统漏洞修补、权限管控,能快速上手安全加固工作。
网络协议与架构知识
运维日常接触TCP/IP、路由协议等,有助于分析网络攻击路径(如DDoS防御、流量异常检测)。
自动化与脚本能力
运维常用的Shell/Python脚本技能,可无缝衔接安全工具开发(如自动化渗透脚本、日志分析工具)。
平滑过渡方向
从安全运维切入,逐步学习渗透测试、漏洞挖掘等技能,利用现有运维经验快速上手。
学习资源丰富
可复用运维工具(如ELK日志分析、Ansible自动化)与安全工具(如Nessus、Metasploit)结合学习,降低转型成本。
3. 转型可以挖漏洞搞副业获取收益挖SRC漏洞
-
合法挖洞:在合法的平台上挖掘安全漏洞,提交后可获得奖励。这种方式不仅能够锻炼你的技能,还能为你带来额外的收入。
-
平台推荐:
补天:国内领先的网络安全漏洞响应平台。
漏洞盒子:提供丰富的漏洞挖掘任务。
CNVD:国家信息安全漏洞共享平台。
关于我
有不少阅读过我文章的伙伴都知道,笔者曾就职于某大厂安全联合实验室。从事网络安全行业已经好几年,积累了丰富的技能和渗透经验。
在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了互联网安全防护水平。

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

黑客/网络安全学习包


资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**

**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取



186

被折叠的 条评论
为什么被折叠?



