| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Clickhouse:日志表占用大量磁盘空间怎么办? -> 正文阅读 |
|
[大数据]Clickhouse:日志表占用大量磁盘空间怎么办? |
背景clickhouse有很多系统表(参见https://clickhouse.com/docs/en/operations/system-tables),其中一些用来存储日志,比如query_log、query_thread_log、trace_log。默认情况下,ClickHouse不清理日志,因此随着时间推移,这些表会占用大量磁盘空间,有导致系统宕机的风险。 查看日志表的大小可以通过system.parts查看各个表的大小。 SELECT sum(rows) AS `总行数`, formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`, formatReadableSize(sum(data_compressed_bytes)) AS `压缩大小`, round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `压缩率`, `table` AS `表名` FROM system.parts where database = 'system' group by `table` 结果如下: 清理日志数据有2种删除方法 方法1:使用clickhouse的mutation语句 alter table system.query_log delete where event_date < '2022-01-01' 这种方法效率较低 方法2:直接删除分区 alter table system.query_log drop partition '202201'; 默认情况下,日志是按月存储的。分区信息也可以在system.parts里查询到 SELECT * FROM system.parts where database = 'system' and `table`= 'query_log' 需要注意,当分区太大时,会删除失败。错误信息如下: Size (154.47 GB) is greater than max_[table/partition]_size_to_drop (50.00 GB) 解决办法是在clickhouse数据目录下创建一个标记文件,然后再次执行分区删除语句。文件名如下: <clickhouse-path>/flags/force_drop_table 细节可参考官网文档Server Settings | ClickHouse Docs 彻底解决依靠人定期去检查和清理不是解决之道。可以设置日志表的TTL来自动清理数据。例如保存15天的日志可以使用以下SQL:
更好的办法是在系统配置文件配置: <query_log> <database>system</database> <table>query_log</table> <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> <flush_interval_milliseconds>7500</flush_interval_milliseconds> </query_log> 详情可参考官网文档:Server Settings | ClickHouse Docs ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:57:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |