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