You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClickHouse 20.8使用独立<ttl>标签配置system.query_log TTL不生效

问题原因与解决方法

核心原因

  1. 版本兼容性问题:你使用的ClickHouse 20.8.2.3版本暂不支持system.query_log配置的独立<ttl>标签,该特性是在21.3及之后的LTS版本才正式纳入的,20.8版本仅支持通过完整<engine>标签定义整段引擎规则时附带TTL配置。
  2. 配置项缺失问题:即使后续升级到支持独立<ttl>标签的版本,你给出的第二份配置也缺少必填的<order_by>配置项,拆分配置引擎规则时,<order_by>是必须显式配置的参数,否则表创建会出现异常导致TTL不生效。

可行解决步骤

方案一:升级ClickHouse版本(推荐)

  1. 将ClickHouse升级到21.3或更高的LTS版本
  2. 调整config.xml里的query_log配置,补全必填的<order_by>项,配置示例如下:
<query_log>
    <database>system</database>
    <table>query_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <order_by>(event_date, event_time)</order_by>
    <ttl>event_date + INTERVAL 1 MINUTE DELETE</ttl>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>
  1. 重启ClickHouse服务,执行DROP TABLE system.query_log删除旧表,再执行SYSTEM FLUSH LOGS触发新表自动重建,执行SHOW CREATE TABLE system.query_log即可验证TTL规则是否已经生效。

方案二:20.8版本下的临时替代方案

如果暂时无法升级版本,只能通过自定义<engine>标签的方式配置TTL,你已经验证过该方式可以正常生效,暂时可以先使用该配置方式,等后续升级版本后再切换为独立<ttl>标签配置。

内容的提问来源于stack exchange,提问作者Ann Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:24:03