0

我将来自多个源的 IoT 传感器数据流存储到 QuestDb 中的几个表中,由于数据量巨大,我只想保留过去 90 天。我可以在他们的文档中看到一些删除方法,但我不想truncate在表格上,因为我会丢失最新的记录。有什么方法可以代替备份和截断表来删除超过 90 天的数据?

4

1 回答 1

1

这里的策略应该是创建一个已分区的表,然后根据相对于现在的时间值删除分区。该表还必须具有指定的时间戳。此示例将执行以下操作:

CREATE TABLE my_table (timestamp TIMESTAMP, x STRING) timestamp(timestamp) PARTITION BY DAY;

在你的情况下,你想删除超过 90 天的分区,你可以这样做ALTER TABLE DROP PARTITION

ALTER TABLE my_table DROP PARTITION
WHERE timestamp < dateadd('d', -90, now())

知道您也可以按MONTH或分区可能很有用YEAR

请注意这是破坏性的,并且 QuestDB 无法恢复以这种方式删除的数据,请确保您有适当的备份方法,或者您确定不再需要这些数据。ALTER TABLE DROP PARTITION参考页面中有更多详细信息。

编辑: 现在在数据保留页面上有专门的文档

于 2021-01-25T14:32:25.617 回答