12

センサーデータのリアルタイムストリームを汎用的に収集するのに適した埋め込み可能なJavaライブラリを探しています。これを使用して、JVMベースのサーバーで実行されている複数の異なるセンサーストリームをレポートするための「ハブ」アプリケーションを開発する予定です(これにもClojureを使用します)。

それが持つ必要がある重要なもの:

  • さまざまな一般的なセンサータイプ/APIのインターフェース。自分で必要なものを作成できてうれしいですが、標準的なものが箱から出てきたらいいのにと思います。
  • 「ソフトリアルタイム」の使用に適しています。つまり、かなり低いレイテンシと低いオーバーヘッドです。
  • 実行時にストリームを監視および管理し、統計を収集する機能など。
  • 他のコード(Apache、EPL、BSD、LGPLはすべて問題なく)と統合できるように、適度に寛容なライセンスの下でオープンソース
  • 適度にアクティブなコミュニティ/開発者エコシステム

このプロファイルに合う、お勧めできるものはありますか?

4

2 に答える 2

14

1. ラウンドロビンデータベース (ウィキペディア)

RRDtool (ラウンドロビン データベース ツールの頭字語) は、ネットワーク帯域幅、温度、CPU 負荷などの時系列データを処理することを目的としています。データはラウンド ロビン データベース (循環バッファー) に格納されるため、システム ストレージのフットプリントは一定のままです。時間とともに。

このアプローチ/DB 形式は広く使用されており、安定しており、十分に単純です。箱から出して、素敵なプロットを生成することができます:

ここに画像の説明を入力

Java 実装があります -- RRD4J :

RRD4J は、Java で RRDTool の機能を実装する、時系列データ用の高性能データ ロギングおよびグラフ システムです。これは、RRDTool とほぼ同じロジックに従い、同じデータ ソース、アーカイブ タイプ、および定義を使用します。Apache 2.0 ライセンスの下でオープン ソース。

アップデート

Clojure RRD API ( examples ) があることを忘れないでください。

2.リアルタイムデータを使ったいくつかの実験では、Perstを検討することをお勧めします

小さく、高速で、十分に信頼性がありますが、GPLv3 で配布されています。Perst は、いくつかの索引付けアルゴリズムを提供します。

  1. Bツリー
  2. T-Tree (インメモリ データベース用に最適化)
  3. R ツリー (空間インデックス)
  4. Patricia Trie (プレフィックス検索)
  5. KD-Tree (多次元インデックス)
  6. 時系列 (タイムスタンプ付きの多数の固定サイズ オブジェクト)

最後の 1 つは、ニーズに非常に適しています。

3.リレーションシップ インデックスを使用したNeo4J

このアプローチが利益をもたらす良い例は時系列データで、発生ごとの関係として示される測定値があります。

4. Oracle Berkeley DB Java Edition

Oracle Berkeley DB Java Edition は、完全に Java で記述されたオープン ソースの組み込み可能なトランザクション ストレージ エンジンです。Java 環境を最大限に活用して、開発と展開を簡素化します。Oracle Berkeley DB Java Edition のアーキテクチャは、読み取り集中型と書き込み集中型の両方のワークロードに対して、非常に高いパフォーマンスと同時実行性をサポートします。

提案

RRD4Jを試してみてください:

  1. それは十分に単純です
  2. それは非常に素晴らしいプロットを提供します
  3. それはClojure APIを持っています
  4. Oracle Berkeley DB Java Editionを含むいくつかのバックエンドをサポートしています。
  5. 詳細なデータセットを保存/可視化できます

ここに画像の説明を入力

于 2013-02-12T18:28:47.963 に答える
2

センサーデータのリアルタイムストリームを収集するには、以下が役立つ場合があります

LeJos API を確認しましたか。このhttp://lejos.sourceforge.net/nxt/nxj/api/index.html

また、Oracle Java ME Embedded と、彼らが取り組んでいるターゲット市場http://www.unitask.com/oracledaily/2012/10/04/at-the-java-demogrounds-oracle-java-me-embedded-もチェックする価値があります。モノのインターネットを有効にする/

http://www.oracle.com/technetwork/java/embedded/downloads/javame/index.htmlからダウンロードできます。

時系列データの保存については、cassandra http://cassandra.apache.org/に勝るものはなく、cassandra がhttp://www.datastax.com/why-cassandraを参照する理由に答えるには

Java から Cassandra にアクセスするには、 https://github.com/jmctee/Cassandra-Client-Tutorial を参照して
ください/2012/08/C2012-ColumnsandEnoughTime-JohnAkred.pdf

于 2013-02-12T19:13:04.207 に答える