首页 / 资讯中心 / 文章详情

ClickHouse-删系统表数据,给系统表设置TTL

ClickHouse-删系统表数据,给系统表设置TTL ★ FEATURED ARTICLE
一、查看系统日志大小SELECTtable,formatReadableSize(sum(bytes)) AS sizeFROM system.partsWHERE database systemGROUP BY tableORDER BY sum(bytes) DESClimit 20;二、判断是否删query_log查询日志作用记录每一条查询级别的信息包括执行用户、客户端地址、查询语句、查询类型初始化查询/子查询、耗时、读取的行数/字节数、内存占用、异常信息、执行计划等。用途排查慢查询、统计某用户/某段时间的查询量、定位报错查询、做查询审计。query_thread_log查询线程日志作用记录查询在每个执行线程上的明细信息粒度比 query_log 更细。包括线程名、线程对应的 query_id、该线程读取的行数、内存使用、CPU 时间、函数调用耗时等。用途分析单个查询的线程级瓶颈定位是哪个线程/哪个阶段耗时是做深度性能剖析的关键表。trace_log追踪/调用栈日志作用记录周期性采样到的调用堆栈即服务端进程在采样时刻正在执行的代码路径虚拟内存地址堆栈。用途配合 clickhouse client 的堆栈符号化工具如 clickhouse 内置的 stacktrace 解析分析 CPU 热点、锁等待、代码瓶颈。它记录的是采样快照不是完整调用记录。三、删除操作有两种方式手动删或者TTL自动删以query_log为例子1.手动清理过期数据选择分区删除1查看分区SELECTpartition,name AS part_name,rows,formatReadableSize(bytes_on_disk) AS size,active,modification_timeFROM system.partsWHERE database systemAND table query_logORDER BY partition;2找到想要删除的分区ALTER table system.表名 DROPPARTITION 分区名;ALTER table system.query_log DROPPARTITION 202507;这里不能用delect,删分区是直接将逻辑文件删除掉而delect是精准删除数据项会消耗线程去找数据造成mutation指标高如果卡住这个表的相关mutation操作都会阻塞。2.修改配置添加TTL定期后台自动删除这需要确定日志保留多久这里删除表后会自动重建系统表但是一般不删除query_log表保留30天内的数据做查询排查step1 调整系统表ttl注意trace_log 和 query_thread_log 直接删除就行会自动重建这两个系统表一般不查问题用不到ALTER TABLE system.表名 ON CLUSTER default_cluster MODIFY TTL event_date INTERVAL 30 DAY DELETE;ALTER TABLE system.query_log ON CLUSTER default_cluster MODIFY TTL event_date INTERVAL 3 DAY ;drop table system.query_thread_log ON CLUSTER default_cluster;ALTER TABLE system.query_thread_log ON CLUSTER default_cluster MODIFY TTL event_date INTERVAL 3 DAY ;drop table system.trace_log ON CLUSTER default_cluster;ALTER TABLE system.trace_log ON CLUSTER default_cluster MODIFY TTL event_date INTERVAL 3 DAY ;step2 调整系统表配置config.xml直接在yandex/yandex内添加或者调整调整完需要重启query_logdatabasesystem/databasetablequery_log/tablepartition_bytoYYYYMM(event_date)/partition_byflush_interval_milliseconds7500/flush_interval_millisecondsttlevent_date INTERVAL 30 DAY DELETE/ttl/query_logquery_thread_logdatabasesystem/databasetablequery_thread_log/tablepartition_bytoYYYYMM(event_date)/partition_byttlevent_date INTERVAL 3 DAY/ttlflush_interval_milliseconds7500/flush_interval_milliseconds/query_thread_logtrace_logdatabasesystem/databasetabletrace_log/tablepartition_bytoYYYYMM(event_date)/partition_byttlevent_date INTERVAL 3 DAY/ttlflush_interval_milliseconds7500/flush_interval_milliseconds/trace_log关于ttl的官网介绍https://clickhouse.com/docs/zh/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl
阅读完成 · 觉得有帮助?
咨询建站