写入操作
更新时间:2019-06-18
写入单域数据点
用户可参考如下代码写入单域数据点:
注意:当写入的metric、field、tags、timestamp都相同时,后写入的value会覆盖先写入的value。
#构建要写入的数据点数据点对象数组
datapoints = [{
"metric": "wind",
"tags": {
"city": "ShangHai"
},
"field": "direction", #域名,缺少此field字段的话默认为value
"timestamp": 1531985379000,
"type": "Long",
"value": 1
}]
try:
print tsdb_client.write_datapoints(datapoints) #写入数据点
except BaseException as e:
print e #通过捕获异常获取详细的错误信息
对于同一个field,如果写入了某个数据类型的value之后,相同的field不允许写入其他数据类型。
返回结果:
{metadata:{keep_alive:'timeout=10',server:'BWS',connection:'keep-alive',pragma:'no-cache',date:'Wed, 01 Aug 2018 12:41:28 GMT',bce_request_id:'d46b3f74-76c4-4e1a-be47-39354b7b81a3',cache_control:'no-cache'}}
写入多域数据点
多域数据点是指同一个metric下可以有多个不同名字的field,不同field的数据类型可以不同。
不同的域并不需要同时写入,可以认为不同的域都是独立的。但如果查询时要用一条语句查出来,需要保证metric、所有的tag、时间戳都是一致的。
#构建要写入的数据点数据点对象数组
datapoints = [{
"metric": "wind",
"tags": {
"city": "ShangHai"
},
"field": "direction",
"timestamp": 1531985380000,
"type": "Long",
"value": 1
}, {
"metric": "wind",
"tags": {
"city": "ShangHai"
},
"field": "speed",
"timestamp": 1531985380000,
"type": "Double",
"value": 4.5
}]
try:
tsdb_client.write_datapoints(datapoints) #写入数据点
print 'single filed datapoint write success'
except BaseException as e:
print e #通过捕获异常获取详细的错误信息