正在使用cron作业每天关闭一次此脚本。当脚本运行时,它似乎按预期工作。代码构建一个映射,迭代该映射,创建添加到批处理的点,最后将这些批处理的点写入InfluxDB。我可以连接到InfluxDB,我可以查询我的数据库,看看这些点已被添加。我使用 influxdb-java 2.2 。
我遇到的问题是,当重新启动InfluxDB时,我的所有数据都将被删除。数据库仍然存在且系列仍然存在,但是,所有的点/行都消失了(每个表都是空的)。我的数据库不是唯一的数据库,还有其他几个,这些数据库是正确恢复的。我的猜测是该交易尚未最终确定。我不知道如何让它做同花顺并确保我的积分持续存在。我试着补充说:
influxDB.write(batchPoints);
influxDB.disableBatch(); // calls this.batchProcessor.flush() in InfluxDBImpl.java
这是强制冲洗的尝试,但这并没有按预期工作。我正在使用 InfluxDB 0.13.X
InfluxDB influxDB = InfluxDBFactory.connect(host, user, pass);
String dbName = "dataName";
influxDB.createDatabase(dbName);
BatchPoints batchPoints = BatchPoints
.database(dbName)
.tag("async", "true")
.retentionPolicy("default")
.consistency(ConsistencyLevel.ALL)
.build();
for (Tags type: Tags.values()) {
List<LinkedHashMap<String, Object>> myList = this.trendsMap.get(type.getDisplay());
if (myList != null) {
for (LinkedHashMap<String, Object> data : myList) {
Point point = null;
long time = (long) data.get("time");
if (data.get("date").equals(this.sdf.format(new Date()))) {
time = System.currentTimeMillis();
}
point = Point.measurement(type.getDisplay())
.time(time, TimeUnit.MILLISECONDS)
.field("count", data.get("count"))
.field("date", data.get("date"))
.field("day_of_week", data.get("day_of_week"))
.field("day_of_month", data.get("day_of_month"))
.build();
batchPoints.point(point);
}
}
}
influxDB.write(batchPoints);
答案 0 :(得分:0)
你可以将InfluxDB升级到0.11.0吗?从那以后发生了许多重要的变化,最好对此进行测试。