我需要实现一个系统,用于在嵌入式平台上存储来自多个设备的带时间戳的传感器数据 . 根据this related question,关系数据库是存储这类数据的首选解决方案,因此我一直在关注SQLLite .
但是,我还需要数据库能够回答诸如“9月12日13:15室内温度是多少”这样的问题,即使传感器数据当时没有准确记录 . 换句话说,我需要数据库才能处理插值 . 据我所知,SQLite无法处理这个问题,通常的嫌疑人也无法处理(MySQL,PostgreSQL) .
此外,我还需要数据库才能检测数据中的间隙 .
This related question似乎处理大型机数据库而不是嵌入式数据库 .
因此: Is there a database system suitable for embedded platforms that supports the "usual" operations one might want to perform on time-series data?
2 回答
您不应该或希望数据库为您进行插值 . 只需将最近的值拉出到所需的时间,然后编写自己的插值 . 只有你知道应该使用什么样的插值 . 也许是两点之间的简单线性,可能是更多点的更高阶多项式 . 这实际上取决于您的系统和数据建模情况 .
专业的时间序列数据库 .
尝试:
RRDTool(简单实用,可能就足够了)
OpenTSDB
InfluxDB
根据您的使用案例,使用针对简单插入(Xively,Phant.io)优化的“IoT”目标数据存储,然后进行后处理以进行时间序列分析,也可能采取完全不同的方法 .