ClickHouse MaterializedView TTL

当我们在使用物化视图的时候,不可避免的也会遇到需要删除历史数据的需求。由于TTL的特性只支持MergeTree家族不支持物化视图,难道我们就没有其他办法了嘛?
当我们原先创建的物化视图的时候,会默认的是创建一张以".inner"打头的表,可以理解这就是物化视图实际存储数据的表。与之对应,有一张没带".inner"打头的,可以理解为就是真正的view表。
所以我们可以使用物化视图的一个特性"TO"

CREATE MATERIALIZED VIEW db.table_MV TO db.table_new 
AS SELECT * FROM db.table_old; 

即,对table_old表建立物化视图,实际的数据写入写入到table_new表。物化视图自身不存储数据。这样子,我们只需要建立一张带TTL的MergeTree的table_new表,就可以使用上TTL功能了。

你可能感兴趣的:(ClickHouse MaterializedView TTL)