更新与 InfluxDB 中的条件匹配的多个字段值

问题描述 投票:0回答:2

在InfluxDB测量中,如何更新与查询匹配的点的字段值?从 v1.6 开始,这仍然不容易实现吗?

正如 GitHub 票证中的示例所建议的,实现此类目标的最简洁方法是什么?

UPDATE access_log SET username='something' WHERE mac='xxx'

还有什么比通过

更新各个点从客户端驱动这一切更好的吗?

sql-update influxdb
2个回答
8
投票

问: 如何更新匹配查询的点的字段值?从 v1.4 开始这仍然不容易实现吗?

A: 据我所知,目前还没有一种简单的方法可以在 update

 版本中完成 
1.4
点的

Field value

 只能通过覆盖来更新。也就是说,要覆盖其值,您需要了解积分的详细信息。这些详细信息包括其 
timestamp
series
 信息,即其所在的测量值及其对应的 
tags

注意: 此“更新”策略只能用于更改 field

 值,而不能用于更改 
tag
 值。要更新 
tag
 值,您需要首先 
DELETE
 点数据,然后使用更新的标签和值重写整个点数据。

问: 还有什么比通过更新各个点从客户端驱动这一切更好的吗?

A: Influxdb 支持多点写入。因此,如果您可以构建一个过滤器来预先选择一个小的点数据集,修改它们的 field

 值,然后批量覆盖它们。


1
投票
可以更新,并采用以下格式:

INSERT measurement,tag_name=tag_value_no_quotes value_key_1=value_value_1,value_key_2=value_value_2 time


例如,我想在盒子测量的时间 1526988768877018669 更新带有标签 my_box 的行:

INSERT box,box_name=my_box item_1='apple',item_2='melon' 1526988768877018669


    

© www.soinside.com 2019 - 2024. All rights reserved.