我正在寻找一个可嵌入的Java库,它适合于以通用的方式收集传感器数据的实时流。我计划使用它来开发一个“集线器”应用程序,用于报告多个不同的传感器流,运行在基于JVM的服务器上(也将为此使用Clojure )。
它需要具备的关键是:
有什么适合你推荐的资料吗?
发布于 2013-02-12 18:28:47
(维基百科) 1.循环数据库
RRDtool (循环数据库工具的缩写)旨在处理网络带宽、温度、CPU负载等时间序列数据,这些数据被存储在一个循环数据库(循环缓冲区)中,因此系统的存储空间随着时间的推移而保持不变。
这种方法/DB格式应用广泛、稳定、简单。它允许开箱即用,可以生成漂亮的情节:

有Java实现-- RRD4J
RRD4J是一个高性能的时间序列数据记录和绘图系统,在Java中实现了RRDTool的功能。它遵循许多相同的逻辑,并使用与RRDTool相同的数据源、归档类型和定义。在Apache2.0许可下开放源代码。
更新
忘了提一下是否有Clojure (示例)。
2.对于一些实时数据的实验,我建议考虑 佩斯特。
它体积小,速度快,足够可靠,但在GPLv3下分布。Perst提供了几种索引算法:
最后一个非常适合你的需要。
3. Neo4J 和 关系指标
这种方法支付红利的一个很好的例子是时间序列数据,在时间序列数据中,我们将读数表示为每一次发生的关系。
4. Oracle Berkeley DB Java版
Oracle Berkeley DB Java Edition是一个完全用Java编写的开源、可嵌入的事务性存储引擎。它充分利用Java环境来简化开发和部署。Oracle Berkeley DB Java版的体系结构支持非常高的性能和并发性,既支持读取密集型工作负载,也支持编写密集型工作负载。
建议
试一试RRD4J

发布于 2013-02-12 19:13:04
对于收集传感器数据的实时流,下面的内容可能会有所帮助。
你查过LeJos API了吗?这个http://lejos.sourceforge.net/nxt/nxj/api/index.html
此外,值得检查Oracle和他们正在解决的http://www.unitask.com/oracledaily/2012/10/04/at-the-java-demogrounds-oracle-java-me-embedded-enables-the-internet-of-things/目标市场。
可以从http://www.oracle.com/technetwork/java/embedded/downloads/javame/index.html下载
为了存储时间序列数据,没有比cassandra http://cassandra.apache.org/更好的了,并回答为什么cassandra引用http://www.datastax.com/why-cassandra
对于从Java参考https://github.com/jmctee/Cassandra-Client-Tutorial访问Cassandra是非常有帮助的,并应用cassandra中的时间序列概念。
http://www.datastax.com/wp-content/uploads/2012/08/C2012-ColumnsandEnoughTime-JohnAkred.pdf
https://stackoverflow.com/questions/14765053
复制相似问题