InfluxDB перебирает QueryResult во временном порядке для различных измерений - PullRequest
0 голосов
/ 30 октября 2019

У меня есть данные временных рядов от нескольких устройств, которые измеряют разные вещи. Я хочу перебрать этот набор данных, упорядоченный по метке времени.

Я думал о создании экземпляра 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?

В качестве альтернативы, какую базу данных вы бы порекомендовали?

Возможно, я мог бы использовать некую приоритетную очередь после извлечения данных, чтобы сохранить порядок, но похоже на неправильное использование инструмента.

...