写入操作

写入单域数据点

用户可参考如下代码写入单域数据点:

注意:当写入的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  #通过捕获异常获取详细的错误信息