我们有一个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/