【发布时间】:2021-01-18 10:18:09
【问题描述】:
我试图对列 ttl 进行实验。为此,我创建了一个具有低 ttl 列的表并更改 ttl 频率,我将 merge_with_ttl_timeout 添加为 5 秒。但表永远不会(~ 1 小时)得到更新。即使我从下面的配置文件中更改了全局 ttl 超时也没有帮助。
<merge_tree>
<merge_with_ttl_timeout>10</merge_with_ttl_timeout>
</merge_tree>
检查:
select * from system.merge_tree_settings where name like '%ttl%';
表 ddl:
CREATE TABLE example_table
(
d DateTime,
a Int TTL d + INTERVAL 5 SECOND,
b Int TTL d + INTERVAL 10 SECOND,
c String
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(d)
ORDER BY d
SETTINGS merge_with_ttl_timeout=5;
强制 ttl 更新的手动命令(单独工作):
-
选项:
ALTER TABLE example_table MODIFY COLUMN b String TTL d + INTERVAL 2 SECOND; -
选项:
ALTER TABLE example_table MATERIALIZE TTL;
另一方面,表 ttl 就像一个魅力(它会及时更新):
CREATE TABLE example_table2
(
d DateTime,
a Int,
b Int,
c String
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(d)
TTL d + INTERVAL 6 SECOND
ORDER BY d
SETTINGS merge_with_ttl_timeout=5;
总而言之,我想观察列 ttl 正在自动工作,我该如何实现?
Clickhouse 版本:20.12.5.14
【问题讨论】:
标签: clickhouse ttl