clickhouse日志表占用大量磁盘空间

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命令 恶心~

Docker Overlay2是Docker引擎默认使用的存储驱动程序之一,它用于管理容器的镜像和文件系统。在使用Overlay2存储驱动时,可能会出现占用大量磁盘空间的情况。这通常是由于Docker镜像和容器的层叠结构导致的。 当你创建一个新的容器时,Docker会在Overlay2存储驱动的文件系统中创建一个新的层。每个层都包含了容器所需的文件和目录。当你修改或删除容器中的文件时,Docker会创建一个新的层来记录这些更改。这种层叠结构可以提供效的存储和快速的容器创建,但也可能导致磁盘空间占用过多。 为了解决这个问题,你可以考虑以下几个方法: 1. 清理无用的镜像和容器:使用`docker image prune`和`docker container prune`命令可以清理掉不再使用的镜像和容器,从而释放磁盘空间。 2. 压缩Overlay2存储:你可以使用`docker system prune --volumes`命令来清理掉未使用的卷,并使用`docker system df`命令查看Overlay2存储的使用情况。如果发现占用空间过大,可以尝试使用`docker image prune -a`命令来删除未使用的镜像。 3. 调整Docker存储驱动:如果你的磁盘空间问题无法通过清理解决,你可以考虑切换到其他的Docker存储驱动,如Device Mapper或Btrfs。这些存储驱动可能对磁盘空间的使用有不同的优化方式。 4. 调整Docker镜像策略:你可以尝试使用基于Alpine Linux等轻量级的基础镜像,避免使用过大的基础镜像。此外,可以考虑使用多阶段构建来减小镜像的大小。 希望以上方法能够帮助你解决Docker Overlay2占用大量磁盘空间的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值