更新时间:2025-06-11 GMT+08:00

配置ClickHouse系统表的生命周期

操作场景

ClickHouse 默认未配置系统表的 TTL(Time To Live)机制,若长期使用且未手动设置过期策略,系统表中的历史数据将持续累积,可能导致磁盘空间被大量占用,甚至影响集群性能与存储可用性。

本章节指导用户配置系统表的生命周期,仅保留近30天的数据,减少系统表的磁盘使用。

约束与限制

本章节仅适用于MRS 3.2.0-LTS之前版本。

操作步骤

  1. 登录FusionInsight Manager系统。

    详细操作请参考访问集群Manager

  2. 创建具有系统表修改权限的ClickHouse用户,具体请参考创建具有ClickHouse权限的用户
  3. 使用2创建的用户登录客户端节点,连接到ClickHouse服务端,具体请参考ClickHouse客户端使用实践
  4. 清理存量系统表数据,执行如下命令:

    truncate table system.query_log on cluster default_cluster;
    truncate table system.query_thread_log on cluster default_cluster;
    truncate table system.trace_log on cluster default_cluster;

    其中:default_cluster为集群名称。

  5. 系统表配置TTL,保留近30天的数据,执行如下命令:

    alter table system.query_log on cluster default_cluster modify TTL event_time + INTERVAL 30 day;
    alter table system.query_thread_log on cluster default_cluster modify TTL event_time + INTERVAL 30 day;
    alter table system.trace_log on cluster default_cluster modify TTL event_time + INTERVAL 30 day;

相关文档

更多TTL相关内容请参考https://clickhouse.com/docs/guides/developer/ttl#ttl-syntax