写入操作
更新时间:2020-11-18
写入单域数据点
基本流程
- 创建TsdbDataClient。
- 执行writeDatapoints()方法,您需要提供写入的数据的具体信息。
用户可以参考如下代码写入单域数据点:
注意:当写入的metric、field、tags、timestamp都相同时,后写入的value会覆盖先写入的value。
// 构建想要写入的datapoints
var datapoints = [
{
"metric": "cpu_idle",
"field": "test",
"tags": {
"host": "server1",
"rack": "rack1"
},
"type": "Long",
"timestamp": Math.round(new Date().getTime() / 1000), // 用于生成时间戳
"value": 51
}
];
// 获取并返回结果
client.writeDatapoints(datapoints)
.then(response => console.log(response)) // 获取成功
.catch(error => console.error(error)); // 获取失败,并返回错误类型
这时,可在对应数据库,点击查询面板,在选项Metrics下出现一个新的metric。
对于同一个field,如果写入了某个数据类型的value之后,相同的field不允许写入其他数据类型。
写入多域数据点
基本流程同写入单域数据点。
不同的域并不需要同时写入,可以认为不同的域都是独立的。但如果查询时要用一条语句查出来,需要保证metric、所有的tag、时间戳都是一致的。
可以参考以下代码写入多域数据点:
// 构建想要写入的datapoints
var datapoints = [
{
"metric": "cpu_idle3",
"field" : "field2",
"tags": {
"host": "server1",
"rack": "rack1"
},
"type": "Long",
"timestamp": Math.round(new Date().getTime() / 1000),
"value": 51
},
{
"metric": "cpu_idle3",
"field": "field1",
"tags": {
"host": "server1",
"rack": "rack1"
},
"type": "Long",
"values": [
[Math.round(new Date().getTime() / 1000), 60] // 用于生成时间戳
]
}
];
// 获取并返回结果
client.writeDatapoints(datapoints)
.then(response => console.log(response)) // 写入成功
.catch(error => console.error(error)); // 写入失败,并返回错误类型