数采系统上线半年多了,产生了大概2亿条记录,这些数据其实是有时效性的,用来生成的二次数据可以永久保存,这种时序数据没有多大价值,又非常占用空间,所以定期清理超表的trunk是必要的
--1、查看分区表以及trunk信息
SELECT * FROM timescaledb_information.hypertables
SELECT * FROM timescaledb_information.chunks
--2、查看超表总大小以及各个trunk的大小
SELECT concat(round(sum(total_bytes)/1024/1024/1024,1),'G')
FROM _timescaledb_internal.hypertable_chunk_local_size where hypertable_name='hxdcs_cnc_data'
SELECT * FROM _timescaledb_internal.hypertable_chunk_local_size where hypertable_name='hxdcs_cnc_data'
--3、删除2024-1-1以后的trunk ,删除是安全的,如果trunk中包含1-1号以后的数据就不会被删除
SELECT drop_chunks('hxdcs_cnc_data', '2024-6-1');
清理之后,物理文件大小从22G变成了19G
root@haoxindcs:/var/lib/postgresql/14/main/base# du -Sh
83M ./41486
4.0K ./pgsql_tmp
60M ./58621
8.4M ./1
8.4M ./13761
22G ./16385
8.4M ./13760
4.0K
root@haoxindcs:/var/lib/postgresql/14/main/base# du -Sh
83M ./41486
4.0K ./pgsql_tmp
60M ./58621
8.4M ./1
8.4M ./13761
19G ./16385
8.4M ./13760
4.0K .