我正在尝试将MariaDB中的一些数据导出为InfluxDB格式。
我使用以下语法从MariaDB导出数据:
select CONCAT("insert cpu_load,host=" ,HostName ," value=",
CPUUsedPercentage," ",UNIX_TIMESTAMP(CPUTime))
from monitor.CPUStats;
输出为:
insert cpu_load,host=host1 value=2.85 1696683600
CPUtime数据类型是具有以下格式的日期时间:
2/11/2017 3:56:18 PM
The output insert statement gets inserted in **InfluxDB** but the queries in **Grafana** or **Telegraf** are not retrieving nothing because of the time formats.
查询可能是:
SELECT mean("value") AS "mean_value" FROM "monitor"."autogen"."cpu_load"
WHERE time > now() - 1h AND "host"='prodvert03' GROUP BY time(10s) FILL(null)
错误消息为:
Your query is syntactically correct but returned no results
所以我相信是时间列格式。 UNIX_TIMESTAMP(CPUTime)它不起作用。
任何想法或帮助都会受到赞赏。
Thx
答案 0 :(得分:0)
SELECT AVG(`value`) AS "mean_value"
FROM `monitor`.`autogen`.`cpu_load`
WHERE `time` > NOW() - INTERVAL 1 HOUR
AND `host` = 'prodvert03'
GROUP BY FLOOR(UNIX_TIMESTAMP(`time`) / 10);
会更接近。我不知道FILL(null)
的含义。
许多无偿的语法差异。
答案 1 :(得分:0)
看起来像你的涌入插入语句
insert cpu_load,host = host1 value = 2.85 1696683600
使用自纪元以来秒数的时间戳,而涌入的默认情况下使用纳秒时间精度afaik。因此,我怀疑您插入的数据没有存储在您期望的时间戳的Influxdb中。
您可能需要在涌入CLI工具中使用精度设置:
precision <format> specifies the format of the timestamp: rfc3339, h, m, s, ms, u or ns
有关详细信息,请查看InfluxDB文档。