【问题标题】:how to remove a particular row of data from influxdb如何从 influxdb 中删除特定的数据行
【发布时间】:2016-01-22 06:42:03
【问题描述】:

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

试过这个“从 response_time 中删除时间 > 2016-01-22T06:32:44Z”

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

也试过这个:“从引导程序中删除时间> 2016-01-22T06:32:44Z”

【问题讨论】:

    标签: influxdb grafana


    【解决方案1】:

    当前版本的 InfluxDB 在删除方面有点痛苦。您可以删除整个测量、特定系列、整个数据库或系列中早于“x”的部分(保留策略)。任何比这更细粒度的东西仍然有点阿尔法。显然,它在 v 0.7 中更加灵活,但该功能已经消失。可能不是您希望的答案,抱歉。

    看这里:

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

    (随后是无耻的自我推销)

    here 提出了一组类似的问题。当心:似乎有些答案取决于您使用的 InfluxDB 版本。

    我的回答,似乎与版本无关(到目前为止):


    因为 InfluxDB 对删除有点痛苦,所以我们使用了一个模式,它有一个名为“ForUse”的布尔字段,当通过线路协议 (v0.9) 发布时看起来像这样:

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

    您可以使用您发送的任何字段键覆盖相同的测量值、标签键和时间,因此我们通过将“ForUse”设置为 false 并让保留策略控制数据库大小来执行“删除”。

    由于覆盖是无缝进行的,因此您也可以追溯添加架构。噪音。


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

    这有点笨拙,但我已经习惯了笨拙 - 我使用的每个时间序列数据库在部分删除时似乎都有些尴尬,所以这一定与它们的性质有关。

    【讨论】:

    • 如何为现有数据添加“ForUse”字段?
    • 如果有一个“alter table add column...”命令会非常好,但我们不使用 InfluxDB。相反,您会覆盖现有记录。因此,对于 SELECT * FROM ... 查询的每一行,您形成一个具有相同时间戳、标签键、标签值的写入命令(很可能使用 http api),并附加“ForUse”值。有点痛苦,但非常可行。
    • 哦!我也看到自 0.9 以来情况也发生了变化。现在添加点,您只需要复制标签键和时间戳。字段不需要复制。见这里:docs.influxdata.com/influxdb/v0.10/troubleshooting/…
    • thanx 看起来很有帮助,但我如何在 influxdb 中写新点?
    • This hasn't gotten any better in Influx 1.0。关于。 “我使用过的每个时间序列数据库在部分删除时都显得有些尴尬,所以这一定与它们的性质有关”——你试过 Axibase 吗?它支持空值,unlike InfluxDB
    猜你喜欢
    • 1970-01-01
    • 2015-10-15
    • 2011-10-30
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多