ClickHouse | TTL策略

背景描述

  近期因CK中query_log表空间占用过大问题,导致磁盘使用率很高,通过查阅资料发现可以通过TTL策略进行清理。同时补充了一些相关的查询SQL,以及注意事项(供参考)。

TTL策略
alter table system.表名 modify TTL 日期字段 + INTERVAL 天数 DAY;

设置ttl策略的表必须有日期字段,DAY可调整为月、年。

注意事项
  • CK服务启停后,设置TTL策略的表会自动物理化,生成 “表名_序列”(query_log_0)的临时表

  • 设置TTL策略时,需要先确认表的占用情况,以及物理磁盘占用情况

    • 假设180天之前的表数据占用50G,清理时磁盘空间会增加约100G的占用空间,会慢慢自动释放,周期约1H

    • 建议在清理表占用空间时,如果数据无需可直接执行truncate

  • 执行truncate表释放空间时,如果表数据超过50G,无法执行。需要先清理表数据(drop表分区),小于50G时可执行truncate

  • CK命令行执行SQL脚本时不能有换行,同时以分号结尾

  • CK命令行脚本执行超时时间300秒

其他相关SQL
# 查看系统表占用大小
select table, formatReadableSize(sum(bytes)) as size from system.parts where  active group by table;
# 查看单表占用大小
select formatReadableSize(sum(bytes)) as size from system.parts where table = '表名' ;
# 查看表分区
select * from system.parts where table = '表名' ;
# 删除表分区
alter table system.表名 drop partition 分区维度;
# 清理表数据
truncate table system.表名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java小技巧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值