我们有一个MySQL数据库,其中添加了时间序列值。

-------------------------------------
|Col A | Col B | Timestamp          |
-------------------------------------
|1.23  | 4.48  |2013-09-03 10:45:27 |
-------------------------------------
|1.23  | 4.48  |2013-09-03 10:46:27 |
-------------------------------------
|1.23  | 4.48  |2013-09-03 10:47:27 |
-------------------------------------

数据在时间上的分布不均匀,某些点之间的间隔是一分钟,有些则是几秒钟。

有没有一种有效的方法可以查询此数据库以提取每n秒/秒/小时的数据?理想情况下,我希望第n分钟处的(线性)内插值,但是最接近n th分钟处的最后一点或n th点之前或之后的最后一点也可以。

我想将其绘制成图形的用例,但不想要过多的点。因此,对于一年的绘图,我希望每天只查询几个点。在绘制一天时,我想每分钟左右绘制一个点。

我可以用PHP来完成所有这些工作,但是有没有一种方法可以直接在数据库中完成呢?如果没有,我正在考虑使用时间序列数据库,但是预算限制将我限制为只有空闲数据库。是否有任何免费的时间序列数据库提供开箱即用的抽样,最好是插值法?

最佳答案

我自己没有使用过它,但是最近遇到了InfluxDB,听起来像它可以满足您的条件-内置aggregation queries的开源时间序列数据库-示例

SELECT MEAN(column_name) FROM series_name group by time(10m)

关于mysql - MySQL中的时间序列数据: Sampling,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18941443/

10-11 19:38
查看更多