如何从influxdb中删除特定的一行数据

问题描述:

我在influxdb中有一些不必要的数据,像一些像“0”这样的值,那么我该如何删除这些特定的数据。我的数据库名称是“引导”与我的测量名称是“response_time”如何从influxdb中删除特定的一行数据

尝试这种“从response_time删除,时间> 2016-01-22T06:32:44Z”

,但它说:“服务器返回错误:错误解析查询:找到-01,预期SELECT,DELETE,SHOW,CREATE,DROP,GRANT,REVOKE,ALTER,设置在第1行,字符44“

试过这也:”从bootstrap删除时间> 01-22T06:32:44Z“

InfluxDB的当前版本在删除时有点痛苦。您可以删除整个度量值,特定系列或整个数据库,或者删除一个大于'x'(保留策略)的系列部分。比这更细的任何东西仍然是一个阿尔法。显然,它在v 0.7中更加灵活,但该功能已消失。可能不是你所希望的答案,对不起。

在这里看到:

https://docs.influxdata.com/influxdb/v0.9/query_language/database_management/

(无耻的自我推销如下)

一组类似的问题被问here。注意:看起来有些答案取决于您使用的InfluxDB版本。

我的答案,这似乎是版本无关(到目前为止):


因为InfluxDB是有点痛苦关于删除,我们使用了一个布尔字段名为“ForUse”的模式,其

your_measurement,your_tag=foo ForUse=TRUE,value=123.5 1262304000000000000 

可以覆盖相同的测量,标记键,时间与任何领域键发送,因此我们通过设置执行“删除”“:通过线路协议(V0.9)发布时,看起来是这样的ForUse“为false,并让保留策略保持数据库大小的控制权。

由于覆盖无缝发生,因此您也可以追溯添加架构。在降噪。


这样做,您可以设置您的Grafana查询以包含“WHERE ForUse = TRUE”。通过这种方式进行过滤,并更新“ForUse”字段,您可以复制“删除”或“取消删除”点的功能。

这是一个有点缺憾,但我已经习惯了缺憾 - 每次系列数据库中,我曾经使用过,似乎有点尴尬与部分删除,所以它必须有一些关于他们的本质。

+0

如何为现有数据添加“ForUse”字段? –

+0

有一个“alter table add column ...”命令将会非常好,但我们不需要InfluxDB。相反,您会覆盖现有记录。因此,对于SELECT * FROM ...查询的每一行,您将形成同一时间戳,标签键,标签值的写入命令(很可能使用http api),并追加“ForUse”值。有点痛苦,但非常可以。 – Jason

+0

哦!我发现自0.9以来事情已经发生了变化。现在添加点,你只需要复制标签键和时间戳。字段不需要被复制。请参阅https://docs.influxdata.com/influxdb/v0。10/troubleshooting/frequently_encountered_issues /#writing-duplicate-points – Jason