如何以秒为单位将点写入 influxdb 0.8
How ot write points into influxdb 0.8 with time in seconds
我想通过 HTTP 将时间值以秒为单位写入一个 influx 0.8 数据库。这是 JSON 格式的示例点:
[
{
"points": [
[
1435692857.0,
897
]
],
"name": "some_series",
"columns": [
"time",
"value"
]
}
]
文档不清楚时间值的格式应该是什么(纳秒或毫秒?)以及如何向 influxdb 指定预期的内容。目前我正在使用查询参数:precision=s
这似乎工作正常,服务器 returns HTTP 状态代码 200 符合预期。当使用 select * from some_series
使用 influx 的管理界面查询数据库时, table 中的数据点将返回预期的时间戳。然而,在图表上,时间轴是用秒的分数索引的,像 select * from some_series where time > now() - 1h
这样的查询不会产生任何结果。
我假设时间戳有问题。我尝试将我的值乘以 1000,但随后没有任何内容被插入到数据库中,没有明显的错误。
有什么问题吗?
默认情况下,假定提供的时间戳以毫秒为单位。我认为您的写入默认为毫秒,因为查询字符串参数应该是 time_precision=s
,而不是 precision=s
.
在 https://influxdb.com/docs/v0.8/api/reading_and_writing_data.html 上查看 "Time Precision on Written Data" 下的详细信息。
我也认为 time
值应该是整数而不是浮点数。我不确定如何解释其他行为,其中时间戳似乎是正确的日期并且乘以 1000 并不能解决问题,但我想知道它是否与编写浮点数有关。
请通过 support@influxdb.com 联系 InfluxDB 支持团队以获得进一步帮助。
我找到了解决办法!问题只是部分在于精度。您的回答是正确的,查询参数称为 time_precision
,我应该 post 整数而不是浮点数。这可能是我尝试但没有结果的第一件事...
但是,由于某些时区问题,我的 未来相对于服务器时间的时间值 并且默认情况下,任何 select 语句都包含一个 where time < now()
语句。因此,实际上值已写入数据库,但由于隐藏的 where 语句而未显示。解决方案是告诉数据库 return "future" 值:
select value from some_series where time < now() + 1h
我想通过 HTTP 将时间值以秒为单位写入一个 influx 0.8 数据库。这是 JSON 格式的示例点:
[
{
"points": [
[
1435692857.0,
897
]
],
"name": "some_series",
"columns": [
"time",
"value"
]
}
]
文档不清楚时间值的格式应该是什么(纳秒或毫秒?)以及如何向 influxdb 指定预期的内容。目前我正在使用查询参数:precision=s
这似乎工作正常,服务器 returns HTTP 状态代码 200 符合预期。当使用 select * from some_series
使用 influx 的管理界面查询数据库时, table 中的数据点将返回预期的时间戳。然而,在图表上,时间轴是用秒的分数索引的,像 select * from some_series where time > now() - 1h
这样的查询不会产生任何结果。
我假设时间戳有问题。我尝试将我的值乘以 1000,但随后没有任何内容被插入到数据库中,没有明显的错误。
有什么问题吗?
默认情况下,假定提供的时间戳以毫秒为单位。我认为您的写入默认为毫秒,因为查询字符串参数应该是 time_precision=s
,而不是 precision=s
.
在 https://influxdb.com/docs/v0.8/api/reading_and_writing_data.html 上查看 "Time Precision on Written Data" 下的详细信息。
我也认为 time
值应该是整数而不是浮点数。我不确定如何解释其他行为,其中时间戳似乎是正确的日期并且乘以 1000 并不能解决问题,但我想知道它是否与编写浮点数有关。
请通过 support@influxdb.com 联系 InfluxDB 支持团队以获得进一步帮助。
我找到了解决办法!问题只是部分在于精度。您的回答是正确的,查询参数称为 time_precision
,我应该 post 整数而不是浮点数。这可能是我尝试但没有结果的第一件事...
但是,由于某些时区问题,我的 未来相对于服务器时间的时间值 并且默认情况下,任何 select 语句都包含一个 where time < now()
语句。因此,实际上值已写入数据库,但由于隐藏的 where 语句而未显示。解决方案是告诉数据库 return "future" 值:
select value from some_series where time < now() + 1h