Отсутствующие значения в регулярных временных рядах с InfluxDB - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть база данных InfluxDB, хранящая данные с частотой 1 минута в одном measurement. У меня есть несколько fields и один tag. Я довольно новичок в InfluxDB.

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

Я хотел бы перечислить все временные метки для каждого из значений тега, где отсутствуют данные, чтобы я мог попытаться получить эти данные (из исходного источника) и вставить его. Я не хочу fill пропусков, используя интерполяцию / прямое заполнение и т. Д. c.

Я обнаружил ELAPSED метод , который я могу использовать следующим образом:

> select elapsed(*,1m) from measurement where time > (now() - 160m) group by tag

name: measurement
tags: tag=my_tag
time                elapsed_field elapsed_field1
----                ------------- -------------- 
1586512020000000000 1             1
1586512080000000000 1             1
1586512140000000000 1             1
1586512200000000000 1             1

Если я понимаю единицу в elapsed(*,unit), он указывает только отображаемую единицу разницы между последовательными временными метками. Поэтому мне нужно было бы pipe или отфильтровать результаты выше для случаев, когда значения в этих таблицах не равны 1 минуте, моя желаемая разница.

Как я могу это сделать? Как я могу сохранить временные метки, где разрыв составляет> 1 минуты. Еще лучше, как я мог бы перечислить все отсутствующие метки времени?


Я мог бы сделать это в Python, запросив все данные для каждого тега и сравнив их с полным временным индексом моего собственного создания, но я бы предпочел получать эту информацию прямо из InfluxDB, без необходимости сначала читать все в память.


Я использую InfluxDB v1.7.7

...