是否可以对 influxdb 中的默认保留策略执行删除查询?
Posted
技术标签:
【中文标题】是否可以对 influxdb 中的默认保留策略执行删除查询?【英文标题】:Is it possible to execute a delete query on the default retention policy in influxdb? 【发布时间】:2021-04-08 14:29:03 【问题描述】:名为“metrics”的 Influx 数据库具有两个保留策略,并在两个保留策略中指定一个作为默认值。
CREATE RETENTION POLICY basic ON "metrics" DURATION 2h REPLICATION 1 SHARD DURATION 6m DEFAULT
CREATE RETENTION POLICY downsample ON "metrics" DURATION 60d REPLICATION 1 SHARD DURATION 2h
还有一堆连续查询每 10 分钟运行一次,并对数据进行下采样以写入涌入 downsample 保留策略层。 基本保留策略层的可用条目每 2 小时清除一次,downsample保留策略在 60 天后清除。
连续查询示例如下所示
CREATE CONTINUOUS QUERY "cq_reads" ON "metrics" BEGIN SELECT sum(reads) as reads INTO downsample.stats_io FROM "metrics".basic.stats_io GROUP BY time(10m),* END
metrics 是数据库名称,stats_io 是此处的度量。
我的产品中允许流入的指定 GB 的内存限制。在某些时候,influx 开始无法扩展以保存 60 天的数据。
在达到我的内存限制后,我正在尝试清除 基本 保留策略中最旧的 10 分钟数据。 downsample 保留政策中仍需要提供相应的下采样最早的 10 分钟数据。
以下命令将删除 basic 和 downsample 保留策略中的最后 10 分钟数据。
delete stats_io where time>1609457374835790623 and time < 1609457374835790623 + 10m
我不想删除 downsample 保留政策中可用的下采样数据。所以尝试单独删除基本保留政策。
delete basic.stats_io where time>1609457374835790623 and time < 1609457374835790623 + 10m
很遗憾,此查询最终出错,并且不允许根据保留政策进行删除。
ERR: error parsing query: found basic, expected FROM, WHERE at line 1, char 8
但是,选择查询适用于特定的保留策略。但是删除的工作方式不同。示例:选择查询
select count(*) from basic.stats_io // Properly get the count for the measurement with specified retention policy
我想知道为什么删除不支持基于保留策略的删除。是否存在任何其他方法或查询来单独清除默认保留策略数据?
非常感谢任何建议。谢谢!
【问题讨论】:
【参考方案1】:我认为你需要使用语法delete FROM
delete FROM basic.stats_io where time>1609457374835790623 and time < 1609457374835790623 + 10m
更多信息请点击DELETE documentation
【讨论】:
以上是关于是否可以对 influxdb 中的默认保留策略执行删除查询?的主要内容,如果未能解决你的问题,请参考以下文章
InfluxDB 2.0 中的存储桶、度量和保留策略之间的逻辑联系是啥?
InfluxDB学习之InfluxDB数据保留策略(Retention Policies)