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

在这里插入图片描述

接下来等待三十秒发现是不会自动清除的。

完成

更多推荐