【问题标题】:InfluxDB write points with same timestamp but different measurement具有相同时间戳但测量值不同的 InfluxDB 写入点
【发布时间】:2019-07-15 17:56:25
【问题描述】:

要求: 我想创建一个 influxDB 数据库来存储来自多个传感器的时间序列数据,这些传感器报告来自不同位置的温度。

问题: 当我用相同的时间戳向数据库写入点但不同的标签(例如:位置)和字段(温度)值时,influx 会用最新的时间戳覆盖标签和字段值

我遵循了他们网站上提供的文档,他们展示了一个具有上述要求的示例数据库,但找不到使用的架构。

Example Table with duplicate timestamps

附加信息: 示例输入:

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
    }
}]

我使用了官方文档中给出的示例,仍然不是 2 条记录,我只得到了一条。请注意主机标签不同,理想情况下应该使每个点都是唯一的。

Documentation

【问题讨论】:

    标签: time-series influxdb influxdb-python


    【解决方案1】:

    今天我也遇到了同样的问题,现在我来解决。 :)

    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
    
    

    【讨论】:

    • 你能解释一下你在做什么不同吗?
    • 是不是有不同的标签会创建一个新条目?看起来是帖子中唯一的区别
    • 拥有不同的标签可以让您插入具有相同时间戳的相同值。具有相同的值和时间戳,InfluxDb 将更新旧的,所以不同的标签会做的伎俩。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2018-07-09
    • 2022-06-23
    • 1970-01-01
    • 2012-02-04
    相关资源
    最近更新 更多