time-series - 具有相同时间戳但测量值不同的 InfluxDB 写入点
问题描述
要求:我想创建一个 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
}
}]
我使用了官方文档中给出的示例,仍然不是 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
推荐阅读
- c# - 将授权(例如:Facebook)声明、身份验证令牌与内部用户帐户集成
- asp.net-web-api - 重复 ID 生成
- ios - avplayer 根据速率暂停或停止通知
- r - 根据它们在行中是最小的还是最大的来组织列中的数字
- c++ - 从字符串构建二叉树
- python-3.x - 当我再次关闭并打开笔记本时,在 Jupyter 笔记本中没有得到图表?
- c++ - C++ 使用 GMP 库生成随机素数
- mobile - 如何使 SemanticUI 下拉菜单在没有悬停的情况下工作(在移动设备上)?
- arangodb - 为什么有这么多不同的方式来启动 ArangoDB
- javascript - Bootstrap 4 Navbar Taller On Tablet Screen 在拆分行为中