【发布时间】:2017-10-23 08:57:42
【问题描述】:
我正在尝试使用他们的 Java 客户端向 influxDB 写入点。 批次对我很重要。
如果我将 influxDB.enableBatch 与 influxDB.write(Point) 一起使用,则不会插入任何数据。 如果我使用 BatchPoints 和 influxDB.write(batchPoints) - 数据插入成功。
两个代码示例均来自:https://github.com/influxdata/influxdb-java/tree/influxdb-java-2.7
InfluxDB influxDB = InfluxDBFactory.connect(influxUrl, influxUser, influxPassword);
influxDB.setDatabase(dbName);
influxDB.setRetentionPolicy("autogen");
// Flush every 2000 Points, at least every 100ms
influxDB.enableBatch(2000, 100, TimeUnit.MILLISECONDS);
influxDB.write(Point.measurement("cpu")
.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
.addField("idle", 90L)
.addField("user", 9L)
.addField("system", 1L)
.build());
Query query = new Query("SELECT idle FROM cpu", dbName);
QueryResult result = influxDB.query(query);
什么都不返回。
BatchPoints batchPoints = BatchPoints.database(dbName).tag("async", "true").build();
Point point1 = Point
.measurement("cpu")
.tag("atag", "test")
.addField("idle", 90L)
.addField("usertime", 9L)
.addField("system", 1L)
.build();
batchPoints.point(point1);
influxDB.write(batchPoints);
Query query = new Query("SELECT * FROM cpu ", dbName);
QueryResult result = influxDB.query(query);
这会成功返回数据。
如前所述,我需要第一种方式来运行。 我怎样才能做到这一点?
版本: 涌入数据库-1.3.6 influxdb-java:2.7
问候,伊多
【问题讨论】: