clickhouse ttl不生效
现象:
日志保留31天, 但是发现1年前的数据还有。
表结构:
CREATE TABLE
ads_xxxx_metrics_1m_local (
`static_time` String COMMENT '统计时间',
......
) ENGINE = ReplacingMergeTree (process_time)
PARTITION BY
toYYYYMMDD (toDate (static_time))
ORDER BY
(
static_time,
xxx
real_time_type
) TTL parseDateTimeBestEffort (static_time) + toIntervalDay (31)
定位:
是因为删除数据速度 赶不上插入数据速度,造成历史数据无法被清理。
优化:
TTL 删除数据按照 分区时间删除。
`TTL parseDateTimeBestEffort (static_time) + toIntervalDay (31) 这个改成 toDate (static_time) + toIntervalDay (31)`
加速删除数据的速度。
历史使用通过删除分区的方式删除。
select
*
from
system.parts
where
table = 'xxxxx';
通过 partition 字段查找 需要删除的分区。
alter table table_namexxxx DROP PARTITION ‘20231125’;
注意:
- TTL 策略默认不会对存量数据生效
原文地址:https://blog.csdn.net/qq_35640866/article/details/137938919
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!