Java 非规则间隔时间序列数据的循环数据存储

Java 非规则间隔时间序列数据的循环数据存储,java,data-storage,rrdtool,Java,Data Storage,Rrdtool,我正在寻找存储大量环境数据的最佳机制,比如循环数据库()的概念来限制数据库的大小。这将用于Java Web应用程序,因此我更热衷于使用基于Java的技术。我一直在看的工具是和 然而,RRD似乎是设计用来以固定的间隔存储数据的。这是正确的吗 我希望存储的数据是温度、湿度、事件驱动数据,如门打开/关闭、干触点打开/关闭 温度和湿度数据可以轮询,但硬件也会根据硬件检测到变化的时间(因此不是定期间隔)向我们发送更新。我也想储存这个 事件驱动的数据不会被轮询,只有在传感器向我们发送数据时才会被存储 总而言

我正在寻找存储大量环境数据的最佳机制,比如循环数据库()的概念来限制数据库的大小。这将用于Java Web应用程序,因此我更热衷于使用基于Java的技术。我一直在看的工具是和

然而,RRD似乎是设计用来以固定的间隔存储数据的。这是正确的吗

我希望存储的数据是温度、湿度、事件驱动数据,如门打开/关闭、干触点打开/关闭

温度和湿度数据可以轮询,但硬件也会根据硬件检测到变化的时间(因此不是定期间隔)向我们发送更新。我也想储存这个

事件驱动的数据不会被轮询,只有在传感器向我们发送数据时才会被存储

总而言之,我的问题有两个方面:

  • RRD工具能否用于存储非规则间隔数据
  • 如果RRD工具不能用于存储非定期间隔数据,那么有没有关于如何以存储机制自动限制数据存储大小的方式存储非定期间隔数据的建议

  • 您可能会在Graphite项目编写自己的RRD克隆(称为whisper)的原因中找到一些相关信息:这似乎就是您提到的原因

    这里我建议使用StatsD,虽然它不是用Java编写的,但它有一个Java接口,并且在Etsy上成功地用于数千种不同的stats。它插入石墨(http://graphite.wikidot.com/)然后为您存储数据并生成图形。由于这些图都可以通过URL访问,因此可能不需要纯Java解决方案