更新时间:2025-02-12 GMT+08:00

TTL变更

场景1:TTL周期由小变大方案:

方案1:新建一张TTL时间为最新时间的表结构相同但名不同的表,把原表的数据导入新表,交换表名字;

方案2:业务代码中异步下发CK的修改TTL语句,下发之后业务代码不需要等待执行结果

1)类似在shell中,nohup sh xx.sh & --xx.sh中为修改TTL语句:alter table default.test_auto modify ttl EventDate + toIntervalMonth(2);

2)TTL放在代码流程中的最后一步执行,类似DDL表结构变更语句在TTL修改之前执行;

场景2:TTL周期由大变小方案:

方案1:新建一张ttl时间为最新需要修改时间TTL属性的表,表结构相同但名不同的表,把原表的数据导入到新表,交换表名字;

方案2:配置加上延迟物化参数,修改表TTL为最新时间,具体步骤如下:

1)在SQL级配置参数并修改TTL:alter table default.test_auto modify ttl EventDate + toIntervalMonth(2) SETTINGS materialize_ttl_after_modify=0;

2)删除过期数据,直接删除过期数据分区:alter table default.test_auto drop partation xxx; --多个分区逐一删除