TimescaleDB 的 drop_chunks 语句不会丢弃准确的定时块

TimescaleDB's drop_chunks Statement doesn't drop accurate timed chunks

我正在使用 TimescaleDB 并想删除旧数据。

出于测试目的,我用一些不同的数据填充了一个空的 Hyptertable。

我 运行 以下语句包含 2 小时前的数据、10 小时前的数据和 15 小时前的数据:

select drop_chunks(interval '1 hours', 'my_table')

仅删除 15 小时前的数据。通过阅读 https://docs.timescale.com/v1.1/api#drop_chunks 我认为应该删除所有数据。

drop_chunks 只掉落完整的区块。如果您的 chunk_time_interval 设置为 12 小时左右,timescaledb 将只删除完整的 12 小时块。

让我澄清一下 Diana 的评论:每个块都由边界框定义;对于时间,您可以将它们视为 start_timeend_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