clickhouse日志表占用大量磁盘空间
sql:
SELECT
sum(rows) 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 压缩率
,
table
AS 表名
FROM system.parts where database = ‘system’ group by table
;
query_log也占用了200多个G已经删过了。现在开始删除query_thread_log然后做下记录。
通过一下sql确认下query_thread_log的分区:
SELECT * FROM system.parts where database = ‘system’ and table
= ‘query_thread_log’;
可以看到query_thread_log表的分区也是年月格式的。
然后使用下面sql使用删除分区的方式开始删除数据
alter table system.query_thread_log drop partition ‘202303’;
ps通过删除分区的方式删除数据的效率会高一点,然后问题来了当我删去耨个分区的数据的时候报错了
这个分区的数据超过50G,ck处于保护机制,是禁止这样删除大数据的表格的。
然后在clickhouse所在的服务器上执行下面的命令:
sudo touch /home/clickhouse/flags/force_drop_table && sudo chmod 666 /home/clickhouse/flags/force_drop_table
注意此处的目录是使用错误提示的这个目录,因为我更改了clickhouse的默认数据存储目录,所以可能跟你提示的不一样
然后再中alart删除语句。
ps:然后有一个恶心的地方就是每需要删除一个大数据的分区的时候都需要执行一遍上述的linux命令 恶心~