У меня есть база данных postgres
, содержащая наборы данных, собранные несколько лет назад.Вот как выглядит таблица.
postgres=# select * from urbansense.new_table;
+---------------------------+-----------------+------------------+-----------+
| recvtime | entitytype | attrname | attrvalue |
+---------------------------+-----------------+------------------+-----------+
| 20014-04-18T12:05:42.00Z | WeatherObserved | illuminance | 20 |
| 20014-04-18T12:05:42.00Z | WeatherObserved | temperature | 15.2 |
| 20014-04-18T12:05:42.00Z | WeatherObserved | relativehumidity | 64.3 |
| .... | ...... | ..... | ..... |
| 2015-07-10T11:47:02+01:00 | WeatherObserved | illuminance | 29562.7 |
| 2015-07-10T11:47:02+01:00 | WeatherObserved | temperature | 20.7 |
| 2015-07-10T11:47:02+01:00 | WeatherObserved | relativeHumidity | 78.2 |
+---------------------------+-----------------+------------------+-----------+
Цель состоит в том, чтобы отображать точки данных для температуры (attrvalue) на графической панели графана.
Я могу получить значения (для отображения на панели с помощьюзапрос ниже) из клиента postgres, но графана показывает Точки данных вне временного диапазона * только 1008 *:
postgres=# SELECT DISTINCT
date_trunc('minute', to_timestamp(recvtime,'YYYY-MM-DD HH24:MI:SS')) AS "time",
attrvalue::float AS temperature
FROM
urbansense.new_table
WHERE
attrname = 'temperature'
AND attrvalue <> 'null'
GROUP BY time, urbansense.new_table.attrvalue;
+------------------------+-------------+
| time | temperature |
+------------------------+-------------+
| 2015-07-10 07:49:00+00 | 24.1 |
| 2015-07-09 21:18:00+00 | 20.2 |
| 2015-07-09 23:52:00+00 | 19.8 |
| ..... | .. |
| 2015-07-08 23:56:00+00 | 29.1 |
| 2015-07-09 16:02:00+00 | 23.6 |
| 2015-07-09 09:30:00+00 | 32.3 |
| (31037 rows) | |
+------------------------+-------------+
Я снова попытался использовать следующий запрос из редактора запросов grafana (используя $__timeFrom()
), графана отображает: Нет точек данных
SELECT
COUNT(DISTINCT urbansense.new_table.attrvalue) as time
FROM
urbansense.new_table
WHERE
attrvalue <> 'null'
AND to_timestamp(recvtime,'YYYY-MM-DD HH24:MI:SS') > $__timeFrom()
Какой правильный способ отображения точек данных в пределах дат доступен только в столбце recvtime
?Я думаю, что графана пытается отобразить точку в текущем времени (или несколько часов назад, поэтому первая ошибка Data points outside time range.