2011-05-20 72 views
5

我正在尋找最佳的機制來存儲一堆環境數據,並像循環法數據庫(rrd)的概念來限制數據庫的大小。這將用於Java Web應用程序,所以我更熱衷於使用基於Java的技術。我一直在看的工具是JRobinRRD4J非定期間隔時間序列數據的循環數據存儲

但是,它似乎RRD被設計爲以固定的時間間隔存儲數據。它是否正確?

我希望存儲的數據是溫度,溼度,事件驅動的數據,如門打開/關閉,幹接點打開/關閉。

可以輪詢溫度和溼度數據,但硬件也會根據硬件何時檢測到更改(因此不是常規間隔)向我們發送更新。我也想保存這個。

事件驅動的數據不會被輪詢,只會在傳感器向我們發送數據時纔會被存儲。

總之,我的問題將是2倍:

  1. 可以RRD工具可以用來存儲非正規間隔的數據?
  2. 如果RRD工具無法用於存儲常規間隔數據,那麼有關如何以存儲機制自動限制數據存儲大小的方式存儲非常規間隔數據的任何建議?

回答

1

爲什麼石墨項目寫下自己的RRD克隆(稱爲耳語)您可能會發現在某些原因相關信息:http://graphite.wikidot.com/whisper這似乎是你提到的原因。

我在這裏可能會提出的一件事是使用StatsD https://github.com/etsy/statsd,雖然它不是用Java編寫的,但它有一個Java接口,並且可以成功地用於Etsy上千種不同的統計數據。它插入到Graphite(http://graphite.wikidot.com/)中,然後爲您存儲數據並生成圖表。由於這些圖都可以通過URL訪問,因此您可能不需要純粹的Java解決方案。