我正在寻找存储大量环境数据的最佳机制,以及循环数据库(rrd)的概念来限制数据库的大小。这将用于Java Web应用程序,因此我更热衷于使用基于Java的技术。我一直关注的工具是JRobin和RRD4J
然而,似乎RRD旨在以固定间隔存储数据。这是对的吗?
我希望存储的数据包括温度,湿度,事件驱动数据,如门打开/关闭,干触点打开/关闭。
可以轮询温度和湿度数据,但硬件也会向我们发送更新,这些更新基于硬件何时检测到更改(因此不是常规间隔)。我也想存储它。
事件驱动的数据不会被轮询,只有在传感器向我们发送数据时才会存储。
总结一下,我的问题将是2倍:
答案 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解决方案。