1、问题解决
早上发现clickhouse表中的数据无了,一番筛查下来,发现是TTL(生命周期)的锅。
可能是安装clickhouse的时候不小心的配置的,但是搜索一番全是修改TTL时间的,即何时自动删除表中数据,但是想要是不要自动删除数据。
在官方文档中找到了线索:
即在想要的表下面运行这个就可了
# 停用TTL
SYSTEM STOP TTL MERGES
# 开启TTL
SYSTEM START TTL MERGES
2、测试
根据clickhouse中数据的TTL中的测试代码:
创建一个含有TTL为30秒的数据表,即表中的数据30秒自动删除!
CREATE TABLE stu
(
id Int32 ,
name String ,
create_time DateTime
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(create_time)
ORDER BY id TTL create_time + INTERVAL 30 second
插入数据:
insert into stu values
(100,'tom',now()),
(101,'jack',now()),
(102,'mary',now()),
(103,'lili','2021-08-18 07:12:34');
通过datagrip软件观察到创建的表,以及插入的数据
等待30秒会发现数据会被删除,说明此时的TTL是开启的状态,如果想要停用,那么:
# 停用TTL
SYSTEM STOP TTL MERGES
接下来等待三十秒发现是不会自动清除的。
完成