在InfluxDB中更改标记值

dco*_*ole 11 influxdb

我插入了使用主机名的数据.令人讨厌的是我要将域名从.lan更改为.mydomain.com

显然,我希望能够搜索机器的历史数据,因为它跨越了这一变化.

我可以将标签定义从machine.lan更新到machine.mydomain.com吗?

Dan*_*scu 8

虽然@迈克尔的回答是,你无法通过InfluxDB命令来更改标签值是正确的,但是,您可以编写客户端脚本,可以通过插入改变一个变量的值“重复”的测量点相同的时间戳,字段集和标签集,只是所需标签的值会更改。

标记错误的点(采用线路协议格式):

cpu,hostname=machine.lan cpu=50 1514970123
Run Code Online (Sandbox Code Playgroud)

跑步后

INSERT cpu,hostname=machine.mydomain.com cpu=50 1514970123
Run Code Online (Sandbox Code Playgroud)

SELECT * FROM CPU将包括

cpu,hostname=machine.lan cpu=50 1514970123
cpu,hostname=machine.mydomain.com cpu=50 1514970123
Run Code Online (Sandbox Code Playgroud)

脚本运行所有INSERT命令后,您需要删除带有旧标记值的过时点系列:

DROP SERIES FROM cpu WHERE hostname='machine.lan'
Run Code Online (Sandbox Code Playgroud)

当然,这是非常低效的(尤其注意这个bug),如果你需要更新一个标签值,你不想已经将其他点有另一个标签值,你不能随便DROP SERIES。因此,请投票支持InfluxDB实现标签重命名,尤其是根据WHERE查询更改标签值。或者考虑使用其他时序数据库,该数据库可以使用常规SQL(例如Timescale)


Mic*_*esa 4

不幸的是,没有办法更改 InfluxDB 中历史数据的标签名称。