Я использую пакетную обработку для записи в InfluxDB, а ниже - мой код для этого.Неожиданный выпуск пакета InfluxDB write
String dbName = "test";
influxDB.query(new Query("CREATE DATABASE " + dbName, dbName));
Stopwatch watch = Stopwatch.createStarted();
influxDB.enableBatch(2000, 100, TimeUnit.MILLISECONDS);
for (int j = 0; j < 100000; j++) {
Point point = Point.measurement("cpu")
.addField("idle", (double) j)
.addField("system", 3.0 * j).build();
influxDB.write(dbName, "autogen", point);
}
influxDB.disableBatch();
System.out.println("Write for " + 100000 + " Points took:" + watch);
}
Здесь я пишу 100000 точек и который принимает очень разумное время, чтобы писать, однако лишь немногие записи записываются в БД вместо ожидаемых 100000 записей.
select count(idle) from cpu
дает мне только «89» Я ожидаю, что это будет «100000»
Хотя select * from cpu
дает мне следующее:
cpu
time idle system
2016-10-06T23:57:41.184Z 8 24
2016-10-06T23:57:41.185Z 196 588
2016-10-06T23:57:41.186Z 436 1308
2016-10-06T23:57:41.187Z 660 1980
2016-10-06T23:57:41.188Z 916 2748
2016-10-06T23:57:41.189Z 1278 3834
2016-10-06T23:57:41.19Z 1405 4215
2016-10-06T23:57:41.191Z 1409 4227
2016-10-06T23:57:41.192Z 1802 5406
2016-10-06T23:57:41.193Z 1999 5997
2016-10-06T23:57:41.456Z 3757 11271
2016-10-06T23:57:41.457Z 3999 11997
2016-10-06T23:57:41.858Z 4826 14478 and so on.....
Вот мой вопрос, почему значения холостого хода отсутствуют, для Например, после 8 это должно быть 9, 10, 11 и т. д., но эти значения не сохранялись и приходили непосредственно 196, а затем отсутствовали между ними, а затем 436. Любая идея о том, как сохранить всю ценность переменной цикла «j» в этой ситуации ?
для кода, который вы вставили выше, даже когда я пишу несколько образцов в пакетных данных не написано в БД полностью, я могу видеть только очень немногие пункты написаны, не знаю, как я могу писать все 5000 записей/очков за первую партию. – Ammad
Некоторые из пакетов имеют значения Point [name = cpu, time = 1475881348762, tags = {blubber = bla}, precision = MILLISECONDS, fields = {idle = 0.0}], Point [name = cpu, time = 1475881348762, tags = {blubber = bla}, precision = MILLISECONDS, fields = {idle = 1.0}], Точка [name = cpu, time = 1475881348762, tags = {blubber = bla}, precision = MILLISECONDS, fields = {idle = 2.0} ], Точка [name = cpu, time = 1475881348762, tags = {blubber = bla}, precision = MILLISECONDS, fields = {idle = 3.0}], Но я вижу, что каждая точка имеет одно и то же значение времени, заставляя его писать только один раз в БД. Интересно, как я могу использовать пакетную запись с "над написанием точек? – Ammad