2012-09-13 20 views
2

我需要实现一个系统,用于在嵌入式平台上存储来自多个设备的时间戳传感器数据。根据this related question,关系数据库是存储该类数据的首选解决方案,因此我一直在寻找SQLLite是否有轻量级数据库系统支持时间序列数据中的插值和间隔?

但是,我还需要数据库能够回答诸如“9月12日13:15的室内温度是多少”这样的问题,即使传感器数据没有在那个时刻准确记录。换句话说,我需要数据库能够处理插值。据我所知,SQLite无法处理这个问题,通常的嫌犯(MySQL,PostgreSQL)也无法处理。

此外,我还需要数据库能够检测数据中的空白。

This related question似乎是处理大型机数据库而不是嵌入式数据库。

因此:是否有适合于嵌入式平台的数据库系统,它支持人们可能希望对时间序列数据执行的“常规”操作?

回答

1

你不应该希望或期望数据库为你做插值。只需将最接近的值拉出到所需的时间,然后编写自己的插值。只有你会知道应该使用什么类型的插值。也许简单线性跨越两点,也许更高阶多项式跨越更多点。这实际上取决于您的系统和数据建模情况。

+0

实际上,时间序列数据库旨在为您解决这类事情(非关系数据库)。这个答案更类似于将每个工具视为一把锤子,当你真正想要的是一个专门针对特定任务的工具。 http://opentsdb.net/query-execution.html#aggregation 有趣的是,如果有任何类似“SQLLite”的时间序列数据库,大多数实现似乎建立在大规模系统上,如hadoop,mongodb和卡桑德拉。 – Joakim

+0

下面是一个有关时间序列数据库的有趣备忘录:http://www.xaprb.com/blog/2014/03/02/time-series-databases-influxdb/ – buzz3791

1

专业时间序列数据库。

尝试:

  • RRDTool的(简单的工具,可够你用的)
  • OpenTSDB
  • InfluxDB

鉴于你的使用情况,也可能是相关采取完全采用针对简单插入(Xively,Phant.io)进行优化的“IoT”目标数据存储,然后进行时间序列分析后处理。

相关问题