InfluxDB如何写入具有相同时间戳但不同测量值的数据点?

5
要求: 我想创建一个InfluxDB数据库,用于存储来自多个传感器的时间序列数据,这些传感器报告不同位置的温度。
问题: 当我使用相同的时间戳但不同的标签(例如:位置)和字段(温度)值向数据库写入点时,Influx会用最新的时间戳覆盖两个标签和字段值。
我按照他们网站上提供的文档进行操作,他们展示了一个满足上述要求的示例数据库,但我无法找到所使用的模式。 重复时间戳示例表 附加信息: 样本输入:
json_body_1 = [
{
    "measurement": "cpu_load_short",
    "tags": {
        "host": "server02",
        "region": "us-west"
    },
    "time": "2009-11-10T23:00:00Z",
    "fields": {
        "Float_value": 0.7,
        "Int_value": 6,
        "String_value": "Text",
        "Bool_value": False
    }
},
{
    "measurement": "cpu_load_short",
    "tags": {
        "host": "server01",
        "region": "us-west"
    },
    "time": "2009-11-10T23:00:00Z",
    "fields": {
        "Float_value": 1.0,
        "Int_value": 2,
        "String_value": "Text",
        "Bool_value": False
    }
}]

我使用官方文档中提供的示例,但只得到了一个记录,而不是两个。请注意,主机标签是不同的,这应该使每个点都是唯一的。

文档

1个回答

2

今天我也面临了同样的问题,现在我找到了解决方法。:)

from influxdb import InfluxDBClient

client = InfluxDBClient(host='host name', port=8086, database='test_db',username='writer', password=Config.INFLUXDB_WRITE_PWD)

points = [{
    "measurement": "cpu_load_short",
    "tags": {
        "host": "server02",
        "region": "us-west"
    },
    "time": "2009-11-10T23:00:00Z",
    "fields": {
        "Float_value": 0.7,
        "Int_value": 6,
        "String_value": "Text",
        "Bool_value": False
    }
},
{
    "measurement": "cpu_load_short",
    "tags": {
        "host": "server01",
        "region": "us-west"
    },
    "time": "2009-11-10T23:00:00Z",
    "fields": {
        "Float_value": 1.0,
        "Int_value": 2,
        "String_value": "Text",
        "Bool_value": False
    }
}]

status = client.write_points(json_body_1, database='test_db', batch_size=10000, protocol='json')

这里是输出内容

> select * from cpu_load_short;
name: cpu_load_short
time                Bool_value Float_value Int_value String_value host     region
----                ---------- ----------- --------- ------------ ----     ------
1257894000000000000 false      1           2         Text         server01 us-west
1257894000000000000 false      0.7         6         Text         server02 us-west


你能解释一下你做了什么不同的吗? - Vinodini Natrajan
拥有不同的标签会创建一个新条目吗?看起来这个帖子唯一的区别就是标签。 - Jens Elstner
1
拥有不同的标签可以让您插入相同时间戳的相同值。如果值和时间戳相同,InfluxDb将更新旧值,因此使用不同的标签就可以解决这个问题。 - Cătălin Florescu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接