Raj*_*ges 5 time-series influxdb influxdb-python
要求:我想创建一个 influxDB 数据库来存储来自报告不同位置温度的多个传感器的时间序列数据。
问题:当我使用相同的时间戳但不同的标签(例如:位置)和字段(温度)值向数据库写入点时,流入会用最新的时间戳覆盖标签和字段值
我按照他们网站上提供的文档进行操作,他们显示了具有上述要求的示例数据库,但无法找到使用的模式。
附加信息:示例输入:
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
}
}]
Run Code Online (Sandbox Code Playgroud)
我使用了官方文档中给出的示例,仍然不是 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')
Run Code Online (Sandbox Code Playgroud)
这是输出
> 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9680 次 |
| 最近记录: |