【问题标题】:How ot write points into influxdb 0.8 with time in seconds如何以秒为单位将点写入 influxdb 0.8
【发布时间】:2015-09-17 18:18:44
【问题描述】:

我想通过 HTTP 以秒为单位将时间值写入 influx 0.8 数据库。这是 JSON 格式的示例点:

[
    {
        "points": [
            [
                1435692857.0,
                897
            ]
        ],
        "name": "some_series",
        "columns": [
            "time",
            "value"
        ]
    }
]

文档不清楚时间值的格式应该是什么(纳秒还是毫秒?)以及如何指定 influxdb 期望什么。目前我正在使用一个查询参数:precision=s

这似乎工作正常,服务器按预期返回 HTTP 状态代码 200。当使用 select * from some_series 使用 influx 的管理界面查询数据库时,表中的数据点将返回预期的时间戳。然而,在图表上,时间轴以几分之一秒为索引,像 select * from some_series where time > now() - 1h 这样的查询不会产生任何结果。

我认为时间戳有问题。我尝试将我的值乘以 1000,但没有任何内容被插入到数据库中,没有明显的错误。

有什么问题?

【问题讨论】:

    标签: influxdb


    【解决方案1】:

    默认情况下,假定提供的时间戳以毫秒为单位。我认为您的写入默认为毫秒,因为查询字符串参数应该是time_precision=s,而不是precision=s

    请参阅https://influxdb.com/docs/v0.8/api/reading_and_writing_data.html 上“书面数据的时间精度”下的详细信息。

    我还认为time 值应该是整数而不是浮点数。我不确定如何解释其他行为,其中时间戳似乎是正确的日期并且乘以 1000 并不能解决问题,但我想知道它是否与写入浮点数有关。

    请通过 support@influxdb.com 联系 InfluxDB 支持团队以获得进一步帮助。

    【讨论】:

      【解决方案2】:

      我找到了解决方案!问题只是部分与精度有关。您的答案是正确的,查询参数称为time_precision,我应该发布整数而不是浮点数。这可能是我尝试的第一件事但没有结果......

      但是,由于某些时区问题,我的时间值在未来相对于服务器时间,并且默认情况下,任何 select 语句都包含 where time < now() 语句。因此,实际上值已写入数据库,但由于隐藏的 where 语句而未显示。解决方案是告诉数据库也返回“未来”值:

      select value from some_series where time < now() + 1h
      

      【讨论】:

        猜你喜欢
        • 2017-05-01
        • 2021-01-26
        • 2015-09-16
        • 1970-01-01
        • 1970-01-01
        • 2014-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多