ClickHouse原生支持数据生命周期 (TTL)管理的功能,可以对表或者表的某个字段添加TTL配置。
语法如下:
1)针对表
如果表之前没设置TTL则直接新增。语法如下:
ALTER TABLE dmp_log.ods_rule_engine_log MODIFY TTL insert_time + INTERVAL 180 DAY;
对应的删除操作:
ALTER TABLE dmp_log.ods_rule_engine_log REMOVE TTL;
对于ReplicatedMergeTree引擎表,只需要在一个节点执行即可,clickhouse会自动同步到别的节点。
当然可以根据数据的热度不同,将数据移动到别的存储上。语法如下:
TTL d + INTERVAL 1 MONTH [DELETE],
d + INTERVAL 1 WEEK TO VOLUME 'aaa',
d + INTERVAL 2 WEEK TO DISK 'bbb';
2)针对字段
ALTER TABLE example_table
MODIFY COLUMN
c String TTL d + INTERVAL 1 MONTH;
TTL固然很方便,但是在数据量大的时候,性能消耗是非常大的。建议还是定期通过删除分区或者备份分区的方式来实现数据的生命周期管理。
语法如下:
alter table dmp_log.ods_rule_engine_log drop partition 202007 ;
网友评论