Слияние временных рядов в InfxDB 0.9.x

У меня есть система, которая требует отслеживать свои показатели. Для этого я использую grafana + Influxdb. В настоящее время я использую infxdb версии 0.9.x.

Я хочу посчитать статистику. Мой вариант использования довольно прост:

  1. Я хочу сделать выборочный запрос из нескольких источников временных рядов.
  2. Я хочу сделать группу по оператору внутри запроса выбора, чтобы сгруппировать мои данные.
  3. Наконец, я хочу найти среднее значение внутри каждой группы.

Мой запрос выглядит следующим образом:

SELECT mean(value) FROM /namespaces_.*.amount/ where time < "2015-10-21T14:16:18Z" group by time(1m);

Это кажется тривиальным, но немного сложным. Получаю что-то вроде этого:

name: namespaces_1.amount
------------------------------------------------------------
time            mean
1970-01-01T00:00:00Z    0.8877630461283463

name: namespaces_2.amount
------------------------------------------------------------
time            mean
1970-01-01T00:00:00Z    0.6982870635693408

Согласно документации Influxdb, вы можете получать данные из нескольких источников. Другими словами, вы можете написать несколько серий данных после ключевого слова FROM. В то время как я хочу их объединить и обработать объединенные серии. В infxdb 0.8.x была merge функция, которая давала вам возможность смешивать источники данных. Однако в infxdb 0.9.x нет ни операций слияния, ни объединения.

Ссылка: https://influxdb.com/docs/v0.9/concepts/08_vs_09.html

В InfluxDB 0.9 операции MERGE и JOIN не поддерживаются. Операция MERGE больше не нужна. Все серии в измерении автоматически объединяются при запросе, если явно не исключены тегами в предложении WHERE.

Итак, когда вы пишете

SELECT mean(value) FROM merge(/namespaces_.*.amount/) where time < "2015-10-21T14:16:18Z" group by time(1m);

Вы получаете пустой результат ...

Следовательно, мой вопрос: как можно выбрать данные из нескольких источников временных рядов, объединить их, сгруппировать по некоторым критериям и применить функцию агрегирования к каждой группе с помощью инструментов Infxdb 0.9.x?


person Roman Dryndik    schedule 21.10.2015    source источник


Ответы (1)


Каким образом можно выбрать данные из нескольких источников временных рядов, объединить их, сгруппировать по некоторым критериям и применить функцию агрегирования к каждой группе с помощью инструментов Infxdb 0.9.x?

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

В InfluxDB 0.9 все серии в рамках данного измерения объединяются по умолчанию и фильтруются с помощью тегов в предложении WHERE.

Серии по разным измерениям нельзя объединить в один результат.

У вас есть много измерений с одной серией каждое. У вас должно быть несколько измерений с большим количеством серий в каждом. См. документы 0.8 и 0.9.

person beckettsean    schedule 22.10.2015
comment
запись JOINs среди измерений все еще невозможна в версии 0.12? - person marbel; 08.06.2017