У меня есть данные временных рядов от нескольких устройств, которые измеряют разные вещи. Я хочу перебрать этот набор данных, упорядоченный по метке времени.
Я думал о создании экземпляра InfluxDB с несколькими измерениями (по одному на устройство), а затем запрашивал базу данных для определенного временного диапазона.
Что-то вроде: "SELECT * FROM * WHERE TIME BETWEEN X AND Y"
Я посмотрел на клиент Java InfluxDB, и он предоставляет способ перебора результата такого запроса:
QueryResult queryResult = influxDB.query(events);
for (QueryResult.Result result : queryResult.getResults()) {
for (QueryResult.Series series : result.getSeries()) {
List<List<Object>> values = series.getValues();
//do sth with values
}
}
Однако, еслиЯ правильно понимаю, что это разделит мои данные по сериям, что в моем случае будет эквивалентно разделению по измерениям.
Для моего случая использования я должен пройти все измерения в том же порядке, в котором они были записаны (без разделения).
Например, что-то вроде:
QueryResult queryResult = influxDB.query(events);
for (QueryResult.Result result : queryResult.getResults()) {
String name = result.getMeasurementName();
if (name.equals("A")) {
results.get("field1");
} else {
results.get("field2");
}
}
Могу ли я добиться чего-то подобного в InfluxDB?
В качестве альтернативы, какую базу данных вы бы порекомендовали?
Возможно, я мог бы использовать некую приоритетную очередь после извлечения данных, чтобы сохранить порядок, но похоже на неправильное использование инструмента.