Использование InfluxDB (v1.1) У меня есть требование, когда я хочу получить последнюю метку времени для определенного ключа. Независимо от того, какое измерение оно хранится и независимо от того, какое значение это было.Запросить самую последнюю временную метку (MAX/Last) для определенного ключа в Influx
Установка простая, где у меня три измерения: location
, network
и usage
.
Существует только один ключ: device_id
.
В псевдо-коде, это будет что-то вроде:
# notice the lack of a FROM clause on measurement here...
SELECT MAX(time) WHERE 'device_id' = 'x';
Вопрос: Что будет наиболее эффективным способом запроса это?
Причина, по которой я хочу, чтобы это был процесс децентрализованной синхронизации. Некоторые устройства, возможно, были обновлены за последний час, в то время как другие не обновлялись в течение нескольких месяцев. Возможность получить отдельную «последнюю обновленную» временную метку для устройства (ключа) позволит мне более эффективно хранить новые точки для Influx.
Я также заметил, что есть аналогичное обсуждение на InfluxDB's GitHub repo (#5793), но вопрос не фильтруется никаким полем/ключом. И это именно то, что я хочу: получение «последней» записи для конкретного ключа.
Спасибо Майкл. Действительно, это решение для работы, поэтому я поддержал это. Однако для определения значения потребуется три вызова API - по одному для каждого измерения. Это все еще не очень эффективно. Кроме того, что более важно, в запросах, которые вы указываете, на самом деле требуется указать; это то, что я не знаю заранее. Поэтому я еще не отметил это как ответ. Возможно, будущие версии Influx будут иметь аккуратное решение для этого. –
Делает смысл. Если вы могли бы открыть проблему в репо на InfluxDB, требуя такого рода функциональные возможности, мы можем соответствующим образом спланировать его. –