开发者社区> 问答> 正文

定期删除otter采集的指标数据

otter采集的指标数据存在otter的mysql数据库里,delay_stat、log_record、table_history_stat、throughput_stat这些表都存储了历史数据,这些指标数据有定期删除功能吗?保留所有的历史数据意义不大

原提问者GitHub用户linquan92

展开
收起
古拉古拉 2023-06-14 21:53:42 104 0
4 条回答
写回答
取消 提交回答
  • 云端行者觅知音, 技术前沿我独行。 前言探索无边界, 阿里风光引我情。

    根据我所查到的信息,Otter的MySQL数据库中的指标数据是可以进行定期删除的。具体来说,Otter提供了一个名为"otter-c-cleaner"的工具,可以用来清理历史数据。该工具可以根据用户的配置,定期删除定时间范围内的数据以保证数据库的性能和稳定性。因此,保留所有历史数据可能并不是必要的,可以根据实际需求进行定期清理。

    2023-06-16 15:08:20
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    在otter中,当前版本并没有提供自动定期删除指标数据的功能。因此,你需要手动管理数据库并定期地删除各个表中存储的历史数据。

    为什么需要删除历史数据呢?因为随着收集数据的不断增加,数据库中的数据量也会快速增长,如果不及时清理,这些历史数据将会占据越来越多的存储空间,增加系统的负担,降低查询效率,甚至导致系统崩溃等问题。

    那么如何手动删除呢?具体操作步骤如下:

    进入otter的mysql数据库,找到需要清理的表。可以通过以下两条命令找到: show tables; -- 查看所有表 desc table_name; -- 查看指定表的结构 确定需要删除的时间段,并编写相应的删除SQL语句。例如,需要删除一个月之前的数据: delete from delay_stat where timestampdiff(day,collect_time,now())>30; delete from log_record where timestampdiff(day,log_time,now())>30; delete from table_history_stat where timestampdiff(day,collect_time,now())>30; delete from throughput_stat where timestampdiff(day,collect_time,now())>30; 上述SQL语句中timestampdiff函数用于计算两个时间之间的差值,以天为单位,now()表示当前时间。

    执行SQL语句,删除历史数据: delete from 表名 where 条件; 需要注意的是,在删除历史数据之前,你需要备份数据以便在需要时进行还原。同时,也需要注意删除数据的范围和数据的完整性,避免误删关键数据。

    2023-06-15 17:39:46
    赞同 展开评论 打赏
  • Otter 本身没有提供定期删除指标数据的功能,但是你可以通过编写定时任务或脚本来实现这个功能。

    建议定期删除历史数据,以避免数据库存储空间的浪费。你可以根据业务需求和数据库负载情况来决定保留多长时间的数据,一般来说保留一段时间内的数据就可以满足大部分需求。

    在删除数据时,需要注意数据的关联性,避免误删关键数据。

    2023-06-15 10:09:09
    赞同 1 展开评论 打赏
  • 我都是自己删除的。表结构并不复杂。你可以写个定时任务

    原回答者GitHub用户skytalemcc

    2023-06-14 22:30:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载