InfluxDB: группировать строки с одинаковой отметкой времени - PullRequest
0 голосов
/ 04 декабря 2018

Предположим, БД со следующими записями данных:

2018-04-12T00:00:00Z value=1000 [series=distance]
2018-04-12T00:00:00Z value=10   [series=signal_quality]
2018-04-12T00:01:00Z value=1100 [series=distance]
2018-04-12T00:01:00Z value=0    [series=signal_quality]

Есть одно поле с именем value.Квадратные скобки обозначают теги (дальнейшие теги опущены).Как видите, данные записываются в различных записях данных вместо использования нескольких полей в одной и той же записи.

Учитывая приведенную выше структуру, как я могу запросить временной ряд расстояний, отфильтрованных по качеству сигнала? Цель состоит в том, чтобы получить точки данных о расстоянии только тогда, когда качество сигнала выше фиксированногопорог (например, 5).

1 Ответ

0 голосов
/ 04 декабря 2018

«Учитывая вышеописанную структуру», это невозможно сделать простым языком InfluxDB.

Пожалуйста, имейте в виду - Influx - это НЕТ реляционной БД, он другой, несмотря на то, что язык запросов выглядит знакомым.

Опять же, учитывая эту структуру - вы можете продолжить работу с Kapacitor, как это уже упоминалось.

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

Если это не вариант - вот способ: закрутить простую работу в Kapacitor, которая просто объединит две точки в одну по времени ( проверьте это как ), а затем добавьте его в новое измерение.

Точка данных будет выглядеть следующим образом:

DistanceQualityTogether,tag1=if,tag2=you,tag2=need,tag4=em distance=1000,signal_quality=10 2018-04-12T00:00:00Z

Остальные не обращают внимания на такое измерение.

Но, опять же, если вы можете настроить свои показатели так, чтобы они отправлялись следующим образом - лучше сделайте это.

...