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

如何使用SQL为ClickHouse的system.query_log设置TTL?

为ClickHouse的system.query_log通过SQL设置TTL的方法

1. 确认表引擎类型

system.query_log默认基于MergeTree系列引擎(通常是MergeTree或ReplacingMergeTree),仅这类引擎支持TTL。可通过以下SQL确认:

SELECT engine FROM system.tables WHERE database = 'system' AND name = 'query_log';

2. 执行SQL设置TTL

使用ALTER TABLE语句直接修改表的TTL规则,示例如下:

  • 保留最近30天的数据,基于event_time字段(query_log中记录查询事件时间的字段):
ALTER TABLE system.query_log MODIFY TTL event_time + INTERVAL 30 DAY;
  • 若希望按分区自动删除过期数据(更高效),可添加DELETE PARTITION子句:
ALTER TABLE system.query_log MODIFY TTL event_time + INTERVAL 30 DAY DELETE PARTITION;

注意事项

  • 操作前确保当前用户拥有ALTER权限,修改系统表需较高权限
  • 选择的时间字段必须是表中存在的时间类型字段,除event_time外,也可使用start_time
  • 若之前已通过配置文件或SQL设置过TTL,执行此语句会覆盖原有规则
  • SQL设置的表级TTL优先级高于配置文件中的全局TTL参数

内容的提问来源于stack exchange,提问作者Red Bottle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:32:35