如何从MariaDB迁移到InfluxDB日期时间到

时间:2017-12-02 01:45:32

标签: mysql timestamp mariadb influxdb grafana

我正在尝试将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

2 个答案:

答案 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文档。