针对非常规间隔时间序列数据的循环数据存储

时间:2011-05-20 17:56:56

标签: java data-storage rrdtool

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

然而,似乎RRD旨在以固定间隔存储数据。这是对的吗?

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

可以轮询温度和湿度数据,但硬件也会向我们发送更新,这些更新基于硬件何时检测到更改(因此不是常规间隔)。我也想存储它。

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

总结一下,我的问题将是2倍:

  1. 可以使用RRD工具存储非常规间隔数据吗?
  2. 如果RRD工具不能用于存储非常规间隔数据,那么有关如何以存储机制自动限制数据存储大小的方式存储非常规间隔数据的任何建议吗?

1 个答案:

答案 0 :(得分:1)

您可能会在Graphite项目编写自己的RRD克隆(称为低语)的原因中找到一些相关信息:http://graphite.wikidot.com/whisper这似乎是您提到的原因。

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