表的TTL怎么不生效呢?

发布于 5 个月前 作者 sandheart 707 次浏览 来自 问答

version 20.3.5, event_date中还存在2021-11-16的数据:

CREATE TABLE web_event( server_time DateTime64(3, ‘Asia/Shanghai’), app_id String, messageid String, event_id String, activity String, event_date Date DEFAULT CAST(server_time, ‘Date’), ck_dt DateTime64(3, ‘Asia/Shanghai’) DEFAULT now64(3) ) ENGINE = ReplacingMergeTree() PARTITION BY formatDateTime(server_time, ‘%Y%m%d%H’) ORDER BY(server_time, messageid) TTL event_date + toIntervalDay(31) SETTINGS index_granularity = 8192

4 回复
CREATE TABLE example_table
(
    d DateTime,
    a Int
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(d)
ORDER BY d
TTL d + INTERVAL 1 MONTH [DELETE],
    d + INTERVAL 1 WEEK TO VOLUME 'aaa',
    d + INTERVAL 2 WEEK TO DISK 'bbb';

看上去没问题

是呀,对了好多遍配置,看不出问题,但数据就是不自动清理,愁死人

optimize table webevent final;

执行下这个,再查询看看

是不是后来追加的TTL? 追加的好像只对Modify *作之后的数据生效

回到顶部