InfluxDB-получение только последнего значения в запросе
можно ли запросить только последнее значение (или n-е значение) результатов запроса?
например, в запросе:
SELECT value FROM response_times WHERE time > now() - 1h limit 1000;
можно получить только последнее значение, т. е. один далеко назад во времени (возможно, 1000-й элемент)?
конечно, я могу получить их все, а затем перейти к последнему, но я не хочу тратить bandwith таким образом.
5 ответов
в API посмотрите сначала/последний, чтобы выбрать первую или последнюю запись столбца. У вас также есть верх/низ, чтобы выбрать более одной записи
[edit] top / bottom, похоже, возвращает самые высокие / самые низкие значения таймфрейма
SELECT last(value) FROM response_times WHERE time > now() - 1h;
Это должно возвращать последнее значение столбца.
однако, если вы хотите, вы можете разделить последовательность на более мелкие кусочки и выберите последнее значение. Например:
SELECT last(value) FROM response_times WHERE time > now() - 1h GROUP BY time(60s);
он разделит последовательность на 60-секундные фрагменты и подберет для каждого фрагмента последнее значение.
Если вы используете InfluxDB 0.8 не используйте во-первых() или LAST () если у вас не ГРУППЫ ПО за его очень медленно : (
поэтому, если вы хотите получить эти значения, которые вы должны использовать:
Первое Значение:
SELECT * FROM <SERIES> GROUP BY * ORDER BY ASC LIMIT 1
Последнее Значение:
SELECT * FROM <SERIES> GROUP BY * ORDER BY DESC LIMIT 1
не удаляйте группу по*, потому что тогда возможно, что вы получите неожиданные значения.
нет ошибки или какой-либо проблемы с LIMIT. Да, есть один, но речь идет о SLIMIT (предел серии). Лимит можно смело использовать для получения первый n записей.
короче говоря, синтаксис для LIMIT:
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] LIMIT <N>
синтаксис для SLIMIT:
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause] GROUP BY *[,time(<time_interval>)] [ORDER_BY_clause] SLIMIT <N>
вы видите, что предложение GROUP BY [ необязательно] в LIMIT.
для подробного объяснения использования LIMIT и SLIMIT, вот версия документа 1.5. А вот the проблемой о SLIMIT.