我正在使用TimescaleDB,并希望摆脱旧数据。
出于测试目的,我用一些不同的数据填充了一个空的Hyptertable。
我使用2小时前的数据,10小时前的数据和 15小时前的数据:
select drop_chunks(interval '1 hours', 'my_table')
仅删除15个小时的旧数据。通过阅读 https://docs.timescale.com/v1.1/api#drop_chunks 我认为应该删除所有数据。
答案 0 :(得分:2)
drop_chunks仅丢弃全部块。如果您将chunk_time_interval设置为12小时左右,则timescaledb将仅丢弃完整的12小时块。
答案 1 :(得分:1)
让我澄清一下戴安娜的评论:每个块都由边界框定义;时间上,您可以将它们视为start_time
和end_time
。如果您指定类似的内容:
select drop_chunks(interval '1 hours', 'my_table')
这表示丢弃end_time
超过1小时前的所有块。因此,根据您上面的示例,我的猜测是您的15小时数据位于一个块中,而您的2小时和10小时数据位于另一个具有end_time > now() - 1 hour
的块中。
要查看块的时间范围和其他信息:
SELECT * FROM chunk_relation_size_pretty('my_table');
(回顾一下,我可以看到文档在哪里不清楚;我已经更新了说明:https://github.com/timescale/docs.timescale.com-content/pull/86)