上一篇把influxdb安上了也打开了dashboard,这次要往里尝试写入数据
首先统一环境
语言 java -> jdk1.8
项目管理 grandle
一、啥!啥!啥!这些玩意的都是啥!!!
influxdb跟传统数据库在概念上有些不同
influx | 传统数据库(mysql为例) | |
数据库 | database | databse |
表 | measurement | table |
一行数据 | point |
point是一行数据?! 这玩意是由时间戳time、标签tags、数据fields三部分组成的
point属性 | 含义 |
time | 数据记录的时间,是主索引(自动生成) |
tags | 各种有索引的属性 |
fields | 各种value值(没有索引的属性) |
就这?先不想了,先想办法搞个example试一试
二、弄个样例写数据
这时候我在UI界面中翻了翻,发现了一个简单使用的样例
打瞌睡来枕头,代码贴进去看一看
照抄倒IDEA里面运行一下,翻来覆去的改改内容,再回到dashboard上面看看结果
package example;
import java.time.Instant;
import com.influxdb.annotations.Column;
import com.influxdb.annotations.Measurement;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.client.WriteApi;
import com.influxdb.client.domain.WritePrecision;
import com.influxdb.client.write.Point;
public class InfluxDB2Example {
public static void main(final String[] args) {
String token = "4tvIPw5eNMAxJTGcWf6kFtw6bLepK4yUwnhbxRTYH1Ps5cKnEHWkvNyM6EVcnqdXwiBZKu2G6aO0PakRTlDN4A==";
String bucket = "AxeBuk";
String org = "AxeOrg";
InfluxDBClient client = InfluxDBClientFactory.create("http://localhost:8086", token.toCharArray());
String data = "mem,host=host1 used_percent=23.43234543";
try (WriteApi writeApi = client.getWriteApi()) {
writeApi.writeRecord(bucket, org, WritePrecision.NS, data);
}
Point point = Point
.measurement("mem")
.addTag("host", "host2")
.addField("used_percent", 32.43234543)
.time(Instant.now(), WritePrecision.NS);
try (WriteApi writeApi = client.getWriteApi()) {
writeApi.writePoint(bucket, org, point);
}
Mem mem = new Mem();
mem.host = "host3";
mem.used_percent = 24.43234543;
mem.time = Instant.now();
try (WriteApi writeApi = client.getWriteApi()) {
writeApi.writeMeasurement(bucket, org, WritePrecision.NS, mem);
}
}
@Measurement(name = "mem")
public static class Mem {
@Column(tag = true)
String host;
@Column
Double used_percent;
@Column(timestamp = true)
Instant time;
}
}
很OK啊,通过代码如何简单的写入至influxdb已经完成咯。
下章来简单读。